用深度学习解决虚假评价检测中的冷启动问题

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
原文链接:用深度学习解决虚假评价检测问题中的冷启动问题

 

1. 前言

 

虚假评价检测是数据挖掘异常检测任务中一种典型问题,与我们之前介绍的社交网络虚假账户问题不同的是,虚假评价一般出现在一些电子商务和 提供O2O服务的网站中,例如 Yelp,Amazon 和国内的大众点评等。

 

用深度学习解决虚假评价检测中的冷启动问题

 用户,评价和商品之间的关系

 

虚假评价检测问题有三种类型的实体,分别是评价发布者,评价的对象和评价内容。与社交网络只有一种类型的用户不同,虚假评价的发布者和评价的对象是两种不同类型的实体。

 

在虚假评价检测任务中,主要分为虚假评价发布者(Spammer)的检测和虚假评价(Spam)的检测。

 

冷启动问题最早在推荐系统中被研究。推荐系统中经典的协同过滤算法会利用用户和商品之间的相似性来推荐相似的商品给用户。

 

但是对于新的用户和商品,由于没有购买和被购买记录,所以很难将推荐算法应用到这些用户和商品上。如何分类和预测这些新的样本,这便是冷启动问题。

 

在虚假评价检测中,冷启动问题同样存在。现有的大部分虚假评价检测模型主要依赖评价的文本特征和评价者的行为特征两大维度,而且虚假评价的文本特征已经被证明在区别虚假评价任务中的效果有限。

 

但是,评价者的行为特征依赖于评价者的大量历史行为数据,对于只发表一条评价的用户,许多传统的行为特征为的空缺导致了传统模型不能有效解决冷启动问题。

 

传统手动特征的介绍可以参考这两篇文章: Collective Opinion Spam Detection: Bridging Review Networks and Metadata KDD2015 和 What Yelp fake review filter might be doing?  ICWSM2013

 

从虚假评价检测任务本身来说,我们更希望越早发现虚假评价越好,而不是等到积累一定历史行为数据再作出判断。所以虚假评价检测问题中的冷启动问题有其实际价值。

 

在手动生成特征的时代,对虚假评价的检测研究主要在研究有效的特征还有基于不同实体之间的联系来构建图模型来增加检测的准确度。随着深度学习的发展,出现了一些将深度学习模型利用到虚假评价检测问题上的文章。

 

2. 模型一

 

今天我们介绍两篇文章就是利用深度模型来解决虚假评价检测中冷启动问题,来自 ACL 2017 和 COLING 2018。本文分别用 Wang 和 You 来代称这两篇文章。

 

Wang, Xuepeng, Kang Liu, and Jun Zhao. “Handling Cold-Start Problem in Review Spam Detection by Jointly Embedding Texts and Behaviors,” ACL, 2017.

 

You, Zhenni, Tieyun Qian, and Bing Liu. “An Attribute Enhanced Domain Adaptive Model for Cold-Start Spam Review Detection..” Coling, 2018.

 

Wang 首先提出虚假评价检测中的冷启动问题。他们在 Yelp 评价数据上面提取了一部分“新的评价”,即该用户只发布了一条评价。作者将之前研究中提到的文本和行为特征检测模型应用到这些新评价上,发现检测的效果并不好。

 

为了解决这种冷启动问题,一种直观的想法是从历史数据中去寻找和这个新评价发布者特征相似的评论者,然后把最相似的评价者或者评价的标签作为该新评价的标签。

 

总而言之,虽然新评价信息很少,我们可以通过深度学习,在历史数据上学习到有效的关系嵌入(embedding),然后利用该模型得到新的数据嵌入,这样就可以结合历史嵌入和其标签来预测新数据的标签。

 

简单来说,就是利用深度学习无监督地学习历史数据的高维和非线性特征,而代替之前人为定义特征,从而避免了一些传统特征因为数据缺失而失效的问题。

 

这两篇文章都是采用这样的思路来得到数据的嵌入,然后再将嵌入作为支持向量机的输入进行最后的分类任务。

 

具体来讲,Wang 借鉴了下面这篇文章提出的 TransE 模型。

 

Bordes, Antoine, Nicolas Usunier, Alberto Garcia-Duran, Jason Weston, and Oksana Yakhnenko. “Translating Embeddings for Modeling Multi-Relational Data..” NIPS 2013.

 

