搜狗精准广告研发部
王晓博
Topic Model在企业的实际场景中如果遇到亿级数
据该如何处理?如何利用有限的计算集群资源处理
超大的文集,我们将围绕这一难题向大家介绍LDA
主题模型训练系统以及它在线上预测时需要面对的
问题和解决办法。
PLSI:潜在语义检索
LDA:Latent Dirichlet Allocation
MPI:基于消息通讯的分布式计算平台
Perplexity:混杂度,常用于度量主题模型训练的
效果
双工通信:同时收取和发送数据
主题检索模型理论基础
大数据场景下的挑战
构建一个高效的训练系统
模型在商业广告检索中的应用
LDA的提出
LDA与PLSA同属topic model,其目标
是相同的。
问题提出:如何在语义层面对文本集
(离散数据集)进行建模。
向量空间模型是一个开创性的概念:
优点:文档可以被表示成一个实数向量;
不同长度的文档都能够被表示成定长的数列;
引入与向量相关的计算方法。
问题:文档被映射在词空间,向量维度太高;
理解能力弱,对语义分析的支持不强。
潜在语义索引:
首先被充当一种降维技术,对doc-word矩阵进行SVD,
提取最能反映向量间差异的线性子空间。
进而被证明能够抓取到基本的语义信息,例如同义、
一词多义。
缺陷:所谓的“抓取语义信息”不够直接,降维的意
义更明显;时间和空间复杂度太大。
引入了潜在主题的概念
极大程度的降维,并能
够发掘有价值的语义信
息。
理论缺陷:没有对应于P(z|d)的生成概率模型,理论
上不完整。(LDA补足了这个缺陷)
How?
先验
Dirichlet
参数
P(z|d) P(w|z)
模型的优势
• 参数少,overfitting风险小,共有k x |V| + k个参
数
• p(z|d)定义为产生式模型
• 训练集合开放,对于新文档和新词处理能力强
• topic model研究的热点,在bayes graphical
model的框架下优化潜力大
生成文档di的过程中,包含三个问题:
1. di的表层信息:di的规模,即di中包含多少词实例?
2. di的语义信息:di所反映的内容,即di的主题分布?
3. di中每个具体的word都是什么?
指定组成文档di的词的个数N,N服从泊松分
布,即N~Poisson(ξ)。
根据Dirichlet先验α,为di选择一个主题分布θi,即
θi~Dirichlet(α)。
di
topic
s
P(z|d)
对于N个待定词中的每一个词wn,通过以下步骤确定
wn的值:
1. 根据θi为wn选择一个主题zn,即将待定词wn指派
给一个主题zn,指派依据为:zn~Multinomial(θi);
2. 依据多项式概率p(wi | zn, φ),为wn指派一个值。
其中,wi属于word集。
只是简单讲下GIBBS采样法,对于变分法和期望传播方法会粗略的介绍
主题检索模型求解方法简介
3维Dirichlet分布
(3维空间中的2维单纯形)
pμ1 + pμ2 + pμ3 = 1
{pμ1 , pμ2 , pμ3 } >= 0
| |
1
1
1
; )
( )
( kk
kB
Dirichlet
| |
1
| |
1
( )
( )
( )
k
k
k
k
B
{αk} =
{αk} = 1 {αk} =
10
文集W为topic k的联合概率分布
GIBBS用边缘分布进行迭代来逼近联合分布
( , | , ) ( | , ) ( | )p Z W p W Z p Z
( , | , )
( | , , , ) ,
( , | , )
i i i
i i
p Z W
p z k Z W z k
p Z W
Gibbs采用条件边缘分布采样来求解联合分布,
将其转化为一个Markov链,通过构造概率迭
代矩阵来求解
| |
11
( ; ) 1 ( ; ) 1
( | , , , )
( ( ; ) ) 1( ( ; ) ) 1
i ii i w i i z
i i V K
i zi t
kt
n w z n z d
p z Z W
n z k dn t z
大数据场景下的挑战
我们面临的数据集,一亿篇doc,词表一百万
◦ P(w|z)在1w主题下需要40G存储
◦ doc存储需要3200G
如何利用有限的计算节点尽快的完成计算
如何存储下所有的数据
多机计算的场景下如何解决通讯问题
输入文集
分布式文集加
载,分别初始
化词的主题编
号并计算词频
采样器 采样器 采样器 采样器
是 否
停 止
迭代
多个线程合并
结果矩阵,然
后多机通过MPI
reduce操作合并
结果矩阵
。
。 。
结束运算,主
控节点输出模
型文件
停 止 迭
代
继 续 迭
代
我们发现n(w|z)参数矩阵是稀疏的,其非0元素占
比远低于1%
数据结构上使用压缩一维数组Judy
细心的拆解迭代公式可以显著缩小计算量
Sampling中按照指定分布抽取新的topic是性能的
热点,这个地方可以做出十倍以上的加速度
训练算法的关键点是计算边缘分布函数
| |
1
( ; ) 1
( | , , , ) ( ( ; ) 1)
( ( ; ) ) 1
i
i
i i w
i i i i zV
i t
t
n w z
p z Z W n z d
n t z
| | | |
1 1
| |
1
( ; )( ( ; ) 1) ( ; )( 1)
( | , , , )
( ( ; ) ) 1 ( ( ; ) ) 1
( 1)( 1)
( ( ; ) ) 1
i i
i i
i i i i z i i w
i i V V
i t i t
t t
z w
V
i t
t
n w z n z d n z d
p z Z W
n t z n t z
n t z
原方法:
3000topic:
51个节点,平均每轮迭代需要15分钟,总耗时36
个小时
新方法:
1w topic
51个节点,平均每轮迭代需要分钟,总耗时
个小时,内存消耗降低为原来的1/10,网络
通讯数据量也降低为稠密矩阵的1/10
0
1 9
1
7
2
5
3
3
4
1
4
9
5
7
6
5
7
3
8
1
8
9
9
7
1
0
5
1
1
3
1
2
1
1
2
9
1
3
7
1
4
5
矩阵密度
矩阵密度
主要通讯的就是n(w|z)这个矩阵
可以根据局部的文集词表对其进行分布式存储
分两次完成通讯:第一次传元数据;第二次传更新
量
分部成环,全双工通信,提高一倍的传输效率
主要涉及inference部分
在商业广告检索中如何应用
将query中所有的词对应的p(z|w)连加
优点:速度快
缺点:抗噪能力差
0
( |) ( )
N
i i
i
t f p wp zW
按照训练过程中的方法,只是固定p(z|w)矩阵,然
后计算gamma向量,进而获取p(z|d)
根据topic之间的相似度调整赋权,为im-gibbs
固定p(w|z)不变,用em的方法迭代求解p(z|d)
优点:速度比连加慢一些,但效果好很多
缺点:badcase放大
unit bid word
rank
term
topic vector
topic vector
cosine
similarity
匹配相似度,
也可以是内积
rank
term
topic vector
top n
topic
topic 1 topic 2 topic n
unit
list
模型的训练和推导过程:
PLSA:分布之上无规律,过拟合;对新数据的推导
cheating,用model去fit数据。
LDA:具有完备的训练和推导。
单纯的LDA模型只在小规模数据集的处理上有优势。
对于大规模数据处理而言,LDA与PLSA效果基本相
同。
1、对topic间的关联建模,Correlated Topic
Model
2、层次化的主题结构,hLDA、HDP
3、主题的迁移规律,Dynamic Topic Model
4、将语法分析和语义分析相结合,将主题分析和结
构分析相结合,HMM-LDA
5、与其它模型的结合