【AI】短文本主题模型

【AI】短文本主题模型

编者按:针对短文本主题聚焦性差及特征稀疏问题, 通过词向量找到的语义相近的词,提升短文本中的与抽样到的topic相关词的采样比例,从而利用到Word2Vec提供的语义背景信息,进而提升短文本主题模型效果。

文章作者:zhouyonglong
责任编辑:霍华德
文章发表于微信公众号【运筹OR帷幄】:【AI】短文本主题模型
欢迎原链接转发,转载请私信@运筹OR帷幄获取信息,盗版必究。
敬请关注和扩散本专栏及同名公众号,会邀请全球知名学者发布运筹学、人工智能中优化理论等相关干货、知乎Live及行业动态:『运筹OR帷幄』大数据人工智能时代的运筹学

概述Overview

很多应用需要短文本的语义理解。常规的文本主题模型包括pLSA和LDA等,在基于词语的高阶共现模式上,用来识别每个文档下的主题分布,以及每个主题下的词语分布。但是短文本就词共现来说存在极大的稀疏性。数据稀疏性成为了提高短文本主题模型结果的瓶颈。

然而人类理解短文本的时候,并不单单基于短文本的内容,还依靠其背景知识(语义相关的词),词嵌入很好的做到这一点,从包含数百万文档的语料库中学到的语义关联信息,能够提升短文本的主题分类效果。

本文基于[6]在介绍LDA和Dirichlet Multinomial Mixture[4]模型的基础上,利用GPU模型和预先训练的Word2Vec模型,通过词向量找到的语义相近的词,提升短文本中的与抽样到的topic相关词的采样比例,从而利用到Word2Vec提供的语义背景信息,进而提升短文本主题模型效果。

Latent Dirichlet Allocation(LDA)

在LDA模型中,每个文档下的主题出现的次数服从多项式分布,每个主题下的词出现的次数服从多项式分布[9]。如LDA数学八卦中所示,按如下规则生成文档:

1.有两大坛子的骰子,第一个坛子装的是doc-topic骰子,第二个坛子装的是topic-word骰子

2.随机的从第二个坛子中独立的抽取K个topic-word骰子,编号为1到K

3.每次生成一篇新的文档前,上帝先从第一个坛子中随机抽取一个doc-topic骰子,然后重复如下过程生成文档中的词:

a.投掷这个doc-topic骰子,得到一个topic编号z

b.选择K个topic-word骰子中编号为z的那个,投掷这个骰子,于是得到一个词

概率参数可以如下表示[10]:

LDA的概率图模型如下:

[8]中总结了用Gibbs采样训练LDA的伪代码:

具体推导过程可以参见[9]。核心思想是:根据上述文档主题和文档下的词生成过程,可以得到如下联合概率分布[11][9],估计文档主题的过程也就是最大化联合概率分布

要推导出如上图所示的联合概率分布,依赖于第m篇文档中属于topic k的词的个数Nm和topic k产生词 t 的个数Nk,公式中这些统计数量的无法根据语料直接得到,如果我们知道语料中的每个词的主题,即得到topic z,那么就可以推断出Nm和Nk,进一步就可以得出目标概率参数的贝叶斯估计(第m篇文档的主题分布theta m,主题为k的词的概率分布phi k)目标概率参数的贝叶斯估计)。

可以利用Gibbs采样对后验条件概率p(z=k|w)进行采样来得到topic z。后验条件概率[9]如下所示,第一项代表的是词在topic k下的概率,第二项代表是topic k在文档m下发生的概率:


Dirichlet Mixture Model (DMM)

DMM模型基于的假设是每个文档由单个主题生成,而在文档的主题确认之后,文档内的词语的生成是相互独立的,而且词语生成概率与所在位置无关[3]。DMM描述的文档生成过程是[6]:

1.采样一个topic的分布的超参数theta

2.对于K个topic中的每个topic生成一个topic-word分布的超参数phi

3.对于每一个文档

a.根据theta采样得到一个编号为z的topic

b.根据编号为z的topic-word分布和对应的phi生成每个单词

可以看出,相比于LDA的生成过程,在每次循环中,每个文档的topic只会生成一次。

每次采样中条件概率为:

DMM的概率图模型如下


Gibbs Sampling for DMM

[3]中引入了电影分组过程来类比DMM的Gibbs采样过程(GSDMM),GSDMM和电影分组过程的对应关系为:

● 文档D <—-> 学生总数

● 每篇文档 <—-> 每个学生

● 文档包括的单词 <—-> 学生看过的电影

然后短文本聚类问题就可以看作:把学生分组,然后每一组的学生看的电影的类型都一致,不同组的学生的观影兴趣不同。下面介绍一下电影分组过程:首先预定义K个组,然后随机把学生分派到这K个组中,接下来让每个学生重新选择分组。学生选择分组基于以下两条准则:

● Rule 1: 选择学生更多的组;

● Rule 2: 选择跟自己兴趣相近的组;

随着这一过程的进行,一些组会变大,同时有些组会消失,最终得到的结果是只有原来K个组的一部分得以保留,并且每一组的学生的观影兴趣相同。以上过程的两个规则和聚类的两个任务相同:

● Rule 1趋向于让簇的完备性更强,即同一个簇中尽量多的包含属于该类的文本(学生);

● Rule 2趋向于让簇的一致性更强,即尽可能让有着同一兴趣的学生在一个簇中。

GSDMM的伪代码如下[3]:


Word Embedding

大部分的有监督机器学习模型,都可以归结为[15]:f(x)->y。在 NLP 中,把x看做一个句子里的一个词语,y是这个词语的上下文词语,那么这里的 f,便是 NLP 中经常出现的语言模型,这个模型的目的就是判断 (x,y) 这个样本,是否符合自然语言的法则。Word2vec 正是来源于这个思想,但它的最终目的,不是要把 f 训练得多么完美,而是只关心模型训练完后的副产物——模型参数(这里特指神经网络的权重),并将这些参数,作为输入 x 的某种词嵌入(向量化)的表示,这个向量便是词向量。

具体的词向量训练过程可以参考[21][25]以及Word2Vec。

受短文本长度的限制,高度语义相关的词可能并不会一起出现。而词向量通过上下文,学到的是全局的词共现信息,通过以下例子可以看出,通过词向量找到的语义相近的词相比通过在短文本中通过共现找到的词的范围要宽广[6],因此结合词向量可以提升短文本的主题模型效果。


Generalized Polya Urn Model (GPU)

GPU描述的是这样一种采样提升模型[12]:当一个特定颜色的球从坛子中取出时,一定数量相似颜色的球、和被取出的球相同颜色的球以及原始的取出的球都放回到坛子中,在迭代过程中,一批相似颜色的球的重要程度都得到提升。

类比于主题模型,每个词对应一个球,相同颜色的球对应于语义相关的单词列表。因此从topic z中采样一个单词的同时不仅仅增加当前词的概率,同时也提升了语义相关词与topic z之间的相关程度。

在实际应用中,通过计算词与词之间向量的cosine乘积来表示相似度,选取一个相似度阈值T,当相似度大于该阈值时作为每个词的相似词候选,当实际采样时,每个相似候选词的提升权重为µ作为超参数进行设定,如下图所示[6]:

以下两图表示出GPU和LDA通过Gibbs采样过程的区别[13]:

从上式可以看出,GPU的Gibbs采样过程中,在每次迭代更新计数(第m篇文档中属于topic k的词的个数和topic k产生词t的个数)过程中,对于相似词V中的每个词按照系数矩阵A来进行更新,最终按照式76和式80来估计文档的主题分布概率和指定主题下的词概率分布。



GPU-DMM

在基于DMM的基础上,GPU-DMM模型从单个topic中生成对应的词,也就是单个doc中所有的词属于同一个topic。


词过滤Word Filtering

当确定短文本的主题之后,文本中每个词(以及相对应的相似词)并不一定与该主题相关,因此对于文本中的每个词都来进行GPU采样提升反而会对最后的topic产生不好的影响,因此在实际应用中之应当强调那些与采样到的主题语义相关的词。[6]中作者提出以下采样方法来决定是否对短文本中的词进行GPU采样。可以看出,当一个词与topic z高度相关时,才会有更高的几率进行GPU提升。

由于Gibbs采样是个随机过程,因此有可能短文本被分配一个错误的主题,在采用了上述的采样过程后,由于不相关的词参与GPU提升的可能性很低,因此分配到错误的主题造成的影响并不会被GPU提升过程加大。


Model Inference

在Gibbs采样中,根据词语w推断主题z时,是基于当前主题在除当前词外其它词上的分配计算的。在LDA中,采样分布基于两组概率相乘即可得到[9]。在GPU采样的过程当中,相比与LDA,采样到的topic-word分布随着通过Word2Vec找到的相似词数量变化[13]。因此[13]总提出了在采样topic-word分布时,将每个word当作最后一次出现进行逼近计算。和DMM的Gibbs采样不同的是,计算隐变量的条件概率时,统计的是topic k对应的在坛子中相关词的数量,而在常规DMM的Gibbs采样中,统计的是被指定为topic k的词的次数。


新文档

LDA中联合概率分布中第一部分是特定主题生成特定词汇的概率,第二部分是特定文档生成特定主题的概率。

