Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

作者

CIKM最佳应用论文:11亿节点的大型图,看闲鱼如何用图卷积过滤垃圾评论

训练并推断 11 亿节点的图,闲鱼垃圾评论过滤系统也用上了最前沿的图卷积神经网络阿里巴巴的这项研究获得了 ACM CIKM 2019 最佳应用论文奖,这足以说明图卷积在传统任务中的强大潜力。

垃圾信息过滤一直是我们关注的问题,虽然表面上它只是一个最简单的二分类问题,但要做好还是非常困难的。尤其是闲鱼这种开放性评论机制,评论的维度及角度非常多种多样,再来筛选垃圾信息就非常困难了。

从最开始我们通过关键字判断垃圾信息,到采用朴素贝叶斯等浅层模型,再到 TextCNN 等深度神经网络,我们已经采用很多算法从文本层面判断评论是不是垃圾评论。

但很多时候,光使用文本是不够的,因为在闲鱼的场景中,灰产和模型一直在对抗,垃圾评论变异得很快,闲鱼需要结合一些难以变异的特征判断评论是不是垃圾评论,这些难以变异的信息包括发送这条评论的用户信息、接收这条评论的商品特征,甚至是发送这条信息的用户,他的其它评论行为;以及与它类似的文本都有什么特征。

如果要利用这些多模态信息与复杂的图结构信息,我们就需要更强大的前沿模型——图卷积神经网络

在这篇文章中,机器之心将介绍阿里如何把图卷积网络用于闲鱼的垃圾评论过滤。目前该系统已经部署到了闲鱼使用环境中,它每天能处理百万级的闲鱼评论,并在其他强有力的深度学习模型基础上,额外筛选出一千多条非常隐秘的垃圾评论。

阿里研究者表示:「基于图卷积的垃圾信息筛选是一种非常通用的思想,它的应用范围远不止垃圾评论过滤,淘宝信息的知识产权保护、淘宝商品管控和用户恶意评价等方面都可以采用。本身阿里的业务场景非常广,再加上神经网络可以利用复杂图数据的结构信息和多模态属性信息,神经网络还是非常有前景的。」

闲鱼评论过滤为什么难?

闲鱼是国内最大的二手交易平台,我们可以浏览卖家发布的各种商品,并根据描述与评论选择合适的物品。然而,这个每天交易超过 20 万商品的平台,却会受到垃圾评论的困扰。这主要是因为它与淘宝不一样,淘宝只有买过商品才能评价,但是对于闲鱼,评论充当着买卖双方的沟通工具,很多评论行为发生在购买之前

正式这种提前沟通与议价的机制,为垃圾评论提供了合适的平台。想象一下,如果灰产用户在许多受关注的商品中留言自己的广告,这样岂不是非常「划算」?为此,阿里的研究者一直与垃圾评论做着对抗,垃圾评论越来越「隐秘」,而判别算法也越来越「聪明」。

我们先看看广告评论怎样越来越隐秘:

  • 换个说法:使用不同的方式表达相同的意思,例如「拨打电话获得更多兼职信息」和「闲余时间挣点钱?联系我」,这两者都引导我们关注相同的兼职广告。

  • 关键字替换:使用少见的中文字符、笔误,甚至表情符号替换关键字,例如「加我的 VX/V/WX」都表示加我的微信。

垃圾评论发布者的这些小技巧很容易欺骗一般的机器学习系统,与此同时,如果发布者发现这些方法不太管用,他们又会挖掘一些新技巧。因此这样总是防不胜防,已经部署的防控算法的效果也会逐步降低。所以如果是一个好的垃圾评论过滤系统,它首先要捕捉到现有的各种模式,与此同时还应该降低对抗行为对系统的影响。

解决思路是什么?

解决垃圾信息过滤的核心思想在于上下文,我们只有把文本信息放入对应的环境,才能准确判断它到底是不是垃圾评论。阿里研究者定义了两种上下文,即局部上下文和全局上下文。其中局部上下文包含发这条评论的买家特征及行为和这条评论对应的商品特征等信息,而全局上下文表示当前评论在全部评论中的扮演的角色。

  • 论文:Spam Review Detection with Graph Convolutional Networks

  • 论文地址:https://arxiv.org/abs/1908.10679

以两种上下文信息为出发点,研究者设计了名为 GCN-based Anti-Spam System(GAS) 的垃圾评论过滤系统。如下所示为 GAS 的整体概览,其中模型会从左侧图抽取出表示商品、用户和评论的信息,从右侧抽取出类似评论表示的意义。最后结合这些信息进行分类,模型就能很好地识别垃圾信息了。

研究者表示:「GAS 会使用两个图来引入不同的上下文的信息。闲鱼 Graph 是一个异构图,它引入局部上下文信息,另一个是同构图 Comment Graph,它引入了全局上下文信息。在这两个图上,研究者分别运行不同的图卷积算法,并最终融合两个图模型的上下文信息,从而共同判断一个评论是不是有问题。」