在上面这篇文章中,TransE 模型是为了学习多关系数据的有效嵌入。作者把实体A,AB 之间的关系,实体B 构建为三元组,认为 AB之间的关系把实体 A 翻译(translate)到实体 B。

 

作者设计了一个损失函数,即要最小化实体A+AB之间关系的嵌入和实体 B 的嵌入之间的距离,最大化实体 C+AB 之间的关系的嵌入与实体 B 的嵌入的距离。

 

其现实意义就是A 通过AB之间的关系,最有可能联系到 B,而其他实体通过 AB 关系无法联系到 B。具体的优化细节可以参考原文。

 

用深度学习解决虚假评价检测中的冷启动问题

Wang 深度模型示意图

 

在虚假评价检测问题中,Wang 将商品,用户,评价的嵌入构建为三元组,其中评价部分的嵌入是通过 CNN 模型得到100维向量。

 

因为之前的研究中表明 CNN 比 RNN 能更好的捕捉评价文本中的 Aspect 信息,在检测虚假评价任务上的效果比 RNN 好

 

利用 CNN 对虚假评价文本进行检测可参考 Deceptive review spam detection via exploiting task relatedness and unlabeled data. EMNLP 2016

 

通过深度模型,要减小商品A+用户A到评价A的嵌入之间的距离,增加商品 B+用户A到评价 A 的嵌入的距离,或者增加商品A+用户A到评价B 的距离。

 

Wang 的模型还加入一个限制,就是商品评分,作者认为评价的评分作为评价系统中重要元素,会帮助构成更加有效的嵌入。

 

通过在大规模历史数据上无监督地训练,Wang 得到了评价三元组的嵌入模型。在数据集中选取冷启动的评价进行实验后,结果表明利用深度学习嵌入的方法比传统的利用行为和文本特征的方法能更好地检测出新出现虚假评价

 

3. 模型二

 

You 的模型晚于 Wang 的模型,她在 Wang 的模型做了增量改进。You 主要关注到两方面,第一是评价系统中不同类型的实体有其内在的特征,例如宾馆的价格,是否有 WiFi 以及是否有官网等等,这些内在特征对于冷启动的实体同样存在,所以不存在特征失效的问题。

 

另一角度来看,真实用户在评价商品的时候会更多地关注到价格,位置等这些特征,而虚假评价对这些特征则不敏感。

 

第二个方面是不同领域的评价机制有区别,例如对餐厅和对宾馆的评价标准就不同,所以You在设计嵌入模型的时候,加入领域的限制,使得同一领域内评价的嵌入预测值与该领域标签最相近,不同领域嵌入之间的熵最大。

 

用深度学习解决虚假评价检测中的冷启动问题

You 深度模型示意图

 

在 You 的嵌入模型中,分为了三个主要的优化目标,首先是最大化用户,商品还有评价的嵌入与其自身的特征标签的概率,即拥有相同特征标签的实体的嵌入距离相近。

 

第二个优化目标同 Wang 相似,即优化实体三元组之前的关系。第三个优化目前就是加入领域的限制,同上一段的介绍。

 

在实验阶段,You采用了和 Wang 一致的实验设定,在新评价的检测任务中,比 Wang 的嵌入模型的准确率提高了接近10%,但是对召回率不如 Wang 的模型。

 

在虚假评价检测问题中,相对于其他常用指标,召回率是最关键的指标,因为我们只关心对正样本的查准率。

 

You 通过实验还证明了加入实体内在特征和领域限制对于提高嵌入模型的表现有帮助。对于不同内在特征,You 找出了最有效的三个内在特征。

 

分别是评价者和商品的位置是否一致评价者注册日期和评价发布日期是否一致评价的评分和商品平均评分是否一致。这说明了正常用户和发布虚假评价的用户在这三个方面有显著区别。

 

另外,You 还发现他们的模型在餐厅领域的提升没有在宾馆领域的提升明显,原因是因为宾馆领域的数据量较少,所以能提供给餐厅领域的信息较少,这也证明了该文章提出的领域适应模型是有意义的。

 

这两篇文章是较早把深度学习模型用于虚假评价检测问题的研究,相信这两年会有更多的工作把深度模型应用于该问题。

 

阅读更多文章,请查看公众号文章目录并关注我们。