放牧代码和思想
专注自然语言处理、机器学习算法
    博主不用扣扣,公事请博客留言,私事请微博私信。开源项目一律GitHub见,发错地方恕不回复,谢谢。

“原子”因果常识图谱

目录

AAAI19的论文(Sap et al. (2019))开源了一个包含87万条推理常识的知识图谱ATOMIC。相较于常见的基于本体论分类条目的知识图谱,该知识库专注于“如果…那么…”关系的知识。作者提出了9种类型的因果联系来区分原因-效果、主体-主题、自愿-非自愿、行动-心理状态。通过生成式训练,作者发现神经网络模型可以从该图谱中获取简单的常识推理能力。另外,该团队在ACL19上的论文COMET则利用了该图谱训练GPT模型,该GPT模型又反过来生成了许多全新的且合理的知识,达到了图谱补全的效果。

ATOMIC 常识图谱

动机

人类可以在观察事件的一个小片段后,轻松地推理出事件的前因后果,甚至将几个事件以因果而串联起来。比如,事件“X防御了Y的攻击”,我们能够马上推理出X的动机是“保护自己”、X这么做的先决条件是接受了一定的防身技巧、X可能的特点是强壮勇敢。事件的结果可能是:X会感觉生气并报警,而Y可能会觉得害怕并想要逃走。这个例子在ATOMIC知识图谱中表现为如下形式:

hankcs.com 2019-11-17 at 6.23.19 PM.png

正是由于人类具备常识推理的能力,才能通过一部2个小时的电影理解一个长达几个月的故事。而这种能力对于当代的AI系统而言则是欠缺的,因为这些系统是在任务驱动的数据集上训练的,没怎么接触过常识。所以作者提出了ATOMIC常识图谱,目标是做到大规模、高覆盖和高质量。

架构

ATOMIC常识图谱的架构由3大类型的关系、9个关系和877K的(事件,关系,事件)三元组构成。其中关系的3种类型为:

  1. 事件导致心理状态

    1. X intent:X为什么想发起这次事件

    2. X reaction:X在此次事件之后的感受

    3. Other reaction:其他人在这次事件之后的感受

  2. 事件导致事件

    1. X need:X需要干什么才能导致这次事件

    2. Effect on X:这次事件对X的影响

    3. X want:X在这次事件之后想干什么

    4. Other want:其他人在这次事件之后想干什么

    5. Effect on other:这次事件对其他人的影响

  3. 事件导致表象人格(事件发生后别人是如何看待该主体的,比如X报警则别人会认为X是一个负责懂法的人)

    1. X attribute:别人会如何看待X

一共$3+5+1=9$个关系。这个架构也可以通过另一种层级结构来描述:

hankcs.com 2019-11-17 at 6.47.42 PM.png

这种层级结构主要关注原因、效果和状态。每个分类又可以根据推理发生在主体(自己)还是主题(他人)继续划分。

数据标注

作者从多种语料中提取了24K常见的事件,这些语料包括故事、书籍、Google N元语法和谚语。事件定义为由动词谓语和谓语的宾语构成的动词短语,比如“在早晨喝黑咖啡”。如果谓语和宾语的贡献频率不高,则将宾语替换为下划线占位符,比如“在早晨喝___”。为了提高通用性,表示人的单词替换为Person泛化符,未来也可以加入更多泛化符,比如CityX之类。在泛化人名时,要求3名标注员执行指代消解任务,内部一致率需高于$\frac{2}{3}$。

标注的过程是非常自由的,标注员可以填写任何合理的短语,如下图所示。

hankcs.com 2019-11-17 at 6.58.17 PM.png

值得一提的是,作者给标注员开的时新是12美金,高于联邦规定的8美金。可能这样能激励标注员用心标注高质量的数据吧。一个人996的话一天干12小时,一周干6天,一个月可以拿$12\times6\times4\times12=3456$美金,折合人民币24221元。成本还是很高的,有没有想转行做标注员?

hankcs.com 2019-11-17 at 7.04.21 PM.png

标注完成后的知识库一共含有300K个节点,24K个事件。三元组和节点的统计信息如下表所示:

hankcs.com 2019-11-17 at 7.09.22 PM.png

标注结果的内部一致率是,这钱花的值。

ATOMICquality.png

下载

其中的一个样本如下,可以在华盛顿大学官网上获取:

hankcs.com 2019-11-17 at 7.28.34 PM.png

数据格式为:

event oReact xIntent xNeed xReact xWant prefix(主干) split
PersonX thanks ___ for PersonY’s assistance [“proud”] [“to be respectful”] [] [“grateful”] [] [“thanks”, “assistance”] trn
PersonX dances with PersonY’s friends [] [] [“to call them”, “to invite them”] [] [“to have dinner”, “to enjoy the party”] [“dances”, “friends”] trn

自动生成

作为一个语料paper的余兴节目,作者还尝试了自动生成该知识图谱。也就是拿出来训练一个seq2seq生成式模型,去测试集上生成9个关系,用BLEU或人工判断生成的效果如何。由于这些关系有层级机构,所以衍生出在同一个大类中复用同一个encoder,针对小类采用不同的decoder的各种模型变种。试验结果如下:

hankcs.com 2019-11-17 at 7.25.05 PM.png

从人工评测结果来看,大部分关系的准确率都在左右,看来只能算作一个baseline,还需要更高级的模型。

该小组于是在ACL19上提出所谓的“彗星”( COMET)自动知识图谱构建模型,其实原理也很简单,留作下次再说。

References

Maarten Sap, Ronan Le Bras, Emily Allaway, Chandra Bhagavatula, Nicholas Lourie, Hannah Rashkin, Brendan Roof, Noah A Smith, and Yejin Choi. 2019. Atomic: An atlas of machine commonsense for if-then reasoning. In Proceedings of the aaai conference on artificial intelligence, volume 33, pages 3027–3035.

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » “原子”因果常识图谱

分享到:更多 ()

我的作品

HanLP自然语言处理包《自然语言处理入门》