这项研究比较重要的地方在于,研究者基于他们对业务的理解,所设计的图网络结构能够完成两种上下文信息的抽取,从而真正提升业务场景的效果。研究者说:「这是我们论文最主要的贡献之一,我们会把传统的文本分类的问题抽象成异构图上的边分类问题,把图卷积算法和文本分类做一个很好的结合。」

不光是在做垃圾检测的过程当中,阿里在研究与业务中都会遇到很多特定问题。研究者表示:「很多情况下,我们很难从学术界直接套用一些好的方法,因此经常要把成熟或新颖的算法匹配到业务上,这些匹配很可能做出一些新的贡献。」

如何优雅地理解图卷积

图卷积是非常神奇的一个模型,它能处理图这种结构化的数据。但是如果要理解图卷积,我们又会发现它要求的数学基础似乎非常高,傅立叶变换、拉普拉斯算子等一大波数学在等着我们,这就是最初的频域思路。

阿里研究者说:「自 ICLR 2017 Kipf 的文章发表以来,图卷积才逐渐受到更多的关注,该论文从频域的角度将 CNN 转移到了 Graph,并推导出了非常简单优雅的形式。后来研究者又从空域的角度提出了 GraphSAGE,它利用直观的节点采样与特征聚合高效地生成节点向量,后面还有 Bengio 组的 GAT 与 MIT 的 jumping knowledge net。想了解图卷积的同学可以从这几篇文章入手。」

  • 图卷积开山之作:Semi-Supervised Classification with Graph Convolutional Networks

  • 论文地址:https://arxiv.org/abs/1609.02907

图卷积的核心思想是希望利用近邻节点的信息进行聚合而生成当前节点的新表征,这样的节点表示可以进一步用于下游任务。如果我们直接从核心表达式出发,跳过推导过程,其实能更容易地理解。如下所示为两层图卷积网络之间的传播方法,它看起来只不过比常规的神经网络多了 D tilde 与 A tilde 这几项。

如果我们的图有 n 个节点,那么节点与节点之间的关系可以用 n*n 的邻接矩阵表示,它再加上由节点特征向量组成的矩阵 H 就是图卷积的输入。在上式中,A tilde 以及 D tilde 就是由邻接矩阵算出来的东西,它对于同一张图是不变的,因此可以预先计算好。

现在,剩下的 H×W 就是输入Embedding H经过一层全连接层了,以这样方式进行层级传播的卷积网络就是图卷积,我们可以将传播理解为每个节点拿到邻居节点信息,并聚合到自身嵌入向量上

如上图所示,图卷积网络的输入是表示节点及边的特征向量,经过一系列隐藏层的变换,可以计算出每个节点的深度表征。这样的 Z 再来做预测或生成就会非常有效。直观而言,图卷积将图片的 RGB 像素值替换成节点特征,并且通过边的关系引入了邻居的概念,完成卷积运算。

异构图上的图卷积

阿里 GAS 一共有两种输入图,它们分别用来表示局部信息与全局信息。首先我们看看异构图,一般只要边的种类加上节点的种类大于 2,我们就可以称之为异构图。如下所示闲鱼 Graph 为一个标准的异构图,目前图卷积网络大部分都关注更简单的同构图,闲鱼 Graph 这种异构图很难处理。

从上图我们可以看到,闲鱼 Graph 有商品 I 和用户 U 这两种节点,它们的边为评论 E。如上,e2、e4 和 e5 都是垃圾评论,它们都来自于同一用户。利用图来判断垃圾评论,能利用更多的额外信息,准确率也会比纯文本好得多。

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

在阿里的 GAS 中,研究者使用拼接的方式将信息聚合到边上。比如说如果 GAS 需要将信息聚合到不同的边(即评论)上,那么比较核心的表达式可以写为:

其中 h^l 表示第 l 层边的隐藏向量,它需要聚合 l-1 层自身的特征向量以及与它相连的两个节点向量,聚合的方法是拼接三个向量。W^l 表示该神经网络层所需要学习的权重,σ 表示激活函数。看上去它其实和一般的卷积网络并没有什么差别,只不过输入都是图的各种信息,这样也能基于局部上下文判断该评论是否是垃圾评论。

当然上面只是展示了边的聚合案例,其它节点的 AGG 操作和 COMBINE 运算在原论文中都有详细的介绍。

此外,如果从异构图卷积网络的输入与输出来考虑,阿里研究者说:「对于单个用户节点,输入就是邻近商品节点以及邻近评价边的特征。例如一个用户评论了 10 件商品,那么每一个商品向量拼接上对应评论向量,这 10 个特征向量就可以作为输入,后续图卷积就会对它们进行基于注意力机制的聚合等一系列操作。」

同构图上的图卷积

对于闲鱼 Graph 这种大型图,我们能处理邻近节点这些局部信息,但与此同时还应该能处理全局信息,这样才能有效地减轻用户的对抗行为。为此,模型应该站在所有评论的角度,看看与当前相似的评论都是什么样,它们是不是垃圾评论。

阿里的研究者基于闲鱼 Graph 构建了一种新的 Comment Graph,它是一种同构图,每一个节点为评论内容,节点之间的边为两条评论之间的相似性。因为相似的评论距离非常近,因此模型可以考虑与当前评论相近的评论,从而更好地判断当前评论是不是垃圾评论。

如上所示为一小部分 Comment Graph,如果说局部模型无法根据「add v」判断出意思是加微信,那么放在 Comment Graph 中就非常明确了,它与类似的说法都应该被判断为垃圾评论。

简单而言,Comment Graph 的构建主要分为四个步骤:移除所有重复的评论;通过词嵌入模型为评论生成嵌入向量;利用 KNN Graph 算法获得相似的评论对;移除同一用户提出的评论对,或者同一卖家提出的评论,因为之前的闲鱼 Graph 已经考虑了这些信息。

构建了 Comment Graph,再用图卷积就能抽取节点信息了,因为每一个节点输出向量都聚合了周围节点的信息,它就能代表全局上这一些相似评论的意义。

最后,结合异构图卷积与同构图卷积的结果,再来做个简单的分类就很合理了。

从部署到产品

除了模型与研究上的创新,阿里研究者在工程上也做了很多努力。因为对于闲鱼 Graph 这种超过 10 亿商品与 1 亿用户的节点量,要做训练和推断都是比较复杂的。

目前该系统已经基于 TensorFlow 分布式框架部署在服务端,研究者说:「最开始没有成熟的大规模图框架,我们团队就尝试基于 TensorFlow参数服务器框架自己写一个。我们会将图和特征放到参数服务器上,而后最核心的采样与卷积操作都是从上面获取数据,整个就是一个分布式系统。」

当然后来阿里内部研发了大规模图框架 AliGraph,研究团队将系统迁移到 AliGraph 后进一步提升了效率。

此外,如上所述,GAS 的核心思想还能用于广阔的任务。阿里研究者表示:「整个团队将近 30 人,我们的业务主要分为几类:首先是假货或与知识产权相关的业务,其次还有商品的禁限售管控,这两类都属于商品相关;还有另外一块即营商环境相关的业务,比如恶意评价或投诉等买家和卖家交互的业务。」

这一领域的应用很广阔,阿里也希望有更多关注图卷积或安全方面的人才能共同探索新应用。如果你至少有一篇高质量机器学习算法一作论文,在图卷积网络和自监督深度学习有深入研究或非常感兴趣,阿里现在也招聘研究实习生和正式研究者(三年以上 ML 经验),感兴趣的读者可联系 shiping@alibaba-inc.com。

  • 获奖论文:Spam Review Detection with Graph Convolutional Networks

  • 论文地址:https://arxiv.org/abs/1908.10679

理论阿里巴巴闲鱼技术垃圾信息(邮件)检测CIKM 2019最佳论文图卷积网络
62
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

朴素贝叶斯技术

朴素贝叶斯是一种构建分类器的简单方法。该分类器模型会给问题实例分配用特征值表示的类标签,类标签取自有限集合。它不是训练这种分类器的单一算法,而是一系列基于相同原理的算法:所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关。举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果可以被判定为是苹果。尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

阿里巴巴机构

阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的18人于1999年在浙江杭州创立的公司。

https://www.alibabagroup.com/
机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

https://www.jiqizhixin.com/
图卷积神经网络技术

图卷积神经网络(Graph Convolutional Network)是一种能对图数据进行深度学习的方法。GCN的三个主要特征:它是卷积神经网络在 graph domain 上的自然推广;它能同时对节点特征信息与结构信息进行端对端学习;适用于任意拓扑结构的节点与图;

图网络技术

2018年6月,由 DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同提交了论文《Relational inductive biases, deep learning, and graph networks》,该研究提出了一个基于关系归纳偏置的 AI 概念:图网络(Graph Networks)。研究人员称,该方法推广并扩展了各种神经网络方法,并为操作结构化知识和生成结构化行为提供了新的思路。

图卷积网络技术

假设有一张图,要做分类,传统方法需要手动提取一些特征,比如纹理啊,颜色啊,或者一些更高级的特征。然后再把这些特征放到像随机森林等分类器,给到一个输出标签,告诉它是哪个类别。而深度学习是输入一张图,经过神经网络,直接输出一个标签。特征提取和分类一步到位,避免了手工提取特征或者人工规则,从原始数据中自动化地去提取特征,是一种端到端(end-to-end)的学习。相较于传统的方法,深度学习能够学习到更高效的特征与模式。

推荐文章
感谢分享!请问user对item存在多个不同的comment这种情况是如何处理的?
请问节点embedding, user/item/comment是无监督的学习还是有监督的学习呢?