远程监督2010

update: 2020.2.1

update: 2020.2.2

Modeling Relations and Their Mentions without Labeled Text(2010)

远程监督的方法基于一个假设:每个提及到两个相关实体的句子都会表达给定的关系。但是这样会导致产生噪声的模块来影响准确度,尤其时知识库没有直接与研究的文本相关。因此,本文提出一种新的远程监督的方法来缓解上述问题,方法基于两个观点:

  1. 使用因子图(factor graph)去决定是否两个实体是关联的,并且决定在给定句子中是否有关系提及
  2. 在没有关于句子表示某种关系的前提下应用约束驱动(constraint-driven)半监督去训练

之前提到,远程监督的要求太过严苛了,因此应该使用更加松弛的规则,于是有:

如果两个实体之间有某种关系,那么至少有一个提到这两个实体的句子会表达这种关系

按照之前的说法,只需要综合考虑所有的句子的特征就可以了,但是现在不知道哪个句子会表达出所需要的关系。为了解决这个问题使用两个方法:

  1. 使用因子图来预测实体间的关系和句子是否表述关系。本文使用一组两元关系提及变量(可以预测特定的候选句子是否表述该关系)来为两个实体建立关系变量(relation variable),至关重要的是,这些关系提及变量在训练时时不可观测的,我们只需知道每个关系都至少被表达了一次,但是不知道在哪个句子中
  2. 通过将远程监督作为约束驱动的半监督方法的一种方法来训练图模型。这种监督方法被应用在某些变量是隐变量的情况下,即模型参数被优化来保证预测会符合一组先前定义的约束,而不是满足一组目标标签

本文使用SampleRank,一种非常高效的方法来训练大范围因子图中的参数,并且这种方法可以很自然的的被应用在约束驱动的学习中。

本文的模型来自New York Times语料库,使用Freebase作为额外的监督资源。

聚焦于关系而不是关系提及有几个好处(关系和关系提及):

  1. 在下游的应用时更多的考虑的时实体和它们的关系而不是它们的每个提及。
  2. 它允许我们从语料库的几个地方去合计关系。
  3. 它简化了机器学习任务:通常情况下只有少量的带注释的关系提及,我们往往有很多存在的相关实体需要抽取出来。

模型

为了避免使用噪声模块,需要同时对关系和关系提及建模。使用一种有两种隐藏变量的无向图模型。

首先,对于每一对至少在同一个句子中出现的实体\(S\)(source)和\(D\)(destination),一个关系变量\(Y\)用来表示它们之间的关系,或者用NA来表示它们没有关系。如下图:

对每个关系提及候选\(i\)都定义了一个关系提及变量\(Z_i\),表示提及\(i\)是否确实表达了两个实体间的关系\(Y\)。

对每个关系提及向量\(Z_i\),将它的两个实体提及记为\(S_i\)和\(D_i\),除此之外,会保存\(Z_i\)额外的信息,比如依存路径,记为观察值\(\textbf x_i\)。这些信息都被合计为向量\(\textbf x\)。最后使用\(\textbf Z\)来表示所有候选提及的状态,并且\(\|\textbf z \|\)表示活动(active)的关系提及的数量。在上述变量的条件概率分布如下:

\[p(Y=y,\textbf Z=\textbf z|\textbf x)\overset{def}{=}\frac{1}{Z_x}\phi^r(y)\phi^{join}(y,\textbf z,\textbf x)\prod_i\phi^m(z_i,\textbf x_i).\]

在这里因子(模板)\(\phi^r\)表示模型面对某个关系类型\(y\)的全部偏置,使用对数线性势函数定义\(\phi^r(y)=\exp(\theta^r_y)\)。因子\(\phi^m\)定义为关系提及变量和它对应观测的结果\(\textbf x_i\)的函数:

\[\phi^m(z_i,\textbf x_i)\overset{def}{=}\exp\left(\sum_j\theta_j^m\theta_j^m(z_i,\textbf x_i)\right)\]

\(\theta_j^m\)是一个二元的特征,例如:

\[\theta_{101}^m(z_i,\textbf x_i)\overset{def}{=}\begin{cases}1&\exists i:z_i=1\land \phi_j^m(z_i,\textbf x_i)=1\\0&oterwise\end{cases}\]

如果\(Z_i\)是active的并且有序列“\(S_i\),a managing director of \(D_i\)”则返回1,否则返回0。

因子\(\phi^{join}\)将关系变量和它们的提及联系起来:

\[\phi^{join}(y,\textbf z,\textbf x)\overset{def}{=}\exp\left(\sum_j\theta_{j,y}^{join}\phi_j^{join}(\textbf z,\textbf x)\right)\]

在这里,特征函数\(\phi_j^{join}\)的定义涉及提及特征函数:

\[\phi_j^{join}(\textbf z,\textbf x)\overset{def}{=}\begin{cases}1&\exists i:z_i=1\land\phi_j^m(z_i,\textbf x_i)=1\\0&otherwise\end{cases}\]

因此,特征\(\phi_j^{join}\)表示特征\(\phi_j^m\)是否对于任何active的关系提及都是active的(通过\(z_i=1\)的形式)。举个例子,如果“a managing director”出现在任何active的关系提及中的相关的实体提及之间,那么\(\phi_{101}^{join}\)就被激活。在这里认为只有active的候选提及会被考虑而不是所有的候选提及。

推导(Inference)

模型中有两种推导,从后验取样训练和寻找最有可能的配置(configuration)。

在这两种设置中,都使用了分组吉布斯采样(block Gibbs sampler)随机选取关系提及\(i\)和联合样本(\(Z_i\)和对应的关系变量\(Y\))。

这里使用分组吉布斯采样而不是采取单个变量(single-variable)吉布斯采样,是因为要考虑提及变量\(Z_i\)和关系类型\(Y\)之间强的关联性。假设,现在的关系类型\(Y\)被设置为NA,所有的关系提及\(Z_i\)都是inactive,并且想为第一个关系提及\(Z_1\)采样新的状态,在这个例子中,模型将会给定一个接近0的概率给\(Z_1=1\),因为它学习到这个分配是和\(Y=NA\)无关的,同样,将所有\(Z_i\)都固定为0来改变\(Y\)也是一个很低的概率,这可能即使模型为\(Z_1=1\)分配高概率,也会发生例如\(Y=founder\)。**同时改变关系和关系变量会克服这个问题。

Rank-Based学习和远程监督

大部分的学习方法在更新参数前需要计算模型的期望或者MAP configuration(?),这一步的推导通常是学习的瓶颈。

SampleRank是一种基于排序的学习框架,使用MCMC推导来缓解上述问题。每一对在MCMC链中连续的样本会根据模型和ground truth来排序,参数会在排序冲突时更新。这允许学习器获得对参数更多的监督,带来对模型高效的训练,尤其当推导时复杂和棘手的。

SampleRank对于分布\(\textbf y\)考虑两种排序函数:(1)概率(model ranking)\(p(\textbf y)=\frac{1}{Z}\exp(<\Theta,\phi(\textbf y)>)\),其中\(\phi(\textbf y)\)是对于\(\textbf y\)特征的表示,(2)事实函数(truth function)\(\mathcal F(\textbf y)\)(objective ranking),一个这样的事实函数可以是相对某些已标记的关系的每个实体对准确对,另一个可以是F1度量。

应用SampleRank的目的是寻找使得model ranking和objective ranking尽可能相一致的参数。为了这样做,SampleRank在每一步的每个MCMC链上使用以下的更新策略。

令\(\textbf y^{i-1}\)是先前的采样,\(\textbf y^i\)是当前链上的采样,\(\alpha\)是学习率,\(\Delta=\phi(\textbf y^{i-1})-\phi(\textbf y^i)\),权重\(\Theta\)用以下策略更新;

\[\Theta=\Theta+\begin{cases}\alpha\Delta&if\frac{p(\textbf y^{i-1})}{p(\textbf y^i)}<1\land\mathcal F(\textbf y^{i-1})>\mathcal F(\textbf y^i)\\-\alpha\Delta&if\frac{p(\textbf y^{i-1})}{p(\textbf y^i)}>1\land\mathcal F(\textbf y^{i-1})<\mathcal F(\textbf y^i)\\0&otherwise\end{cases}.\]

