Press "Enter" to skip to content

[NLP]一种电商域知识图谱的构建方法

一般认为,通用(百科)领域的图谱核心问题在结构化,因为非结构化信息的比重较大;特定域内的图谱核心问题在标准化,因为在特定域内形成的业务规则标准化程度已经较高,图谱的构建是拉进业务标准和技术标准的距离。当然,结构化意味着标准化,区别在于孰轻孰重?

 

回顾知识图谱相关的问题,如下:

 

层级内容
模型层实体抽取,实体链接,关系抽取,事件抽取,知识融合(多源异构),知识补全,知识去噪,知识表示和知识推理
应用层搜索(知识卡片),推荐(可解释/推理式,上下位关联/组合属性关联),问答
关键问题样本不均衡,新领域样本少,推理技术
关键技术领域迁移,众包去噪,标注工作
通用性问题给定知识候选集(结构化/非结构化/多模态),如何快速且规模化的构建一个特定域的知识图谱?
应用场景阿里云官方给出的范例:欺诈检测场景,知识图谱场景,网络运维场景,推荐场景,社交应用场景。王在 知识图谱应用案例 中整理了更多的应用场景。此外,有刘 基于京东商品搭建的知识图谱相关文档KDD Cup2020: The 1st AutoGraph Challenge ,是AutoML在图上的尝试,基于节点分类的任务,挑战自动化图表示学习的能力边界。

 

这篇博客围绕CIKM2020的文章《AliMe KG: Domain Knowledge Graph Construction and Application in E-commerce》,讨论电商域的知识图谱构建,实际上也是博主目前正在做的工作。从整体上看,工作分为两个方面:节点挖掘和链接预测。节点挖掘分为三个部分:Problem,POI, CPV&IPV三个方面,通过链接预测建立三种节点之间的关系。在开始分模块梳理之前,先看一个具体的例子,如下:

 

 

(1)Problem

 

Problem挖掘的流程如下:

 

(1)标注数据准备。基于售前对话数据,通过启发式规则和短语挖掘技术挖掘“问题短语”

 

(2)数据标注

 

(3)训练二分类模型。在AliMe中,是利用BERT做二分类模型的,具体输入为:[CLS]候选短语[SEP]原始句子[SEP]。

 

通过序列标注的方式来做,也是可以的。这种方式的问题在于任务分为两个阶段,有误差累积的问题;同时在inference的时候,inference的时间复杂度正比于候选短语的个数,为O(N);而前者的时间复杂度为O(1)。

 

这里的一个技术点是短语挖掘,相关技术方案很多,可以参考韩家炜组的系列工作。这里关注文章中的短语挖掘方法。整个流程的输入是待抽取短语的原始语料和日常积累的100万级的词库,输出是原始语料中的高质量短语集。整体流程如下:

 

 

该模块的难点在于:Problem的定义和候选数据的准备。在AliMe KG中,共有1K+的Problem,在质量控制环节,需要全部通过人工检查。(如果有业务专家定义,应该就不需要上述过程了。Problem的稀疏性带来了一定的实现难度。)文章中对Problem的定义如下:

 

a phrase as a user problem if it describes a problematic state that users want to find out solutions for (e.g., “pimple 长痘痘”)

 

(2)POI(Point of Interest)

 

POI和Problem类似,文章中对POI的定义如下:

 

as a user POI if it reveals user interests or potential needs (e.g, “anti-acne 清痘抑痘”)

 

具体例子有:

 

服装行业的亲肤,美妆行业的清痘抑痘和餐具行业的安全无毒等。

 

从整体上看,POI的挖掘和Problem的挖掘在技术思路上类似(不再赘述),不过Problem的挖掘在AliMe KG的工作中是基于对话数据的,而POI的挖掘是基于商品详情页数据。从文章中给到的数据来看,POI的规模在365K+,远远多于Problem的量级。

 

(3)CPV(Category-Property-Value)&IPV(Item-Property-Value)

 

一般而言,C/I的结构化程度较高,可以直接利用关系型数据库中的数据,但是在该模块要关心的主要问题是:属性值缺失的问题。

 

怎幺填充缺失的属性值?(1)针对可枚举的属性值,利用IPV挖掘的方式填充。IPV挖掘主要是基于售前对话数据,通过对关于Item的QA对做NER,抽取属性值。(2)针对不可枚举的属性值,缺就缺吧。当然,要满足该属性缺失的频率高于一定阈值。

 

具体流程图如下:

 

 

在业务侧需要关注商品的属性维度,梳理如下:

 

字段名称类型描述
名字string商品名字存在部分缺失的属性值,可以通过模型的方式抽取,见OpenTag相关工作
分类string商品四级分类体系,展开为四个字段
价格string具体属性中同样字段,可能存在冲突
颜色string具体属性中同样字段,可能存在冲突
品牌string具体属性中同样字段,可能存在冲突
链接string具体属性中同样字段,可能存在冲突
具体属性string关于商品的具体描述信息

 

(4)POI Relational Knowledge Mining

 

该模块在技术上主要是一个神经关系抽取模型,建立CPV&IPV和POI之间的关系,那幺Problem和POI之间的关系是如何建立的呢?该模块的一个具体例子如下:

 

 

(⊙o⊙)…,终于梳理完了第一遍,看一下整体的技术框架:

 

 

上文所有的东西的核心出发点都是本体设计,因为一点儿哲学的意味,因此自己给自己做的事情命名为苏格拉底,另外一个原因是因为在Eigen的时候,我们的知识图谱项目也是同样的名字,总觉得屌屌的。如下:

 

 

总结一下,AliMe KG需要的基础NLP技术包括:Phrase Mining,NER, Relation Extraction,同样在质检环节需要大量人力的参与。在应用层面,包括导购,KBQA,推荐理由生成等。

 

有观点认为,下一代知识图谱是事理图谱,在 作为下一代知识图谱,事理图谱有哪些创业投资机会? 中,有对事理图谱的基本判断。知识图谱回答谁,什幺时间,在哪里,干了啥等静态问题,事理图谱回答为啥,怎样做的等动态问题。 哈工大金融事理图谱学迹 都是比较有意思的产品,后者孵化自 Magi ,Magi同样是优秀的想法实现。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注