大數據

机器具备认知能力的“神”操作!

背景

概念是人类认知从具体进入抽象的第一步,也是人类认知世界的基石。有学者认为,概念是人脑对客观事物的本质反映,是思维活动的结果和产物,是思维活动借以开展的基本单元。例如“昆虫”概念让人们理解形形色色的昆虫,把握其共性本质,而不用纠缠不同昆虫的微小差异。建立概念的分类体系,为数以亿计的事物构建认知概念图谱,是人类在让机器具备认知能力的征程中所迈出的非常重要的一步。

具体地说,在搜索业务中,对搜索query和文档进行概念化,是理解用户需求和意图的基石。当用户在搜索框中输入查询词后,将查询词中的关键成分进行解析并打上概念标签,可以有效指导搜索引擎进行有效的意图识别和召回。举个例子,在一个搜索场景,我们在搜索框中输入:

肠胃感冒可以吃榴莲吗?

一般可以使用文本匹配技术对query与文档进行相似度计算,基于海量的文档数据库进行召回。通常的检索步骤是先对query进行分词 ,也就是:

肠胃感冒/可以/吃榴莲/吗?

去除停用词,并根据词性等特征信息调整term相应的权重。而对于数据库里的文章等内容,需要先做倒排索引,再根据 BM25等相关性算法对分词的词做文档的召回 ,并基于各种LTR算法进行排序。大多数检索系统都是基于关键词或文本特征做的,也就是说文章的内容中一定要出现“肠胃感冒” 、“吃榴莲”等词。同时,query的语义也会随着停用词的去除而缺失,“肠胃感冒”和“吃榴莲”变成统计独立的概念。然而我们通常是这样理解上述query的:

肠胃感冒–> 患肠胃疾病

吃榴莲–>吃热带的水果

整句话理解起来的意思就是“患肠胃疾病的人可以吃热带水果榴莲吗”,而且我们可以很自然地进行相应的推理,这个query比较合适的结果是召回 “患肠胃疾病的饮食禁忌” 等相关文章。在自然语言处理领域,基于海量语料学习的技术可以从大量文本进行建模,工程实现也相对容易,且在头部场景中取得较好的效果,但是也存在出诸多问题,比如学习出的模型缺乏足够的长尾场景泛化能力;缺乏体系化的组织;缺乏可解释性等;为了应对这些挑战,并更好的理解文本,我们引入了结构化的知识。不同于纯文本,概念知识易于组织和结构化,对文本理解非常有帮助。

什么是认知概念

从亚里士多德时代开始,人类就通过分类结构(Taxonomy)来组织和表示概念。随后的几千年来,人类一直在不断完善概念的分类体系,并出现了诸如Cyc,WordNet,Hownet等专家手工构建的知识库。这些概知识库质量虽然相对较高,但是构建代价非常高昂,且规模有限。在搜索场景中,认知概念指的是用户提及的短语或实体所代表的抽象描述。

面临的挑战

构建认知概念图谱具有以下几个挑战:

  • 同一个实例具有成百上千的概念,其中存在大量冗余的概念标签,如“歌曲”和“歌”,因而需要进行概念融合。
  • 同一个实例不同的概念标签具有不同的置信度,如阿里巴巴的概念"公司"和"角色", 因而需要进行先验置信度计算。
  • 对于大量长尾的专业领域词汇和实体,概念挖掘相当困难。
  • 对于一些非实体短语如“肚子疼”(概念为症状),需要专门的自动化挖掘算法。
  • 对于挖掘出的海量概念和实例如何构建上下位层次结构是一个严峻挑战。
  • 存在非主义的实例如“希望”、“理想”等干扰项,因而需要概念校验。

体系介绍

历时多月的研发,基于神马搜索知识图谱、神马搜索知识图谱实体库,我们建设了一个认知概念图谱,从搜索用户需求出发,链接外部常识和领域知识的语义网络,为搜索领域的用户认知、知识认知、内容认知提供统一的数据,助力搜索推荐从基于行为数据的方式迈向知识驱动的认知智能时代。

概念图谱中包含丰富的概念实例(包括实体如“刘德华”和非实体如“我们”)、各种粒度的概念(比如“演员”、“圈中粉红系男孩”),实体与概念之间的类属关系(比如 “刘德华 isA 演员”),概念与概念之间的 subclass of 关系(比如 “电影演员”是“演员”的子类)。通常这些关系统称为 isA 关系。我们的认知概念图谱大图如下:

image.png

  • level1: 领域认知节点,表达底层节点所属的领域。
  • level2: 具体的认知概念,表达底层节点所属抽象概念。
  • level3:细粒度用户认知概念,表达用户需求的最重要的语义节点。
  • 实例层:概念的实例,如概念的mention短语。

