随着Web2.0技术的出现和发展,互联网上(包括门户网站、电子商务网站、社交网站、音/视频分享网站、论坛、博客、微博等)产生了海量的、由用户发表的对于诸如人物、事件、产品等目标实体的评论信息。例如,下面这两个短文本评论:
(1)“比较了多个智能手机后选择了8150,性价比还可以。另外,就是考虑到它是3.7的屏幕,大小比较合适,否则携带很不方便。”(京东商城用户,2011.11.25);
(2)“我以前在杭州做二手房地产,用温州炒房客的话说:全世界房价降了,杭州的房价永远不会降,因为他们有一道坚不可摧的屏障,那就是杭州官场的参与。”(网易网友,2011.11.25)。
与客观性文本不同的是,这些主观色彩浓厚的评论信息蕴含着大众舆论对上述目标实体的看法,对潜在用户、商家以及政府部门等具有十分重要的参考价值。例如:潜在用户可能会根据这些评论信息做出是否购买的决定,商家需要了解用户使用其产品的反馈意见或者其他商家的竞争情报,政府各职能部门需要全面掌握大众对其所辖区域的新闻事件的思想动态。如果采用人工方式对这些海量信息进行收集和分析,显然是成本高昂、低效和困难的。利用计算机对非结构化的文本评论进行分类和提取的文本情感分析技术(Text Sentiment Analysis)应运而生。
近年来,主题模型(Topic Modeling)成为近年来文本挖掘领域的热点,它能够发现文档-词语之间所蕴含的潜在语义关系(即主题)——将文档看成一组主题的混合分布,而主题又是词语的概率分布——从而将高维度的“文档-词语”向量空间映射到低维度的“文档-主题”和“主题-词语”空间,有效提高了文本信息处理的性能。基于主题模型的文本情感分析技术,期望通过挖掘各种非结构化文本评论所蕴含的主题及其关联的情感特征,来提高文本情感分析的性能,也成为学术界(如UIC的Bing Liu,UIUC的Chengxiang Zhai等)和工业界(如Google)关注的热点。我们对这个方向进行探讨,期望在知识库建设、商业数据挖掘等方面取得一些研究和应用进展。
一、主题模型
如何让计算机“读懂”文字,是自然语言处理的基础问题。Google前研究员吴军曾在《数学之美》中指出,数学是解决信息检索和自然语言处理的最好工具。例如,利用向量空间模型进行文本表示,利用余弦定理进行文本相似性计算,利用隐马尔科夫模型进行中文分词,利用奇异值矩阵分解技术进行文本分类等等。目前,以概率论和数理统计为基础的主题模型是文本挖掘领域较先进的技术,并逐步应用于除传统信息检索之外的关系网络数据挖掘、社会媒体计算、文本情感分析等任务。
l VSM与TF-IDF
现在,计算机还不具备人脑的结构,无法理解自然语言,所以需要首先将无结构的自然语言文本转化为计算机可计算的特征文本。向量空间模型(VSM)是20世纪60年代提出的一种文本表示模型,它将文档表示成特征元素(主要是文档中出现的词语)的集合,即D={t1,t2,…,tn}。最简单的计算词权重的方式是:如果词出现在文档中,则权值为1;没有出现,则权值为0。这种方法的缺点在于,它没有体现词语在文档中出现的频率。一般来讲,词语在文档中出现的越多,说明它对该篇文档的重要性越大(此时,“是”、“和”、“中”、“的”、“得”、“地”等几十个停用词,应该作为例外被去除);因此,基于词频统计的TF方法被提出。但是,词语的重要性不仅随着它在文档中出现的次数成正比增加,而且可能会随着它在语料库中出现的频率成反比下降。也就是说,一个词语在整个语料库中出现得越频繁,则它对于文档的重要性越低,对文档的区分度量越差。因此,上世纪80年代,研究人员又提出TF-IDF(词频-逆文档频率)技术,它基于如下假设:对区别文档最有意义的词语应该是那些在文档中出现频率高、而在整个语料库中的其他文档中出现频率少的词语。TF-IDF结构简单,容易理解,被广泛应用。但是,这种假设并不是完全正确的,也无法捕捉文档内部与文档间的统计特征,更不能解决同义词/多义词问题,因此精确度不是很高。现在的搜索引擎对这种经典的文本降维技术进行了很多细微的优化(例如,考虑词出现在HTML结构文档的位置等),使其更加准确地衡量词语对文档的重要性。
l SVD与LSA
鉴于TF-IDF存在一些缺点,Deerwester等人于1990年提出潜在语义分析(Latent Semantic Analysis)模型,用于挖掘文档与词语之间隐含的潜在语义关联。LSA的理论基础是数学中的奇异值矩阵分解(SVD)技术。
在现实世界中,可以用矩阵描述许多事物之间的关联。例如,文本检索领域的“词-文档”权值矩阵(N个词、M个文档),推荐系统中的“用户-产品”评分矩阵(N个用户,M个产品);社会化网络中的“用户-用户”关系矩阵(一般是N*N矩阵)等等。SVD的功能是将一个比较复杂的矩阵转化几个更小、更简单矩阵的乘积: ,而这些小矩阵描述了矩阵的重要特征(Feature)。其中 的对角线元素为奇异值(特征值的平方根),用于表示这个特征的重要性程度; 、 表示与特征值相关的特征向量组成的矩阵,用于表示有哪些特征。在很多情况下,前r大的奇异值之和就占了全部奇异值之和的99%以上(r远远小于N、M)。为了压缩存储矩阵,只保留前r个对矩阵影响最大的奇异值,而较小的其他奇异值因为不重要而被删除,这便是LSA的“降维”思想: (如下图所示)。
在文本信息检索领域,矩阵C描述N个词语与M个文档之间的已知权重关系(如文档中词的出现次数),通过LSA将其分解为U、D、VT三个小矩阵。这三个矩阵中,U表示词的一些特性,VT表示文档的一些特性;U的第1列大致表示每个词出现的频繁程度,VT的第1行近似与每篇文档中出现词的个数成正比例,D中的奇异值表示潜在语义特征的重要程度;将U、VT的剩余行、列分别取出,并对它们进行聚类,可以发现文档与词之间的潜在语义关联。LSA的优点在于,它对词-文档之间的关联关系进行降维,减少了存储规模;能够发现词语间的相似性、文档与文档之间的相似性、文档与词之间的语义关联,对近义词和多义词有一定的效果。其缺点在于,由于基于SVD,迭代计算次数非常多,在处理海量文本数据时,文档和词的维度将急剧增加,使SVD的计算复杂度呈三次方增长。目前,开源项目Mahout已经实现了基于Hadoop/MapReduce的并行SVD的实现。
l PLSA与LDA
主题模型主要有两类:PLSA和LDA。如下图所示:主题模型假设每个文档由多个主题混合而成(利用文档在所有主题上的概率分布来表示),而每个主题都是词上的概率分布(即每个词对主题的贡献度),这样文档、词都可以映射到同一个潜在语义空间——主题。
鉴于LSA存在一些缺点,Hofmann等人于1999年提出一种基于概率的潜在语义分析(Probabilistic Latent Semantic Analysis)模型。PLSA继承了“潜在语义”的概念,通过“统一的潜在语义空间”(也就是Blei等人于2003年正式提出Topic概念)来关联词与文档;通过引入概率统计的思想,避免了SVD的复杂计算。在PLSA中,各个因素(文档、潜在语义空间、词)之间的概率分布求解是最重要的,EM算法是常用的方法。PLSA也存在一些缺点:概率模型不够完备;随着文档和词的个数的增加,模型变得越来越庞大;在文档层面没有一个统计模型;EM算法需要反复迭代,计算量也很大。
鉴于PLSA的缺点,Blei等人于2003年进一步提出新的主题模型LDA(Latent Dirichlet Allocation),它是一个层次贝叶斯模型,把模型的参数也看作随机变量,从而可以引入控制参数的参数,实现彻底的“概率化”。如下图所示, 其中:
是LDA模型的Dirichlet的先验分布,表示整个文档集上主题的分布; 表示文档d上主题的多项式分布;Z表示文档d的第n个词的主题;W表示文档d的第n个词;N表示文档d所包含词的个数;D表示文档集;K表示主题集; 表示主题k上词语的多项式分布; 表示所有主题上次的先验分布。事实上,去掉 和 ,LDA就变成了PLSA。目前,参数估计是LDA最重要的任务,主要有两种方法:Gibbs抽样法(计算量大,但相对简单和精确)和变分贝叶斯推断法(计算量小,精度度弱)。目前,Mahout已经实现基于变分推断法的LDA模型,但还有许多功能待完善。
l 主题模型的扩展
目前,根据不同的应用需求,已经出现许多扩展的主题模型。
Ø 考虑上下文信息:例如,“上下文相关的概率潜在语义分析模型(Contextual Probabilistic Latent Semantic Analysis,CPLSA)”将词语上下文信息引入PLSA;也有研究人员考虑“地理位置”上下文信息,从地理位置相关的文档中发现地理位置关联的Topic。
Ø 主题模型的演化:引入文本语料的时间信息,研究主题随时间的演化,例如DTM、CTDTM、DMM、OLDA等模型。
Ø 并行主题模型:在大规模数据处理的需求下,基于并行计算的主题模型也开始得到关注。现有的解决方案有:Mallet、GPU-LDA、Async-LDA、N.C.L、pLDA、Y!LDA、Mahout、Mr.LDA等;其中pLDA、Y!LDA、Mahout、Mr.LDA等基于Hadoop/MapReduce框架,其他方案则基于传统的并行编程模型;参数估算方面,Mallet、Async-LDA、pLDA、Y!LDA等使用Gibbs抽样方法,Mr.LDA、Mahout、N.C.L等使用变分贝叶斯推断法,GPU-LDA同时支持两种方法。
Ø 引入用户评分信息:将用户对产品或者博文的评分信息引入基本LDA模型中,例如《Supervised topic models》;
Ø … …
二、文本情感分析
文本情感分析,又称意见挖掘(Opinion Mining),是指对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程;属于计算语言学的范畴,涉及到人工智能、机器学习、数据挖掘、信息检索、自然语言处理等多个研究领域。按照应用领域的不同,可以将文本情感分析技术分为:(1)基于产品评论的文本情感分析:处理用户发表的产品评论文本,一般用于消费者辅助决策和商业舆情监控;(2)基于新闻评论的文本情感分析:处理用户对新闻事件发表的评论文本,多用于帮助政府相关部门进行舆情监控,对大众做出正确舆论引导。
按照文本的不同粒度,可将文本情感分析划分为词语级、句子级、篇章级和海量数据级:
(1)词语级是基础和前提,主要指对评价词进行抽取,并对其情感倾向(如褒/贬、喜怒哀乐等)进行分类。这里主要依赖两种方式:(a)基于语料库,即利用大语料库的统计特性,通过观察词语之间的共现关系、句子的语法模式等现象,来挖掘语料库中的评价词语并判断极性。(b)基于词典:主要使用词典中(如WordNet 或HowNet)词语之间的词义联系(如同义词、反义词、下位词等)来挖掘评价词语。有些还需要考虑词语上下文因素。
(2)句子级的任务主要包括:(a)判断该句子是主观句还是客观句;(b)如果是主观句,则对句子情感倾向进行判断,并从中提取出与情感倾向性论述相关联的各个要素,包括:观点持有者、评价对象、评价对象的特征(如价格、地理位置、售后服务、油耗、性价比等)、情感特征、评价时间。在这里,中文分词技术是句子级中文文本情感分析的一个基础,其中中科院的ICTCLAS系统是目前最好的中文分词工具;监督学习、无监督学习、半监督学习的各种具体方法则应用于句子情感分类。
(3)篇章级是指从整体上判断某篇文档的情感倾向性;由于文档往往包含多个评论对象(或者多个主题),使得篇章级文本情感分析技术相对粗糙而不适合于大多数应用。
(4)海量数据级主要从互联网上抓取大量关于某个新闻或者相关主题、公司及其产品(或者竞争对手及其竞品)的主观评论文本,并对它们进行集成和分析,进而挖掘出大众对这些目标实体的总体褒贬态度和走势。
此外,文本情感分析是领域敏感的,例如来自图书销售领域的在线评论信息挖掘系统,可能并不适用电子数码商品销售领域;也是语言环境敏感的,例如英文文本情感分析的一些技术就不一定适合中文文本情感分析;还有一些用户出于某种目的(通常情况是,通过增强或者诋毁目标实体的声誉,以达到广告促销、错误舆论导向的目的,例如“网络水军”的灌水帖)所撰写伪造的、不真实的意见信息。这都给文本情感分析的实际应用带来困难。
三、主题模型在文本情感分析中的应用
近年来,文本情感分析技术在网络营销、企业舆情监控、政府舆论监控等扮演越来越重要的角色。鉴于主题模型在文本挖掘领域的优势,基于主题的文本情感分析技术也成为人们关注的热点,其主要任务是通过挖掘用户评论所蕴含的主题、以及对这些主题的情感偏好,来提高文本情感分析的性能。例如,对于数码产品网购评论,主题可能是“电池续航能力”、“主屏尺寸”、“售后服务”或者“性价比”。
从技术实现的角度,PLSA和LDA及其扩展模型可以直接应用于用户评论文本挖掘中。但是,工业界发现,直接抽取主题的方式效果往往并不理想。以网上购物评论为例,原始的主题模型主要针对篇幅较大的文档或者评论句子的集合,学习到的主题主要针对整个产品品牌;而现实情形是,用户评论大多针围绕产品的某些特征或内容主题展开(如口味、服务、环境、性价比、交通、快递、内存、电池续航能力、原料、保质期等等,这说明相比于对产品的整体评分, 用户往往更关心产品特征),而且评论文本往往较短。基于此,有些研究人员提出从“词-句子-段落-文档”多粒度划分的角度抽取评论主题。例如,Yohan Jo等人在WSDM2011会议上提出ASUM方法:将句子看作文档,句子中每个词都是隐含主题的分布,然后利用LDA进行主题挖掘;在此基础上,融合主题特征和情感信息来分析用户对这些主题的偏好,并以<主题,情感词>序对作为输出。以本文开头的评论句“比较了多个智能手机后选择了8150,性价比还可以。另外,就是考虑到它是3.7的屏幕,大小比较合适,否则携带很不方便。”为例,它主要隐含了智能手机三星8150的两个主题“性价比”和“主屏尺寸”,而与主屏尺寸相关的词语包含“3.7”、“屏幕”、“大小”、“携带”(同义词为“便携”);情感词为“还可以”、“合适”、“否则xx不方便”。与此类似的是,Moghaddam等人在SIGIR2011会议上提出ILDA方法,通过增加相关参数来改进LDA,应用于抽取评论主题、计算对主题的数字量化评分。再来考虑一个餐馆评价系统,与“价格”主题相关的词语可能包括:“价格”、“价钱”、“性价比”、“贵”、“便宜”、“人均”、“元”、“免费”、“x折”、“消费”等等;此外,也可能包含“车位”、“热情”、“生日”这样的词(或者与价格存在某些关联,或者是噪音)。
目前,网上购物评论或者新闻评论中,往往还有其他一些与评论相关的信息,如产品评分、产品特征满意度评分、优缺点区分、顶/踩、产品/新闻标签等等。如何利用这些信息帮助更精确地抽取主题、以及对主题的情感偏好,也得到研究人员的关注。例如,有些研究人员利用维基百科中的结构化文本来帮助抽取博客中的主题。此外,有一些研究工作侧重于“主题词”和“情感词”混合在一起,不加区分;还有一些研究工作通过设计合适的方法将“主题词”和“情感词”分开来抽取。
从系统设计的角度,基于主题模型的文本情感分析系统主要包括以下部分:评论信息采集与预处理(如网页爬取、中文分词、停用词处理等)、主题抽取、情感词抽取(可能涉及到情感词典构建)、主题的情感分类或评分、主题情感摘要生成(方便用户直接了解主题)、系统评测等。此外,当前的基于主题模型的文本情感分析技术主要侧重于文本评论,而较少关注与客服人员的文本问答或者语音咨询;而后者对于挖掘用户需求也是有意义的。
四、未来
目前基于主题模型的文本情感分析技术主要关注“评论文本—主题—词语”之间的关联关系,而较少从面向用户层级的角度展开研究;文本情感分析的结果,也主要面向大众化用户需求,而非个性化用户需求。事实上,这些评论都是用户相关的。研究用户层级的文本情感分析技术:用户-评论文本-主题-词语,结合推荐系统并针对特定商业应用背景开发出新型的文本情感分析应用系统,在不久的将来有望从概念走向现实应用。例如:在电子商务领域,用户往往拥有明确的用户标识,可以通过基于主题的文本情感分析技术,挖掘用户的评论信息发现具有相似偏好的用户(集体智慧)、挖掘专家意见(少数人的智慧)、挖掘社交网络中来自朋友的评价信息(社区智慧)等,来发现用户对产品及相关主题的偏好,然后再进行个性化推荐。