值得注意的是,评估模型比率(ratios,?)不需要计算分区函数(partition function)\(Z\)。

为了更好的表述SampleRank,考虑如上面所示的因子图。吉布斯取样对此分配了一个新的状态给关系变量和其中一个关系提及变量。举个例子,它保留了关系提及变量但是将关系变量设置为\(child-of\)。

在训练阶段的早期,这个方法可能仍然相比之前的状态会有一个更高的概率,因为\(\frac{p(\textbf y^{i-1})}{p(\textbf y^i)}<1\)。但是当我们知道Roger McNamee不是Elevation Parteners的孩子时,先前的状态会有更高的truth score,这是因为\(\mathcal F(\textbf y^{i-1})>\mathcal F(\textbf y^i)\),这就意味着SampleRank会根据先前的状态来更新特征向量\(\phi(\textbf y^{i-1})\)。

可以应用一些远程监督的方法合并进这个框架。truth函数\(\mathcal F(y,\textbf z)\)关于关系变量和关系提及变量的被分解为:

\[\mathcal F(y,\textbf z)=\mathcal F_r(y)+\mathcal F_m(\textbf z,y_{truth})\]

其中\(F_r(y)\)只表示关系变量\(y\)的truth,\(\mathcal F_m(\textbf z,y_{truth})\)表示关系变量的truth。这里\(y_{truth}\)关系与训练用的知识库中的\(y\)的实体对有关联,没有关系存在,就认为是NA。这里的\(\mathcal F_r(y)\)被固定为:

\[\mathcal F_r(y)=\begin{cases}1&y=y_{truth}\\-1&otherwise\end{cases}.\]

这就是,一次与true关系的匹配会将truth score增加1,否则-1。

远程监督

使用SampleRank可以很容易的达到之前的baseline,在这里,将所有的变量\(Z_i\)都固定下来,如果关系变量\(y\)是NA,那么\(Z_i=0\),否则为1,推导时只考虑\(Y\)变量。

联合监督

对于原先的远程监督方法,本文使用了两个改进的地方:

  1. 联合推导提及和关系
  2. 放松对于候选提及是一个实际有效的提及的假设。

对于第一个改进可以使用远程监督truth函数

\[\mathcal F_m^{distant}(\textbf z,y_{truth})=\begin{cases}\|z\|&y_{truth}\neq NA\\-\|z\|&otherwise\end{cases}.\]

这就是说,如果问题中的两个实体在训练知识库中是有联系的(i.e.,\(y_{truth}\neq NA\)),每个active的关系提及会被激励(encouraged),否则关系提及更偏向于inactive。

至少一次表达监督(Expressed-at-Least-Once Supervision)

SampleRank允许自然的将至少一次假设包括进来,简单的对这些关系提及使用truth方程:

\[\mathcal F_m^{once}(\textbf z,y_{truth})=\begin{cases}1&y_{truth}\neq NA \land\|\textbf z\|\geq1\\-1&y_{truth}\neq NA \land\|\textbf z\|=0\\-\|z\|&otherwise\end{cases}.\]

这就是说,如果真实关系类型\(y_{truth}\)不是NA,如果至少有一个提及是active的,一个对于关系提及变量的分配会有最大的rank。如果一对实体在Freebase中没有提及,负激励的分配与active的关系提及成正比。


约束导向的方法一般用于(1)只有少量有标签的样本实例可以用(2)对于无标签样本有一些强/弱的约束,这些约束就是额外的监督。

除了SampleRank,使用隐变量训练无向模型还有很多方法。一个替代方案是隐感知器。

总结

为了对开篇提到的假设建模,首先使用了一种全新的无向图模型,它能同时涉及预测实体间关系的任务和哪些句子会表达这些关系的任务。其次,将远程监督作为约束导向半监督的一个实例应用于预测任务,特别的是,对于大因子图使用SampleRank(一种判别学习算法),通过truth function来加入至少表达一次的假设。


「欢迎留言」: