为了通过海量的社交网络数据及时的掌握热点话题和舆情的态势变化,需要对话题进行提取、追踪和预测。话题发现是解决该类问题的关键技术之一。LDA(latent dirichlet allocation,隐性狄利克雷分布) 主题模型在新闻话题发现与检测方面获得了不错的效果,但由于社交网络文本(如微博客短文本)存在高维性及主题分布不均等问题,加之LDA自身的局限性,导致以概率化词汇抽取为基础的LDA主题模型在处理社交网络文本方面还存在模型难以降维处理和主题不明确的问题
[
1
,
2
,
3
,
4
]
。
CBOW语言模型是Mikolov等
[
2
]
于2013年提出的一种基于类前馈神经网络的语言模型。它能利用文本词汇的上下文信息,通过模型训练将词转化为向量。通过向量空间上的相似度可以分析表示文本语义上的相似度。可作为词向量聚类方法用来寻找相似词汇,进而在有效表达语义信息的同时降低模型处理的维度
[
4
]
。
本文研究话题发现问题,通过对现有话题发现常用的LDA主题模型的局限性进行分析,提出一种基于CBOW语言模型的向量表示方法进行文本词相似性聚类,以聚类结果为基础利用LDA主题模型对文本进行隐含主题提取的话题发现方法。
1 相关工作
文献
[
4
]
提出一种将LDA与VS
M
(vector space model,向量空间模型)结合的方法研究微博客话题发现。该方法基于TF-IDF的权重词向量,再将2种方法结果进行线性加权融合在一起,实现文本间相似度的计算。TF-IDF向量方法仍然是对词频进行简单的概率统计,易受无用信息干扰。
为了减少代词和介词等无用文本信息对话题抽取模型的干扰,文献
[
5
]
提出在微博话题检测过程中,将中文词性标注后输入LDA主题模型进行话题抽取。该方法试图通过剔除大量无关词汇,使向量空间的维度降低。
利用LDA和基于神经网络语言模型的向量化方法进行文本的特征提取并对比分析。实验结果表明,LDA直接应用在文本特征表示上的效果不理想,同时也面临着高维度的问题;基于神经网络语言模型的向量化方法应用于文本表示过程中能够带来一定的效果提升。
总结LDA模型的局限性主要表现在:
1) 由于中文词义多样性,存在很多同义词、近义词、易混淆词等,致使基于概率化的单词抽取方法会存在文本的主题分散及主题混淆等问题。
2) 社交网络文本数据量大,主题更新速度快以及训练语料数据维度特别高(通常上万维的向量),使得LDA主题模型规模很大,处理效率偏低。
2 基于CBOW-LDA的话题发现
2.1 话题发现的基本流程
话题发现的主要步骤为先根据聚类规则挖掘社会网络中的用户群组和抓取文本数据。进行数据预处理后,提取特征和模型表示,将杂乱的非结构化文本转化为结构化数据。然后利用聚类算法对文本主题词进行相似度的计算和聚类,从而找出群组的话题并进行分析,该过程如
图 1
所示。
2.3 文本向量化
与传统的one-hot representation向量表示法不同,CBOW属于distributed representation的词向量表示方式
[
7
]
,该方法通过引入连续的分布式词表示方法,形成了不同于传统词袋模型连续词袋模型。
CBOW模型的主要思想是根据语料中词的上下文信息生成其对应的词向量,并映射到高维空间中后,以词向量在高维空间中的相互关系来计算词与词之间的相似度。具体地,是将语料中的词通过左边的输入层映射到中间的投影层得到词典。
设有语料库
C
中的
t
个词汇
C
(
t
)通过共享投影层,得到对应的唯一位置
W
(
t
),接着通过
W
(
t
)的上下文信息来预测
W
(
t
)。基本训练步骤如下
1) 在输入层,通过窗口值k限定输入层中的上下文窗口大小,然后在读取窗口中的词
C
(
t-k
),
C
(
t
-
k
+1),…,
C
(
t
+
k
-1),
C
(
t+k
),通过hash表得到投影层的相应位置
W
(
t-k
),
W
(
t
-
k
+1),…,
W
(
t
+
k
-1),
W
(
t+k
),这样就可得到某个词
W
(
t
)的上下文词汇Context(
W
(
t
)),因为
CBOW
的模型的目标是在已知当前词
W
(
t
)的上下文Context(
W
(
t
))的情况下预测当前的词。
2) 在中间的投影层,利用对
W
(
t
)的上下文信息Context(
W
(
t
))进行累加操作。用公式可表达为
3) 从中间的投影层到右边的输出层,利用
W
(
t
)的上下文Context(
W
(
t
))建立条件概率表达式
P
(
W
(
t
)|Context(
W
(
t
))),用来表示生成
W
(
t
)的向量值。
CBOW模型的优化目标函数取其对数似然函数
E
w
k
~
P
v
(w)
表示Huffman树中上下文不出现某个词的期望值,
P
v
(
w
)
表示整个语料中词频的分布,
W
k
表示该词在Huffman树各层中非目标词组的节点向量和。
得到Huffman树中路径概率最大的词向量后,通过训练整个文本的词汇得到最终的词向量集。利用cos相似度计算词向量之间的相似度,记录相似词的词频和向量,输入LDA主题模型进行文本建模。
2.4 文本的模型表示
LDA主题模型是包含文档-主题-词语的3层贝叶斯模型,其中主题是隐含层
[
9
]
。与传统主题模型输入不同,CBOW-LDA算法中LDA主题模型输入的语料是经过相似性聚类的文档-词语的分布,使LDA主题模型处理维度降低及主题更明确。
LDA主题模型采用概率产生模式,将文本表示为主题的混合分布
p
(
z
)。LDA的联合概率公式为
1) 对于主题
z
,根据Dirichlet分布Dir(
β
)得到该主题上的一个单词多项式分布向量
φ
;
2) 根据Dirichlet分布Dir(
α
)得到该文档的一个主题分布概率向量
θ
;
3) 对于该文档N个单词中的每个单词
w
i
(
i
∈[1,
N
])。从
θ
的多项式分布Multi(
θ
)随机选择一个主题
z
,即得到文档-主题的分布。从主题
z
的多项式条件概率分布Multi(
φ
)选择一个单词作为
w
i
,即得到主题-词语的分布。
利用Gibbs抽样简化求解
θ
和
φ
的值。由贝叶斯公式得到后验概率公式如下
式中,
V
表示词语的数量;
n
k
w
表示词项
w
在主题
k
中出现的次数;
n
m
k
表述主题k在文档
m
中出现的次数。
对于同一文本而言,由于CBOW-LDA算法进行了词向量的相似性聚类,实质是优化了LDA主题模型输入的文档-词语分布,以致使求解得到
θ
和
φ
的结果产生了更新,得到了新的词项和主题项。
3 实验及结果分析
3.1 评价指标
评价指标采用文本建模中常用的困惑度(perplexity)来度量,困惑度越小,主题词被选中的概率越大,表明语言模型吻合度越好。其定义如公式(8)所示
3.2 语料获取
本文采集了新浪微博上有关IT互联网行业高管以及政府机关人员的微博语料,以及这个群组内的关注情况数据。数据集涉及约6 000名用户在2015年3月至2015年4月这30天内发表的约43万条微博。以这期间的某一天为例,抓取到14 536条微博,分析其包含词数多达233 296。
3.3 实验步骤与参数设置
原始微博数据包含诸多无用信息,使用“Jieba”分词工具进行分词和过滤,得到的词典库包含46 516个词;然后将其输入到CBOW-LDA模型使用Word2vec 0.8(2015年7月)开发向量程序进行向量化处理。
Word2vec的参数设置如
表 1
所示,其中Cbow=1表示训练使用的是CBOW模型,
Hs
=0表示使用的是负采样简化求解计算。词向量聚类中,相似度的阈值设为0.75。
表 1
Word2vec参数设置
CBOW-LDA算法中的文本模型表示过程选用
lda
1.0.3的
Python
工具集作为LDA的实现工具。该工具处理速度较快,适合分析大规模语料。已有文献大多数将模型参数中的
α
和
β
设置为:
α
=50/
K,β
=0.01。
K
为隐含主题词数,可根据文本规模和应用场景做相应调整。Gibbs抽样迭代次数为500次。
所有参数设定好之后,程序便开始利用Gibbs抽样算法对模型求解。程序运行完成后可得到参数
θ
和
φ
的值,通过分析可得文本的主题词,进而总结语料的话题。
3.4 结果分析
在相同的参数设置和语料下,通过计算困惑度来度量模型的处理效果。对比方案参照文献
[
4
]
中基于TF-IDF的权重词向量LDA方法(本文简写为TF-LDA),2种方法困惑度随隐主题数目的变化情况如
表 2
所示。
表 2
2种方法困惑度比较
Abstract
: Topic Detection is one of the most important techniques in hot topic extraction and evolution tracking. Due to the high dimensionality problem which hinders processing efficiency and topics mal-distribution problem which makes topics unclear, it is difficult to detect topics from a large number of short texts in social network. To address these challenges, we proposed a new LDA (Latent Dirichlet Allocation) model based topic detection method called CBOW-LDA topic modeling method. It utilizes a CBOW(Continuous Bag-of-Word) method to cluster the words, which generate word vectors and clustering by vectors similarity. This method decreases the dimensions of LDA output, and makes topic more clearly. Through the analysis of topic perplexity in the real-world dataset, it is obvious that topics detected by our method has a lower perplexity, comparing with word frequency weighing based vectors. In a condition of same number of topic words, perplexity is reduced by about 3%.
Key words
:
word vectors
LDA model
topic detection
perplexity