paper-End-to-end Neural Coreference Resolution

输入:包含T个词语的文档D,其中则有:Span,对于Span $i$的边界可以表示为

那么当前的任务为:对于每个Span$i$,能够确定一个先行词$y_i$

$\varepsilon$出现情况包含两种:

  1. Span不是一个entity mention
  2. Span是一个entity mention,但是不与其它mention存在共指关系

训练学习目标:

$$P(y_1, ..., y_N|D)$$ $$=\prod_{i=1}^{N}P(y_i|D)$$ $$=\prod_{i=1}^{N}\frac{exp(s(i, y_i))}{\sum_{y'\in\mathcal{Y}(i)exp(s(i, y'))}}$$

其中,

$s(i, j)$是两个Span $i$、$j$是否有共指关系的score,其取值为:

$$s(i, j)= \begin{cases} 0& 0, j=\epsilon\\ 1& s_m(i)+s_m(j)+s_a(i, j) \end{cases}$$

这里,Span是否为mention的score;是$i$是否为$j$先行词的score


为了计算,引出对Span$i$的向量表达:

那么,是如合计算的呢?

使用一个BiLSTM结构,对Span$i$的每个字进行编码,即:

$$boldsymbol{f}_{t,\delta}=\sigma(\boldsymbol{W}_f[\boldsymbol{x}_t, \boldsymbol{h}_{t+\delta,\delta}]+\boldsymbol{b}_i)$$ $$\boldsymbol{o}_{t,\delta}=\sigma(\boldsymbol{W}_o[\boldsymbol{x}_t, \boldsymbol{h}_{t+\delta,\delta}]+\boldsymbol{b}_o)$$ $$\boldsymbol{\tilde{c}}_{t,\delta}=tanh(\boldsymbol{W}_c[\boldsymbol{x}_t,\boldsymbol{h}_{t+\delta,\delta}]+\boldsymbol{b}_c)$$ $$\boldsymbol{c}_{t,\delta}=\boldsymbol{f}_{t,\delta}\circ\boldsymbol{\tilde{c}}_{t,\delta}+(1-\boldsymbol{f}_{t,\delta})\circ\boldsymbol{c}_{t+\delta,\delta}$$ $$\boldsymbol{h}_{t,\delta}=\boldsymbol{o}_{t,\delta}\circ tanh(\boldsymbol{c}_{t,\delta})$$ $$\boldsymbol{x}_t^*=[\boldsymbol{h}_{t,1}, \boldsymbol{h}_{t,-1}]$$

上面-1, 1就表示方向,论文对于不同的句子用了独立的LSTM,原因是跨句子的信息(在本实验种)不是很重要。

然后提取Syntactic head,做法是对每个Span做attention:

$$\alpha=\boldsymbol{\omega}_{\alpha}\cdot FFNN_\alpha(\boldsymbol{x}_t^*)$$ $$a_{i,t}=\frac{exp(\alpha_t)}{\sum_{k=START(i)}^{END(i}exp(\alpha_k)}$$ $$\boldsymbol{\hat{x}}_i=\sum_{t=START(i)}^{END(i)} a_{i,t}\cdot \boldsymbol{x}_t$$

因此,就是Span$i$的词语向量之和

从而,引出的表达:

$$\boldsymbol{g}_i=[\boldsymbol{x}_{START(i)}^*, \boldsymbol{x}_{END(i)}, \boldsymbol{\hat{x}}_i, \varnothing(i)]$$

至此,引出的计算方法:

$$s_m(i)=\boldsymbol{\omega}_m\cdot FFNN_m(\boldsymbol{g}_i)$$ $$s_a(i,j)=\boldsymbol{\omega}_a\cdot FFNN_a([\boldsymbol{g}_i, \boldsymbol{g}_j, \boldsymbol{g}_i \circ \boldsymbol{g}_j, \varnothing(i,j)])$$

训练细节

由于在训练数据中只能看到聚类信息,而先行词都是潜在地存在,所以作者通过GOLD cluster对所有正确的先行词隐晦地用边缘对数似然进行优化(marginal log-likelihood):

$$log \prod_{i=1}^{N} \sum_{\hat{y}\in \mathcal{Y}\cap GOLD(i)} P(\hat{y})$$

其中,GOLD(i)是包含Span$i$的GOLD clusterSpan集合,若Span$i$不属于任意一个Gold cluster或者所有的Gold 先行词均被剪枝删除,那么:GOLD(i)={}。将虚拟先行词$\epsilon$的score固定为0可以清除模型中表述提取部分的自由度(好像翻译得不太对

超参部分

  • Word representation
    • 300d Glove
    • 50d Turian
    • OOV:zero vector
  • Hidden dimensions
    • 200d LSTM
    • FFNN:2 hidden layer;ReLU
  • Feature encoding

    • 二元特征:2个Span是否来自于一个speaker
    • 距离特征:[1, 2, 3, 4, 5-7, 8-15, 16-31, 32-63, 64+]
    • mention width

      以上构成20d向量

  • Pruning
    • max span width: L=10
    • =0.4
    • 最大先行词数量:K=250
    • Document随机切分为50个句子
  • Learning
    • ADAM for minibatch size of 1
    • word embedding, char cnn embedding: dropout: 0.5
    • 所有隐藏层、特征: dropout: 0.2
    • learning rate: decay 0.1% every 100 steps
    • trained: 150 epoch