远程监督是借助外部知识库为数据提供标签,从而省去人工标注的麻烦。
提出
2009年Mintz等人提出远程监督方法。其中提出一个重要的假设:
If two entities have a relationship in a known knowledge base, then all sentences that mention these two entities will express that relationship in some way.
(两个实体如果在知识库中存在某种关系,则包含该两个实体的非结构化句子均能表示出这种关系。)
从理论上看,这简化了关系抽取的工作,但从现实角度来讲,其标签的准确度也大大降低。
例如:在外部知识库中有:总统【美国,特朗普】
对于,“特朗普是美国总统”是完全正确,但对于“特朗普在美国出生”就是不准确的。
EALO假设
2010年Riedel在此基础上进行改进,提出EALO(Expressed-at-least-one)假设:
如果知识库中存在某个实体对的某种关系,那么至少有一个提到此对实体的数据表达此种关系。
这个假设更贴近实际,但同时也使得抽取工作变得复杂。
为了区分关系与噪声,Riedel引入另一个技术:多示例学习
多示例学习是一种监督学习模式,虽然没有办法为每个数据样本打标签,但可以对具有某种特征的数据样本集合打标签,这样的样本集合称为 袋 。
即在多示例学习中,每个 袋 有标签,而每个 袋 中含有多个数据样本,每个样本即为一个示例。
CNN
2014年Zeng将CNN引入关系抽取中,也将PE(position encoding)引入。并在2015年提出PCNN,PCNN是对CNN在关系抽取任务上的改进。
输入
:
一个句子: Steve Jobs was the co-founder of Apple Inc which is a great company in America.
两个entities: Steve Jobs 和 Apple Inc。
区别:
CNN:max-pooling层直接对整个句子进行操作
PCNN:首先划分为三部分:
As we known,Steve Jobs
Steve Jobs was the co-founder of Apple Inc
Apple Inc which is a great company in America.
对这三段分别进行max-pooling操作
作者对目标函数进行了优化,不再使用整个bag作为更新依据,因为每个bag中都是有噪声的,而且很多bag中的噪声示例远远多于正确示例。而是在训练过程中,对依据softmax对每个bag中的示例进行条件概率评估,即每个示例能正确预测出bag标签的概率。然后只选择其中概率最大的示例作为参数更新依据。这个方式的好处是很大程度上遏制噪声对模型参数的影响。PCNN一经提出,PCNN的分切max-pooling思想就成为后续关系抽取模型的基本要素之一,对关系抽取的意义重大。
Attention机制
2016年Lin等人将attention 机制引入关系抽取中,attention机制在自然语言处理中已然成为基本模块。Lin引入attention 机制是对噪声数据进行建模。
多示例多标签CNN
不是对bag中所有的示例进行attention操作,而是采取cross-sentence max-pooling的方式
转移概率矩阵
2017年Luo等人提出另一个角度来解决远程监督的噪声问题。
首先,每个示例经过PCNN或CNN的特征提取器
强化学习
2018年引入强化学习,将每个bag作为一个episode, 将关系作为action,将sentence作为state, reward则是命中正确关系与否,命中为1,反之为0,最终每个bag的reward为其内所示例的reward之和
动态选择策略
2018年基于强化学习提出一个新去噪方式:动态选择策略,即对每个示例进行判断其是否是正例,如果是,将其保留,否则将其放入负例的bag中。
参考资料:
信息抽取——关系抽取
博客:远程监督
知识图谱关系抽取之PCNN——tensorflow实现
关系抽取之远程监督算法