知识图谱—关系抽取—远程监督—OpenNRE(⼀)
⼀、远程监督简介gonzaga
远程监督的英⽂名称Distant Supervision,是⽬前关系抽取中⽐较常见的⼀类做法。该⽅法由 M Mintz ⼤佬于ACL2009上⾸次提出,它既不是单纯的传统意义上的监督语料,当然也不是⽆监督。它是⼀种⽤KB去对齐朴素⽂本的标注⽅法(Distant supervision for relation extraction without labeled data )。
prospecting
KB中已经存在实体-关系-实体的三元组,只需要把这三元组付给朴素⽂本中相应的句⼦就可以了。这时候z⼤佬就提出了⼀个⾮常⼤的假设:如果⼀个句⼦中含有⼀个关系涉及的实体对,那这个句⼦就是描述的这个关系。也就是说,报纸⾥所有含有中国和北京的句⼦,全都假设说的是北京是中国的⾸都。然后把这些句⼦全都提取出来作为⾸都这个关系的训练语料,直接批量打个标签,实体识别和标注⼀举两得。然后把⼀个关系对应的所有句⼦打个包,称作⼀个bag,⼲脆⼀个bag⼀个标签。这就是后来⼜有的⼯作,被叫做多⽰例学习。
上述⽅法有很多不严谨的地⽅,例如乔布斯是苹果的创始⼈,和乔布斯吃了⼀个苹果,表达的完全不是⼀个关系。这就说明远程监督的数据⾥存在⼤量的噪声,我们把真正含有指定关系的句⼦叫做real instance ,实际上不含任何关系的句⼦叫NA,其余的就都是反例。这个噪声问题被叫做wrong label 问题。这是远程监督⽅法第⼀个需要解决的⼤问题。
⼆、远程监督优化
下⾯主要介绍三种远程监督的优化⽅法:
1、dynamic-transition matrix(动态转移矩阵),它能很好的拟合由 distant supervision 所带来的噪声。通过该矩阵,我们能够⼤⼤提⾼ relation extraction 的效果。ethanol
2、rule learning(规则学习),通过定义规则,定义否定模式(negative pattern)过滤掉⼀些噪⾳数据,可以很⼤程度提⾼性能。缺点是规则依赖⼈⼯定义,通⽤性差,但是⽅法本⾝简单有效。
3、清华刘知远团队的NER,利⽤了包含实体对的所有的句⼦信息,提出了attention机制,去解决远程监督的wrong label的问题。
三、dynamic-transition matrix(动态转移矩阵)
melt本⽂中,作者使⽤⼀种对噪⾳数据显式建模(拟合噪⾳)的⽅法。尽管噪⾳数据是不可避免的,但是⽤⼀种统⼀的框架对噪⾳数据模式进⾏描述是可能的。作者的出发点是,远程监督数据集中通常会有对噪⾳模式有⽤的线索。⽐如说,⼀个⼈的⼯作地点和出⽣地点很有可能是同⼀个地点,这种情形下远程监督数据集就很有可能把born-in和work-in这两个关系标签打错。本⽂使⽤的⽅法是,对于每⼀个训练样本,对应⼀个动态⽣成的跃迁矩阵(transition matrix)。这个矩阵的作⽤是:
1. 对标签出错的概率进⾏描述
2. 标⽰噪⾳模式
模型如图所⽰,1,2跟以前的⽅法⼀致:对⼀个句⼦encode, 然后分类,得到⼀个句⼦的关系distribution。同时,3为模型动态地产⽣⼀个transition matrix T, ⽤来描述噪⾳模式。4就是将2,3的结果相乘,得到最终结果。
换句话说,在训练阶段,使⽤4的输出结果,作为加噪输出和标签匹配,也就是training loss使⽤的是4的输出结果和训练数据的标签进⾏计算。
Global transition matrix 在关系层⾯上定义⼀个特定的转移矩阵,⽐如:
属于 A 关系的句⼦,被误判为 B 关系的概率是恒定的。Dynamic transition matrix 是在句⼦层⾯上定义的,即使同属于 A 关系,a1句⼦和 b1 句⼦被误判成 B 关系的概率也不同。⽐如下⾯两句话,带有 old hou 的被误判成 born-in 的概率更⼤。
动态转移矩阵更有优势,粒度更细。
PS:
时间实体粒度越细,数据越可靠。例如:你这个笨蛋
如果⼀句话Alphabet含有October-2-2015则很有可能描述了inception-time of(创⽴)这种关系。如果⼀句话含有Alphabet和2015,那么描述的关系可能性就会变多,例如发布财报,聘⽤新的CEO等等。利⽤这种启发式想法,本⽂将该数据集根据时间详细粒度分为三部分,分别代表三个不同可靠性的数据集。
分数据集的⽅式是:带有年⽉⽇,带有年⽉,带有年,以及其他时间(Wikidata中没有的三元组)的样本作为负样本。
、
接电话英文
四、rule learning(规则学习)
在关系提取⽅⾯,远程监督试图通过使⽤知识库(如Freeba)作为监督来源,从⽂本中提取实体之间的关系。当⼀个句⼦和⼀个知识库引⽤同⼀个实体对时,这种⽅法试图⽤知识库中的对应关系来启
木偶战记发式地标注句⼦。 然⽽,这种启发式可能会导致⼀些句⼦被错误地标记。 这种嘈杂的标记数据导致较差的抽取性能。在本⽂中,我们提出了⼀种减少错误标签数量的⽅法。 我们提出了⼀个新的⽣成模型,直接模拟远程监督的启发式标签过程。 该模型通过其隐藏变量来预测分配的标签是正确的还是错误的。在实验中,我们也发现错误的标签减少提⾼了关系抽取的性能。
NegPat(r)即为事先定义的对于r的否定模式(negative pattern)。在我们的⽅法中,我们按如下所⽰去除错误标签:
(i)给定⼀个已标注的语料库,我们⾸先验证其中的模式是否表达⼀种relationpep小学英语四年级下册
(ii)使⽤否定模式列表(NegPat)去除错误的标签, 即该模式被定义为不表⽰relation的模式。
第⼀步,我们引⼊新的⽣成模型,直接模拟DS的标注过程并进⾏预测。 第⼆步在算法1中描述,见上图。对于关系提取,我们使⽤上述得到的标注数据来训练分类器(给定实体对,该分类器预测所属关系)。
PS:
mba考试科目现阶段该⽅式应⽤较多,对于单⼀关系的抽取,考虑成本问题,建议采取该⽅式。
五、thunlp-NRE
1. 把⼀句话中的每⼀个字,⽤word2vec中的向量表⽰出来;把每个字距离2个实体的距离作为位置信息加⼊到刚刚的向量的末尾2位
上。这样,每个字都有⼀个短向量表⽰;
2. 对上⾯的短向量进⾏Convolution, Max-pooling and Non-linear Layers的操作,⽣成最后的整个句⼦的表⽰。 这个过程相当于提
取每个句⼦的特征。
3. 对包含某对实体对的所有句⼦,采⽤attention机制进⾏选择,将最能表达这种关系的句⼦们挑选出来。
论⽂贡献如下:
(1)与以往的神经⽹络关系抽取模型相⽐,本⽂利⽤了包含实体对的所有的句⼦信息。
(2)提出了attention机制,去解决远程监督的wrong label的问题。
(3)attention机制对于2中关系抽取的神经⽹络模型都是管⽤的:CNN, PCNN。
PS:
为什么有RNN、LSTM还⽤CNN处理NLP任务:
CNN就是⼀个超级N-Gram,⽽N-Gram就是考虑局部统计信息的语⾔模型,CNN相当于在低维向量空
间中实现了它。
如果我们⽤⼀个滑动窗⼝(⽐如宽度是2)滑过⼀个句⼦,那么,我们便可以提取到句⼦中的所有2-gram。假设句⼦中的字都是⽤向量
加拿大留学咨询句⼦中的每个2-gram 构造了个向量表⽰。
不过这种向量表⽰真的合理吗?构造出的向量真能表达2-gram的语义吗?假设句⼦中包括这样两个2-gram,“吃饭”和“美丽”。有什么理由认为“吃”和“饭”的加权⽅式应该跟“美“和”丽“的加权⽅式⼀样?注意前者是动宾结构,后者是并列结构,分别对应于不同意义上的语义组合。所以这其实是卷积类的语义表达⾯临的问题。
最近attention 有取代卷积的趋势,变成"all you need" 的了。
thunlp-NRE提供了开源的代码,我们可以在上⾯训练⾃⼰的model。、。