原文标题:《AliCoCo2: Commonsense Knowledge Extraction, Representation and Application in E-commerce》
背景
在网购时,消费者会输入query检索自己想要的商品,在人的主观意识中,搜索query隐含着许多常识性的知识,比如“天气转凉时需要穿更厚更保暖的衣服”,“商务风格的衬衫通常的立领的”,“孕妇需要防滑的鞋子和防辐射的衣服”等。人的这些常识往往来源于生活经验,但这些常识很难被机器学习到,AliCoCo2的一部分工作就是让机器学习这部分常识,并加入到AliCoCo的图谱中。
但不同的是,常识组成的三元组<s,p,o>往往是有类目约束的,比如三元组<business_style,r:style_to_design, pointed_collar> (<商务风,设计风格,立领>)仅仅在类目是衬衫的约束下才适用,商务风的公文包就不会是立领这个concept,而是扁平的concept。所以三元组<s,p,o>会变成<s,p,o,c>(c: constraint)的四元组<business_style,r:style_to_design, pointed_collar,T-shirts>。
在构建图谱后,要想将图谱中的知识应用到各类下游任务中以提升下游任务的指标,往往需要对知识进行embediing(KGE, knowledge graph Embedding),但对本文抽取的常识知识来说,在embediing的过程中会遇到两个挑战:1)与传统的知识图谱相比,常识图谱非常稀疏;2)在电商的场景下,表示关系的常识又是特殊的。比如“subclass_of/is_a”这类关系的具有等级结构(类目层级),所以现存的KGE方法例如transE等利用欧式空间就很难灵活的embed树形结构的数据。再有,在具有类目约束的条件下,关系具有n元的特殊结构,现有的KGE方法都是基于三元组embed,针对4月组的embed还需要探索。
主要贡献
1. 在大规模电商concept网络AliCoCo的基础上 丰富了更多基于“常识”(commonsense)关系构成的“知识”,是第一个构建电商领域常识知识图谱(AliCoCo2)的工作;
2. 作者对AliCoCo2进行了编码,使用编码后的表示进行知识图谱补全的工作(KGC, knowledge graph completion),证明了稳重提到的知识图谱表示方法达到了SOTA;
3. 为了验证抽取到的常识知识的有效性,作者把AliCoCo2中的常识知识,利用在搜索引擎、推荐系统等电商核心算法真实场景,实验结果的指标均有提升;
4. 该工作也贡献了一个电商领域QA任务的benchmark,供研究者们参考使用。
定义AliCoCo2
AliCoCo2主要补充的是两个节点属于不同class之间的关系,比如<concept1:冬天,r:季节需要材质,concep2:加棉,constraint:牛仔裤>中concept1和concep2属于不同的class,共定义了91种关系,下图是AliCoCo2的一个局部
图中包含了n元的关系。,在embedding时,为了不破坏这种类目约束,可以采用增加新的concept节点和虚关系,但这会带来更多的节点和边,导致额外的储存和计算。
常识抽取
给定一个head concept,预先定义好的relation和类目约束,目标是抽取相应的tail concept,例如已知在衬衫类目下,给定head concept“商务风”,relation“设计风格”,希望得到tail concept “立领”。文中将这个问题转化成了QA问题,在文本中抽取答案的span。
例如对于“冬天 牛仔裤”这个例子,把它变成“什么材料的牛仔裤适合冬天”这样的问题,然后,从导购语“冬天来了,是时候准备温暖的棉毛衣,羊毛裤”中获得答案。将常识抽取的任务转化成QA的任务,有几个有点:1)在编码问题的时候,会把concept以及关系,约束,自然地融合在一起;2)更好的拓展了机器阅读理解(MRC,machine reading comprehension)任务;3)生成的自然语言问题是直接出现在众包中的,减少了直接标注常识关系的难度。
抽取的过程是迭代,半自动化的。1)从用户搜索购买行为和产品评论中收集QA对;2)通过众包标注QA对,产生种子数据集;3)从商家编辑的详情页中抽取相关的内容
在种子数据集构建完成后,可以搭建并训练一个MRC模型来预测更多常识关系,再加入数据集继续迭代训练过程。
QA收集过程
对每一对用户搜索query的购买行为数据,利用query中的concept作为head,使用对应的item 标题或者评论作为tail concept。然后利用传统的召回方法,例如tf-idf分数来计算正确性。利用一个很紧的阈值来保证候选pair的相关性比较低,以此修剪数据
内容抽取
在上述收集的QA数据对中,搜索大规模商家填写的产品描述,构成SquAD类似风格的数据集。在这个数据集中,从商品的标题匹配head concept ,答案就从商品的详情信息中匹配。对于每一个QA对,平均有87.4个候选答案内容被匹配,多的可以达到1000多个。再利用Jaccard相似度和预训练语言模型计算每个候选的相似度和困惑度,最终保留20个不相似的,质量最高的文本内容作为候选。最终选出了420K个不同的<question,contents,answer>作为种子标注数据集用于训练。
阅读理解任务的模型
MRC模型用的是BERT,对于AliCoCo中的每个head concept,通过标题匹配取回商品,并利用问题模版产生相应的question,然后通过训练MRC模型从详情页中自动抽取可能的答案(常识),最后将提取的候选QA对分发给众包标注,整个过程不断迭代。
电商常识图谱的表示
定义:电商常识图谱(ECKG,E-commerce Commonsense Knowledge Graph)是一个<E,R,I>组成的,其中E表示concept实体,R表示关系,I表示带约束的关系实例<e1,r,e2,c>.
图谱表示的目标就是将每个节点E,关系R映射到低维空间向量中去,且这个向量表示可以改善下游任务的性能。
用BERT这种大规模预训练语言模型解决之前提到的常识数据稀疏问题,增强文本特征,并利用图神经网络(GNN)学习图结构特征,来解决结构化数据的问题,并利用不同模型的多任务联合训练的方式解码不同类型的关系,如下图。
Encoding的具体细节
预训练模型:利用QA种子数据集finetune BERT,仅利用masked language modeling损失来编码cocept。在finetune时,先利用所有的cocept微调BERT,输入的数据格式是[cls]+e+[SEP],通过masked language modeling任务来实现。在使用时,利用最后一层的[CLS]编码来作为结点的语义信息表示。
图神经网络模型:用来图谱信息的结构,利用GAN(Graph Attention Networks)来整合一跳邻居的编码,其中是关系的权重,是代表了一阶邻居的重要度的attentin权重
通过多任务学习Decoding
decoding的过程设置了3个任务模型:层级树状机构;n元关系结构和普通的三元结构。分别利用不同模型建模这些结构,并使用多任务的方法联合训练。
普通的三元组就用常见的TransE模型,树形结构例如“is a”,“subclass_of”这类上下位的关系利用庞加莱embedding,这种方法使用了类似庞加莱球的双曲线空间表示层级结构,与欧式空间的主要区别在于距离的表示如下:
对于n元的关系结构<ei,r,ej,c>, 首先计算节点e与类目c的兼容性
其中ti和tc是通过BERT计算出来的语义embedding。一般情况下,head 或者 tail的cocept时一种类目属性,这个兼容度分数可以代表了节点e属于类目c的可能性。然后带约束的head和tail concept的表示可以计算为:
c1表示叶子类目c对应的一级类目,用一级类目代替叶子类目的原因时由于叶子类目比较多,参数矩阵计算量过大,一级类目与叶子类目的空间近似,所以可以用一级类目替代叶子类目。这样,head 和tail concept就被建模在被类目约束的空间下了。这种方法可以适用于任何二进制的decoder
联合训练
encoding阶段是对每个任务共享的,但在decoding阶段,不同的任务有不同的解码阶段和得分函数,把每一个模型当作单独的任务训练,在每一个训练epoch中,随机选择一个任务中的采样batch进行训练,重复这个过程直到每个任务收敛。
应用
query 重写
用于扩大搜索场景下的召回。召回目前存在的问题是在用户的query和商品之间存在的语义gap。比如用户的query可以表达成“冬季牛仔裤”,但“冬季”很难出现在商品的描述中,通常会出现“羊绒”、“棉花”、“保暖”等字眼。使用AliCoCo2中的关系就可以直接改写query,扩大商品的召回。
搜索相关性
主要解决搜索引擎中用户quey和document之间词之间的gap,可以用上文中concept的embedding来提升相关性模型的性能。
Query和title中出现concept的拼接到BERT模型中的embediing,不是concept的不用用[UNK]代替。
推荐系统
embedding通常用于推荐系统的match阶段。通过图embedding计算得到触发商品的相似商品用于推荐。在利用GE(Graph Embedding)模型训练商品embedding时,如果加上边的信息(类目,属性),相似度计算时会有提升,因为有相似边的商品在embedding空间中会更相近。可以将图谱中边的信息额外整合到GE模型中去,来学习更好的商品embeeding。图谱中节点的embedding可以拉近相关但属性不完全一致的商品的向量距离,所以初始化每个商品embedding的边的时候(类目,属性)可以更换成AliCoCo2中的embedding。
实验评估
感兴趣的同学可以去看看,这里不再贴出来了。