2019,CIKM 闲鱼垃圾评论。
我们先看看广告评论怎样越来越隐秘:
如何解决?—— 核心思想在于 上下文。把文本信息的上下文综合考虑进行,才能准备判断它到底是不是垃圾评论。
本文定义了两种上下文:局部上下文 和 全局上下文
整体框架如下:

异构图:节点为 用户(U) 与 商品(I),边(E) 表示用户对商品进行了评论

一般图卷积的层级可以分为聚合(aggregation)与结合(combination)两大操作。其中 AGG 会聚合邻近节点的嵌入向量,例如最大池化或基于注意力权重的加权和等。COMBINE 操作会结合自身的嵌入向量与前面聚合的嵌入向量。

而本文提出的 GAS 模型对异构图的学习,也是主要在这两个方面做改动:
GAS 中,聚合操作为:
边的聚合:

user节点、item节点聚合:
聚合了邻居信息的 user/item 节点信息:


公式(7)是对于所有的邻居,进行简单的 attention 操作(向量内积):
GAS 中,combination 操作为:



另外,该模型还结合了 textCNN,因为要获取评论的 embedding。首先将每个词利用 word2vec 得到每个词的表示,再将每个词的表示输入到 textCNN 中学习评论的 embedding。textCNN 与 GCN 进行联合的 end2end 训练。
上述异构图 Xianyu Graph 主要处理邻近节点的局部信息,但与此同时还应该能处理全局信息,这样才能有效地减轻用户的对抗行为。为此,模型应该站在所有评论的角度,看看与当前相似的评论都是什么样,它们是不是垃圾评论,即利用 GCN 的特性,“thefeatures of nodes can be smoothed by its neighbors”。

本文基于 Xianyu Graph 构建了一种新的 Comment Graph(相似评论图),它是一种同构图,每一个节点为评论内容,节点之间的边为两条评论之间的相似性。因为相似的评论距离非常近,因此模型可以考虑与当前评论相近的评论,从而更好地判断当前评论是不是垃圾评论。
由于是想利用邻居进行对当前节点特征进行平滑,故重点在于图的构造!图的构造中,最重要的在于,如何计算相似性,为了降低复杂度,使用 KNN Graph algorithm 进行相似度的计算,即找到最相似的 k 个邻居。(对 KNN Graph 算法感兴趣的可阅读论文:Efficient k-nearest neighbor graphconstruction for generic similarity measures.)
下图所示为一小部分 Comment Graph,如果说局部模型无法根据「add v」判断出意思是加微信,那么放在 Comment Graph 中就非常明确了,它与类似的说法都应该被判断为垃圾评论。
简单而言,Comment Graph 的构建主要分为四个步骤:
通过这种方式,各种垃圾评论可以通过整合其邻居的特征而被平滑化。通过可视化以及实验结果可以看出,经过该处理后的特征更具有分离性(异常的评论更加异常,正常的评论更加正常),如图:

对比实验:
