开发者社区 > 博文 > 2020 ICDM 知识图谱竞赛获奖技术方案
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

2020 ICDM 知识图谱竞赛获奖技术方案

  • 京东科技技术说
  • 2021-01-15
  • IP归属:未知
  • 24000浏览
    导读:ICDM(IEEE International Conference on Data Mining,简称ICDM)是数据挖掘领域的国际顶级会议。京东数科硅谷机器学习算法组朱翔宇带队在Knowledge Graph Contest(知识图谱大赛)中获得季军。本文将介绍2020 ICDM中的获奖方案和在 Workshop中分享的内容。基于BERT做了Finetune,引入了一种全新的视角来重新审视关系行为原因提取任务,并提出了一种新的序列标记框架,而不是单独提取行为类型和行为原因。


    一、问题背景

    在内容广告、社会化聆听等许多业务场景中,提取消费者一些行为的背后原因是关注的焦点。以内容广告为例,如今的广告主并不满足于品牌或产品的直接曝光,他们更喜欢通过产品功能嵌入内容,潜移默化地激发消费者主动将自己的品牌或产品与任意的消费行为联系起来。为此,明确地提取消费者行为发生的原因成为构建这样一个满足广告商需求的系统的重要技术。


    本赛题由行业解决方案专家挑选500篇Instagram文章,以确保语言的正式性、多样性和对实际应用程序的知识深度。在本次ICDM评测单元中,主要关注五种事件类型:消费者的关注、消费者的兴趣、消费者的需求、消费者的购买和消费者的使用(Attention,Intention,Need ,Purchase,Use)。同时,评测主要采用F1评测。



    二、问题挑战

    消费者行为的原因提取[1],[10]是许多业务场景(如内容广告、社交监听等)关注的焦点。以内容广告为例。如今的广告主并不满足于品牌或产品的直接曝光,他们更喜欢通过产品功能嵌入内容,潜移默化地激发消费者主动将自己的品牌或产品与任意的消费行为联系起来。为此,明确地提取消费者行为的原因成为构建这样一个满足广告商需求的系统的重要技术。


    消费者行为原因提取(CECE)任务旨在从给定品牌或产品的文本中提取消费者行为和行为原因。传统的方法使用类似于抽取机器阅读理解(MRC)的模型结构[7]。大多数相关工作[6]都是分别提取行为类型和行为原因,没有考虑它们之间的依赖关系。


    三、方案简介


    消费者行为归因提取是一项旨在从文本中提取特定行为背后潜在原因的任务,由于其广泛的应用,近年来受到了广泛的关注。ICDM 2020大会设立了一个评估竞赛,旨在提取特定主题(品牌或产品)的行为及其原因。在本课题中,我们主要研究如何构建一个端到端的模型,同时提取多个行为类型和行为原因。


    为此,我们引入了一种全新的视角来重新审视关系行为原因提取任务,并提出了一种新的序列标记框架,而不是单独提取行为类型和行为原因。实验表明,我们的框架优于基线方法,即使它的编码模块使用一个初始化的预训练的BERT编码器,显示了新的标签框架的力量。在这次比赛中,我们队获得了第一阶段排行榜的第一名。


    1、数据层面

    为了保证数据的高质量性,我们移除了文本中的ID。

    例如:“68771,Love doing makeup on all ages”处理成“"Love doing makeup on all ages”。


    2、模型层面


    为了以端到端的方式提取消费者行为原因,我们的模型主要由两部分组成:BERT编码器和序列标签解码器。


    1) BERT Encoder

    首先,我们将文本Text和标签brand/produt转换成
    [CLS] Brand/Product [SEP] Text [SEP] 的形式,作为模型的输入{x1,x2,...xn}。
    然后,我们使用预训练的BERT模型[2]对内容信息进行编码。编码模块从xj语句中提取特征信息zj,并将其输入到后续的标记模块中。

    这里,我们简要回顾了基于多层双向变换器的语言表示模型BERT。它的目的是通过共同调节每个单词的左右语境来学习深层表征,最近,它在许多下游任务中被证明是非常有效的[3]。具体地说,它由N个相同的Transformer blocks组成。我们将Transformer blocks表示为Trans(x),其中x代表输入向量。具体操作如下:


    上式中,S为输入句中子词索引的一个one-hot向量矩阵,Ws为子词嵌入矩阵,Wp为位置嵌入矩阵,其中p表示输入序列中的位置索引,hl为隐藏状态向量,即第L层输入句的上下文表示,N为变换器个数方块。注意在我们的工作中,输入是一个单一的文本句子,而不是句子对,因此Eq中没有考虑原始BERT论文中描述的分段嵌入。关于Transformer的结构请参考论文[4]。



    2) Sequence Tagging Decoder

    在2020年的ICDM竞赛中,该任务增加了对多种行为类型的判断,这很难用阅读理解框架来解决。竞赛的目标是为每个文本text和 brand/product提取多种行为类型和行为原因。为此,我们提出了一种序列标记解码器,可以同时提取多个行为类型和行为原因。


    首先,我们为成对的输入句子构造标记,每个标记都有一个标记符,如下所示:


    Love doing makeup on all ages,

    B_{consumer interest}

    I_{consumer interest} ...


    用这种方式,我们就可以使用softmax函数独立地对每个标签进行解码,得到所有可能的行为类型和行为原因对的集合。


    在序列标注任务的启发下,考虑邻域中标签之间的相关性,并联合解码给定输入句子的最佳标签链是有益的。因此,我们使用一个条件随机场(CRF)[5]联合建模标签序列,而不是单独解码每个标签。


    形式上,我们使用z={z1,z2,····,zn}来表示一个通用的输入序列,其中zi是第i个单词的输入向量。y={y1,y2,·····,yn}表示z的一个通用标签序列。y(z)表示z的一组可能的标签序列。序列CRF的概率模型定义了一系列条件概率p(y | z;W,b)在给定z的所有可能的标签序列y上,其形式如下:


    对于CRF训练,我们使用最大条件似然估计。对于训练集{zi,yi},似然的对数(即对数似然)由以下公式给出:


    最大似然训练选择参数,使对数似然L(W,b)最大化。解码是以最大的条件概率搜索标签序列y*。


    对于序列CRF模型(只考虑两个连续标签之间的相互作用),采用Viterbi[11]算法可以有效地解决训练和解码问题。


    3、模型集成


    在模型集成[9]阶段,我们采用了一种简单有效的方法,得到了1.30%的提升(如图2所示)。我们采用了两步走的方法来得到最终的结果。首先确定文本边界交叉验证结果的串行化,预测结果的字符位置为1,其余为0。然后我们将所有的CV结果叠加到相应的位置,并通过阈值将小于N的位置更改为0。


    4、模型效果



    四、WorkShop其他获奖方案


    在本次竞赛中,来自日本的选手使用GAN完成了本次任务,整体思路为是通过GAN的生成方式增加训练样本,同时对GAN生成的数据标注为Fake,然后将GAN的生成和BERT层一起送入Bi-LSTM层后在原有Attention,Intention,Need ,Purchase,Use的基础上,增加Fake标签进行预测。



    五、写在后面的话


    作者两年的比赛经历,各种顶会赛事奖杯纳入囊中,但仍以赤子之心不断追逐。后需将把重心放在推荐系统及推荐算法炼丹上。在今年8月份也注册了“炼丹笔记”微信公众号,主做三类内容:学术界推荐算法研究解读、工业界推荐算法方案实战、数据竞赛深度炼丹技巧。欢迎算法爱好者关注,共同交流成长。



    最后,若对数科硅谷算法团队所做的工作感兴趣的朋友们,(内部员工)可直接咚咚搜索DOTA与本人咨询或交流。


    互动讨论:你在日常工作中有没有遇到类似BERT这种预训练模型上线难的问题?又是怎么解决的呢?模型压缩方向,有过哪些经验?欢迎在留言区分享你的困惑或你的见解。


    本文作者:京东数科 朱翔宇

    原文链接:https://mp.weixin.qq.com/s/PevnD_Z-4TPy6jSNnYIsnw

    更多数科技术最佳实践&创新成果,请关注“京东数科技术说”微信公众号 

     

    共0条评论