特点和优势

  • 动态化:每一个概念实例的每一层都包含了丰富的概念候选,每一个候选都包含动态的分布权重,例如:周杰伦 level2概念:艺人 :0.58 歌手:0.26 演员:0.13 ,每个分数均根据搜索用户query分布生成。
  • 自动化:除高层概念挂载和效果评估,认知概念图谱构建高度自动化, 概念天级更新。
  • 粒度细:大多数实例包含细粒度的用户认知的概念,如周杰伦level3概念: 圈中粉红系男孩 娱乐圈港台明星。
  • 覆盖广:认知概念图谱包含了通用域的绝大多数领域如人物、医疗、历史、汽车、音乐等。
  1. 算法框架

算法框架主要包含数据构建和算法服务两大块。整体算法框架如下:

image.png

数据构建流程

认知概念图谱的数据构建流程分为概念挖掘与融合、概念置信度计算、层次构建和概念验证等几个步骤。在数据导入认知概念图谱后,可以基于认知概念图谱进行推理挖掘出新的上下位关系,从而实现增量可持续构建流程,还可以基于消歧回流入知识图谱,丰富知识图谱的数据信息,从而形成数据闭环。下面将对流程中的每一个模块进行详细的讲解。

image.png

领域概念挖掘

对于常规的实体数据,我们可以通过实体属性、实体百科标签以及基于规则从实体描述中抽取实体的概念标签,然而对于领域实体数据,由于其存在长尾的特点,大多数专业名词或术语存在属性缺失、实体缺失等挑战,因此需要设计专门的领域概念挖掘流程。

我们首先基于领域专业文本数据基于skipgram训练词向量模型。然后人工选择一批种子词,并将词典排除掉单字词后进行聚类。具体地说,基于词与词之间相似的传递性,即 A 和 B 相似,B 和 C也相似,那么 A、B、C 就聚为一类。聚类过程中需要对相似性进行限制,比如 A 是种子词,B、C 都不是种子词,A、B 的相似度为 0.7 就定义它为相似,B、C 的相似度要大于 0.9 才能认为它们相似。由于纯无监督算法的不可控和噪音等问题,我们对产生的领域词基于规则进行过滤。我们基于无监督聚类挖掘,对长尾领域挖掘出约1w+领域词汇。

短语概念挖掘

搜索query中存在大量短语,其中不少短语缺乏知识图谱中对应的实体,然而这类短语对于query理解起着至关重要的作用,因此我们对query中短语进行了无监督挖掘,并训练分类模型对短语进行概念打标。

首先我们对query进行分类后去停用词,然后会发现一些靠谱的词汇比方说“肚子疼,月经不准,制冷的原理,吃榴莲,一直发烧”等,然而通过数据分析发现存在两个问题:

  • 很难挖掘出低频短语;
  • 人工给定阈值无法过滤掉数据中的噪音。

我们基于频繁模式挖掘和统计的短语挖掘方法TopMine对无监督的对语料进行段与挖掘。整个挖掘主要分为两个步骤,第一步根据Phrase Mining抽取的结果对文本进行分割,第二步根据分割后的文本约束Topic模型。在短语挖掘中,根据上下文信息衡量合并后的score,来判断是否对token进行合并。基于挖掘出的短语,我们对特定概念训练概念二分类模型,并基于模型从新query短语中挖掘概念实例。训练的正样本由认知概念图谱原有的概念实例join短语组成,训练负样本由短语随机采样组成。

概念融合

由于同一实例的概念标签来自不同的数据源,会存在冗余的情况。因此需要对概念进行融合。对于level2层概念,我们基于同义词表进行概念融合。对于level3层概念,我们基于字粒度和词粒度的词向量计算概念之间相似度,收集阈值小于1e-3的概念,人工审核后进行概念融合。

概念置信度

首先对于来自知识图谱的概念实例,我们基于实体本身的热度进行了先验置信度计算,计算公式如下:

image.png

经过归一化后得到实体粒度的置信度。

其次,我们基于query的分类和推荐标签对实体/短语进行聚类操作,选择一个月的query-tag pair对相同tag的query次数进行求和(也就是计算一个概念出现的query次数有多少),经过归一化后得到基于query粒度的概念置信度。

最后我们对两个不同粒度的置信度进行融合。在概念分布融合过程中,会去掉去"停用词”、"日常用语"等概念,以免引入不必要的噪声,同时对领域词和特定类型的概念进行重加权,主要目的是这类实例的概念不存在歧义性,如“泡利不相容” isA "化学术语" ,"刘德华" isA "人物"。

层次建设

得到概念实例和概念候选之后,我们基于两种方式对概念进行层次挂载。首先,对于level2和level1的概念,我们基于神马信息流主题、腾讯概念图谱主题和人工规则构造了两层概念之间的映射表,基于此映射表对概念进行层次挂载。其次,对于level3概念,我们基于query分类和少量规则进行挂载。给定一个level3概念和level2概念,存在 个实例属其中有个实例属于通过计算以下公式:

image.png

我们取image.png大于0.3的概念进行挂载。

概念校验

在概念图谱构建的过程中,不可避免会引入一定的噪音,导致引入被错误标注的概念,我们使用融合规则和树模型的概念校验算法,基于规则和gbdt对不是概念的实例进行过滤。简单规则如:过滤掉同时有"文字词汇"、"词汇"等概念且置信度最高而不包含任何其他概念的实例 ,gbdt特征包括实例长度、概念置信度、是否包含文字词汇概念、是否为动词(不考虑歧义)、是否为形容词, 最终过滤掉约50w非主义概念。由于query的复杂性,实体的歧义性和图谱的异构性,仍有少量非主义概念实例较难被挖掘,概念校验是一个长期的工作。

服务算法

基于词典匹配和ner边界校验的序列tagging算法

基于认知概念图谱实例和level3、level2层概念构建词典,重要领域的词经过了规则清洗和人工审核。根据学界研究,中文90%以上的句子使用正向或逆向最大匹配算法完全重合且正确,所以在字典匹配正确的情况下,能解决大部分头部问题。目前采用Trie树+双向最大匹配算法,匹配结果经过ner序列识别服务做边界检测,去除匹配错误的少数case。

基于Bert的entity typing消歧算法

此算法主要针对少数概念存在歧义的情况(由于概念万级别,无法对所有类型概念进行消歧),如”歌手李娜“、“演员李娜”。输入为实例和包含实例的query上下文,输出消歧后的概念分布。

基于大搜约一亿语料训练的bert模型,在预训练过程中去掉预测下一句的loss,同时使用ner粒度切词,并基于sampled_softmax_loss采样加速训练。然后fix bert参数,抽取query中实体mention的bert embdding训练基于mlp的二分类模型。在预测阶段,对于oov词,采用上下文预测的embedding 作为mention 的embedding。

平台介绍

数据展示窗口:
https://concept.proxy.taobao.org

目前, 提供以下几种方式访问:

  • 页面直接访问。
  • API接口访问。
  • odps表访问。
  • Pangu数据dump。

目前数据还在不断完善中,如遇到问题欢迎反馈给我们。

应用

意图识别

用户搜索“宋江”,我们通过它的概念“不招人喜欢的梁山好汉”、“虚拟人物”可以理解用户是在搜索小说名著中的角色。对于用户搜索意图的精准理解可以进一步帮助改进检索、排序与推荐。

image.png

基于概念和模版匹配的意图识别和问答触发

对query进行抽取概念,基于互信息挖掘概念意图模版,应用于问答触发和意图识别。问答触发业务已上线。

基于概念融合的短文本分类模型(STCKA)

输入搜索query,和query中包含的概念,通过query与概念间的attention和概念内部的self-attention对概念做选择,生成概念向量表示,再结合query的向量表示构建判别模型。

实体推荐

当用户先后搜索复旦大学、上海交通大学,上海理工大学时,我们人类可以自然地推断用户是在搜索上海高校。机器通过检索认知概念图谱,发现这三个实体共同拥有上海市高等院校这个概念,从而也可以准确识别用户的搜索意图,进一步推荐上海外国语大学,同济大学等高校,并给出用户是在搜索上海高校这一解释。

image.png

规划和感想

目前认知概念图谱的构建还在不断完善中,未来计划:

  • 知识赋能: 应用认知概念图谱到更多业务场景。
  • 理解用户:从搜索query中挖掘更细粒度的用户需求的概念。
  • 内容理解:挖掘内容和概念的关联,更好的理解文本。
  • 知识理解:大规模增加认知概念知识的丰富。
  • 智能推理: 大规模增加认知概念关系的丰富,自动化构建层次关系。

image.png

原文链接:https://mp.weixin.qq.com/s/9jJAsH6lzOd3zWCT8OcIug

参考文献

[1]认知智能基础https://www.atatech.org/articles/136437

[2]A User-Centered Concept Mining System for Query and Document Understanding at Tencent KDD201

[3]Concept-based Short Text Classification and Ranking Categories and Subject Descriptors CIKM2014

[4]Query understanding through knowledge-based conceptualization IJCAI2015

[5]Deep Short Text Classification with Knowledge Powered Attention AAAI2019

[6]Inferring Concept Hierarchies from Text Corpora via Hyperbolic Embeddings ACL2019

[7]Combining Knowledge with Deep Convolutional Neural Networks for Short Text Classification IJCAI2017

[8]COMET: Commonsense Transformers for Automatic Knowledge Graph Construction ACL2019

[9]Entity suggestion with conceptual explanation IJCAI2017

[10]Matching Article Pairs with Graphical Decomposition and Convolutions ACL2019

Leave a Reply

Your email address will not be published. Required fields are marked *