当我们考虑测试文档时,认为通过训练集训练已经把所有的词汇-主题分布确定了下来,所以第一部分不用再进行调整,只调整第二部分。第一部分直接用已经估计出来的各个主题上的词汇分布带入即可[20]。


主题连贯性Topic Coherence

基于词共现模式的topic coherence[17]主题连贯性已经被验证是一种可靠的主题分类质量指标。从逻辑上来看,语义上高度相关的词也应当被分配到同一个主题下。[2]中提出了一种主题连贯性的评价流程。

1.文档中的词被分为词对的集合S

2.在给定语料的基础上,计算词共现的概率P

3.基于互信息PMI(或Jaccard系数等)计算确认度(包括UCI、NPMI等)φ

4.汇总确认度并取平均

具体流程可以参考[16][28]。

Segmentation of word subsets

连贯性指的是一个子集支持另一个子集的程度。词集合W分段的结果是一系列W的子集对。大部分的主题连贯性度量的是单个词与单个词结对之间,也就是单个词与其它词结对形成子集对,然后进行计算。


Probability Estimation

两个词的联合概率通过包含该词的文档数除以总共的文档数进行计算。


Confirmation Measure

确认度指的是词的子集对(W’,W*)中,W*对W’的支持程度。一种计算方式是PMI[18],PMI衡量的是W’和W*一起出现的概率,[2]中提出更准确的一种方法是NPMI。

式26为PMI[18],式27指的是NPMI。


评测Evaluation

Alpha

[11]中提出用50除以主题数量确定alpha的值

Beta

增大beta会减小单个文档中主题的数量,减少beta能够产生更多的主题[11]

最后在线上的效果是基于短文本主题模型的特征之后,点击率预估模型AUC增加2个百分点


未来工作

语料与短文本匹配问题OOV

有可能出现短文本分词之后,得到的分词结果中,并没有词语包括在语料训练得到的词向量之内。一种方法是直接用0向量补齐,另一种解决方法是用FastText[14]训练得到字向量,对于未出现的词,用对应的字的向量进行叠加得到词向量

[26]中发现字粒度下有很好的泛化性,能很好的弥补词粒度输入的不足,如切词的错误和未登录词 OOV 问题。这也提示我们可以将字粒度和词粒度进行融合互补。另一方面,由于切词自身不存在唯一客观标准,实际上不同的切分方式也可以实现互补,比如可以同时使用大粒度切词和细粒度切词。这样一来,我们对单一切词的精度要求就可以不那么高了。这也从某种意义上降低了语义匹配任务对切词的高度依赖。


参考文献

1.LDA数学八卦

2.Exploring the Space of Topic Coherence Measures

3.A dirichlet multinomial mixture model-based approach for short text clustering

4.Bayesian Inference for Dirichlet-Multinomials and Dirichlet Processes

5.P´olya Urn Models

6.Topic Modeling for Short Texts with Auxiliary Word Embeddings

7.Natural Language Processing from a Machine Learning Perspective

8.邹博.主题模型LDA

9.有人问你如何掌握隐含狄利克雷分布(LDA),把这篇文章甩给他

10.word2vec 中的数学原理详解

11.Finding scientific topics

12.en.wikipedia.org/wiki/Pólya_urn_model

13.Optimizing Semantic Coherence in Topic Models

14.github.com/facebookrese

15.zhuanlan.zhihu.com/p/26

16.radimrehurek.com/gensim

17.rare-technologies.com/w

18.en.wikipedia.org/wiki/P

19.cpmarkchang.logdown.com

20.zhihu.com/question/3001

21.word2vec 中的数学原理详解

22.David M. Blei,Probabilistic Topic Models

23.[LDA工程实践之算法篇-1]算法实现正确性验证

24.自然语言处理/主题模型

25.Word Embedding Explained

26.百度NLP | 神经网络语义匹配技术

27.一次“高大上”模型的落地“失败”吐槽

28. Evaluating Topic Models


本文经授权转载自zhangyonglong博客:

zhouyonglong.wordpress.com


Paper地址

https://www.researchgate.net/publication/305081381_Topic_Modeling_for_Short_Texts_with_Auxiliary_Word_Embeddingswww.researchgate.net

板块招聘信息:(PDF) Topic Modeling for Short Texts with Auxiliary Word Embeddings板块招聘信息:

AI板块副主编招聘要求:

1.计算机视觉、语音识别、自然语言处理方向硕士毕业或博士在读,及以上学历也可。

2.有文字编辑经验,博客或知乎专栏写作经历,善于沟通与协调

3.有时间,有责任心,保证每周工作 2-3个小时。


扫二维码关注『运筹OR帷幄』公众号:

点击查看『运筹OR帷幄』志愿者招募介绍及加入方式

编辑于 2019-03-05

文章被以下专栏收录