Unsupervised Information Extraction: Regularizing Discriminative Approaches with Relation Distribution Losses
导读
这次读的巨认真,而且刚刚看完auto-encoder那一篇,肯定没问题,杠杠的。
Abstract
神经网络在有监督的条件下效果确实很好,但是不监督很难训练。
作者引入
- skewness loss让分类器预测一个句子的关系。
- distribution distance loss 强制让所有的关系平均的被预测
这些loss提高了判别式模型的性能—三个数据集上都是最好的
1. Introduction
URE 有意义:
- 无需标签
- 可以覆盖新的关系类型
- 可以从大量的无监督数据中训练,fine tune到具体的关系中
Yao Limin的两个工作提出了过于简单的assumption:在给定关系的情况下,entity是条件独立的。
判别模型显然是效果更好的,但是无监督条件下,训练信号太少了。
即使那篇discrete-state autoencoder
- 无法与有监督的形式相比。2015 Zeng
- 依靠手工特征
- 有错误以及无法发现新关系模式(啥叫不能发现new pattern啊,不是open的吗?
实验说明auto-encoder不稳定, 尤其是用NN的关系分类器的时候(确实,autoencoder里面的encoder就是NN的。
该模型会根据超参数陷入以下两个极端:
-
总是预测同一个关系
-
预测平均分布
为了克服这些问题,作者基于**fill-in-the-blank(填空)**提出一个link prediction loss和两个新losses,实验证明这是学习的关键。
contribution为:
- RelDist loss: 是一个Skewness loss。感觉名字像是relation distribution loss…
- NYT+FB 以及其他两个数据集上做了一大堆实验
- RelDist loss在PCNN以及auto-encoder这个URE模型上都提升了性能。
那么其实一句话就说完了:提出了一个RelDist loss,三个数据集上的结果证明在Supervised和Unsupervised的两种模型下并且都提升了性能。
2. Related Work
distant supervision会带来质量较差的,并且是无法发现新关系的,KB是固定的
在无监督的setting下,模型不能接触到标注的句子或者KB。
模型可以分为两类:
- 生成式/聚类式的模型: 聚类出一些规律性(意思应该是具体类似规律的句子/样例,就是OpenRE了)
- 判别式的模型:必须有一些假设,例如a pair of entities 必须有相同的关系,这样提供一个学习信号给分类器。
给予KL散度关系的后验分布|关系的平均先验,提出的loss实际中不稳定,解决了不稳定性,并且训练一个分类器(这边的意思应该encoder里面去做一个NN的分类器?)。
3. Model description
监督信号是类似于March那一篇的,也是用于预测另外一个entity。
这里不同的地方在于:
关系是可以通过entity之间的文本进行预测的。(也就是前后两个entity全部去除,还是可以通过上下文本来进行预测的。
上述公式是对auto-encoder的方法的描述。
auto-encoder是没有作上述的假设的,分类器的输入是有和的。(嘿嘿,我果然问的没错。这个information bottleneck是引入了entity本身的信息的,这样会导致的信息抽取错误。只要抽取两个entity的信息,就可以预测的很好了。)
3.1 Unsupervised relation classifier
这里使用的是PCNN用作关系分类器,他的结构刚好可以把两个entity移除掉并且分类得到关系结果。
词向量用的GloVe,训练的时候可以fine-tune.
具体细节就是老X样了是吧,PCNN嘛,经典,永不过时的。
咱用公式来写一下:
3.2 Link Predictor
这一块主要就是将关系的embedding和entity的embedding的factorization。和auto-encoder那篇是一样的。
用的还是hybrid的模型也就是RESCAL和Selectional Preferences
值得一提的是这边的是一个three-way tensor ,在其中encoding了entities的interaction。
Negative Sampling
由于entity实在太多,这一部分计算会非常的慢,于是采用的word2vec那篇文章中的 negative sampling的方式
所以最终link predictor的loss为:
- 是relation的学习函数,为:
- 是sigmoid函数,那么后面两个部分就是希望尽可能的是分别两个entity的预测都是正确的。
- 是负采样的entity通过随机个采样估计出来。
3.3 RelDist losses
实际上通过训练Link preditor是非常不稳定的而且很依赖于调参。
那么根据实验主要有两种崩溃的情况:
- 关系都是平均分布,就是relation classifier,句子都是平均分布的,就是和没学一样
- 所有的句子都是一个关系了。
但是两种情况还是可以降到比较低的。只要捕捉entity的共现就可以做的非常不错了。(three -way tensor可以存储interactions between entities.)因为有些entity pair只出现一次。 这种情况下,LP可以直接忽略就可以正确。这样给分类器很大的压力,因为一开始它还不是很稳定。这样就会导致LP优秀但是分类器还是很差,然后LP还会沉溺于获取entity co-occurance。优化方向就错误了。
所以为了克服这一问题。提出了两种额外的loss
Skewness
最小化预测关系分布的熵,这主要针对问题1,强制预测结果都接近one-hot(就是必须100%属于某一个类别)
- 是一个随机变量,对应了预测的关系
- 值得一提的是,因为作者假设关系与entity pair是独立的。那么
Dispersion
针对问题2,为了确定会预测多个关系,最小化KL散度,先验和均匀分布
就是希望一个关系之中,样例是均匀分布的。
这样各个关系不会存在非常大的区别,导致某一些小关系被模型识别或者说合并到大关系里面去了。
注意这里和不同的是,这里是无条件的概率,意为所有的样例。而的意思是,在给定句子的情况下,尽可能的让条件概率为1。
这二者并不冲突
那么最终的loss就是LP loss和这二者的超参数加权和。
4. Experiments
数据集其实这篇论文做的非常的全,导致后来的selfORE都是一摸一样的。
baseline就是rel-LDA, rel-LDA1 是li min yao 在2011和2012做的relation discovery。