论文阅读笔记–High-order Coreference Resolution

Higher-order Coreference Resolution with Coarse-to-fine Inference

https://arxiv.org/abs/1804.05392v1

这是2018 NAACL的一篇文章,将coref的任务进行了高阶相似性的比较。当时bert还没有展示出其大杀四方的魄力,所以论文中使用的还是\( bi-LSTM \)模型。之前的指代消解的模型里面,我们每次只比较两个mentions之间的相似性,也就是一阶相似性,但是这样会出现一些问题。

图片来自《Higher-order Coreference Resolution with Coarse-to-fine Inference》

为了解决这种问题,作者使用了span-ranking的结构,迭代计算。在每一步迭代中,先验分布用类似于attention的方式来更新当前的span。同时由于在计算high-order inference的计算复杂度较高,作者提出了一种coarse-to-fine的方式,近似的计算每一对mentions为同一指称的得分。

First-order Baseline

第\( i \)个span和第\( j \)个span的得分是:$$ s(i,j) = s_m(i) + s_m(j) + s_a(i,j) $$

用向量\( \boldsymbol{g}_{i} \)表示每一个可能的span,这个是通过双向LSTM(1997)学习得到。那么\( s_m \)和\( s_a \) 可以通过以下的方式学习出来:

$$ \begin{aligned}
s_{\mathrm{m}}(i) &=\boldsymbol{w}_{\mathrm{m}}^{\top} \mathrm{FFNN}_{\mathrm{m}} \left(\boldsymbol{g}_{i}\right) \\ s_{\mathrm{a}}(i, j) &=\boldsymbol{w}_{\mathrm{a}}^{\top} \mathrm{FFNN}_{\mathrm{a}} \left(\left[\boldsymbol{g}_{i}, \boldsymbol{g}_{j}, \boldsymbol{g}_{i} \circ \boldsymbol{g}_{j}, \phi(i, j) \right]\right)
\end{aligned} $$

特征向量是\( \phi(i, j) \) 主要涵盖元数据中说话人和一些类型信息,同时包含两个span的距离信息。

High-order Model

在句子级别的语义信息中,高阶的决策信息可以通过LSTM隐式地学习得到,但是在文档级别的决策需要显示地推断,因为mentions之间地表面距离会相差地很远。

作者提出了一个高阶结构地推断模型。通过N次迭代,refine得到的span representation,我们用 \( \boldsymbol{g}_{i}^{n} \)表示第\( n \)次迭代时第\( i \)个span的表示。用first-order学习到的值初始化 \( \boldsymbol{g}_{i}^{1} \). 对于每次迭代得到的表示,我们可以更新先验分布,公式为:$$ P_{n}\left(y_{i}\right)= \frac{e^{s\left(\boldsymbol{g}_{i}^{n}, \boldsymbol{g}_{y_{i}}^{n} \right)}}{\sum_{y \in \mathcal{Y}(i)} e^{\left.s\left(\boldsymbol{g}_{i}^{n} \cdot \boldsymbol{g}_{y}^{n}\right)\right)}} $$

\( s\)函数是和baseline一样的,参数共享。在每一次迭代中,我们利用当前的先验分布\( P_{n}\left(y_{i}\right) \)计算每一个span的期望先验表示 \( \boldsymbol{a}_{i}^{n} \) :

$$ \boldsymbol{a}_{i}^{n}=\sum_{y_{i} \in \mathcal{Y}(i)} P_{n}\left(y_{i}\right) \cdot \boldsymbol{g}_{y_{i}}^{n} $$

而后我们更新\( \boldsymbol{g}_{i}^{n} \)

$$\begin{aligned}
\boldsymbol{f}_{i}^{n} &=\sigma\left(\mathbf{W}_{\mathbf{f}}\left[\boldsymbol{g}_{i}^{n}, \boldsymbol{a}_{i}^{n}\right]\right) \\
\boldsymbol{g}_{i}^{n+1} &=\boldsymbol{f}_{i}^{n} \circ \boldsymbol{g}_{i}^{n}+\left(\mathbf{1}-\boldsymbol{f}_{i}^{n}\right) \circ \boldsymbol{a}_{i}^{n}
\end{aligned}$$

Coarse-to-fine Inference

上述模型并不能很好的应用在很长的文本上,其中很大的原因在于其计算的复杂性,计算瓶颈在\( s_a(i,j) \)的计算上,其计算的tensor size为\( M \times M \times (3|\boldsymbol{g}|+|\phi|) \) (M是mention proposal预测的mentions的数量)。

Heuristic antecedent pruning

启发式的剪枝每次只选取距离当前span最近的K个span及进行预测,这样最终的计算只需要\( M \times K \times (3|\boldsymbol{g}|+|\phi|) \). 但是这样限制了指称链接最大的距离。但是事实上,指称之间的距离有可能会相差很远。

Coarse-to-fine antecedent pruning

作者提出了一种类似于由粗粒度到细粒度的一种剪枝方法。该方法最关键的地方是使用了一种bilinear scoring function替换了原有的函数:

$$s_{\mathrm{c}}(i, j)=\boldsymbol{g}_{i}^{\top} \mathbf{W}_{\mathrm{c}} \boldsymbol{g}_{j}$$

其中 \( \mathbf{W}_{\mathrm{c}} \)是学习得到的权重矩阵。和\( s_a\)相比,\( s_c \)的正确性会有所下降,论文实验表明,直接将\( s_a \)替换成\( s_c \)会造成F1 降低3个百分点。 不过计算的tensor size改为了 \( M \times |\boldsymbol{g}_{i}|\)和 \( M \times M\) 。

所以我们每次使用\( s_c \)来粗略的找出可能性比较高的antecedents. 最终我们将它作为整个\( s(i,j)\)的一个因素:$$ s(i,j) = s_m(i) + s_m(j) + s_a(i,j) + s_c(i,j) $$

整个模型最后包含3个beam search。

  • First Stage: 计算\(s_m\)得到可能性最高的M个spans。
  • Second Stage: 通过计算\(s_c\)找到K个最有可能的antecedents.
  • Third Stage: 最终计算剩余的mentions的\( s(i,j) \). high-order inference也在这一步完成计算。

Results

图片来自《Higher-order Coreference Resolution with Coarse-to-fine Inference》

Leave a Reply

Your email address will not be published. Required fields are marked *