Leyang Cui and Yue Zhang, “Hierarchically-Refined Label Attention Network for Sequence Labeling”, EMNLP 2019
1 简介
以前序列标注的经典模型有 Bi-LSTM、Bi-LSTM + CRF,但是很多时候,Bi-LSTM + CRF 的性能可能还不如只有 Bi-LSTM 的。本文认为,这是 CRF 的引入带来了理论上的限制。本文提出了 BiLSTM-LAN(Bi-LSTM label attention network),对 token 的标签做 attention,理论挺有道理,性能也是 SOTA。
2 理论基础
为什么加入 CRF,性能更差了呢?CRF 是为了学到之间的依存关系,让标签更“合理”,这是 CRF 的优点。而 CRF也有很多缺点:CRF 的前提假设是“标签只和它附近几个标签有依存关系”,距离较远的标签的依存关系就没有被考虑。另外,CRF 需要动态规划来解,比较浪费时间。
3 算法
作者为了不用 CRF,就打算用深层的网络取代之。网络结构如下:

前人的多层 Bi-LSTM,都是 Bi-LSTM + Bi-LSTM + Bi-LSTM + Softmax。本文的多层,是 Bi-LSTM + Softmax + Bi-LSTM + Softmax 这样。每次 Bi-LSTM 得到了预测的标签,对这个标签进行 attention,将这个结果和 Bi-LSTM 的输出拼合,作为下一层 Bi-LSTM 的输入。
具体地,Bi-LSTM 输出词的隐层表示 $H^w$,再查表,得到标签 $X^l_k$ 的词嵌入 $e^l(l_k)$,然后开始 attention:
$$Q = H^w, K=V=X^l$$
$$H^l = \text{attention}(Q,K,V) = \alpha V$$
$$\alpha = \text{softmax}(\frac{QK^T}{\sqrt{d_h}})$$
上面说的是标准 attention,作者实际用的是多头 attention:
$$H^l = \text{concat}(\text{head}_1,…,\text{head}_k) + H^w$$
$$\text{head}_i = \text{attention}(QW^Q_i,KW^K_i,VW^V_i)$$
最后 attention 的输出 $H = [H^w;H^l]$
在最后一层,BiLSTM-LAN 直接根据 attention 权重,得到最有可能的预测标签:
$$\alpha = \left[ \begin{array}{ccc} \hat{y}_1^1 && \hat{y}_1^{|L|}\\ & \ddots &\\ \hat{y}_i^1 &&\hat{y}_i^{|L|}\\ \end{array} \right] $$
$$\hat{y}_i = \arg\max_j(\hat{y}_i^1,…,\hat{y}_i^n)$$
4 实验
- 对照 有/无 attention,证明 attention 有点用。
- Bi-LSTM-LAN 比 Bi-LSTM + CRF 性能好一点;且在性能最好的情况下,参数量和 Bi-LSTM + CRF 差不多。
- Bi-LSTM-LAN 将复杂度从 Bi-LSTM + CRF 的 $O(|L|^2n)$ 降到了 $O(|L|n)$。在 WSJ 和 CCGBank 数据集上,分别缩短 3% 和 19% 的时间。
- Bi-LSTM-LAN 比 Bi-LSTM + CRF 收敛更慢,需要的 iteration 更多。作者说是 label embedding 使得更多知识要被学习。
- 对于 Supercategory Complexity 问题(我理解就是,预测更细分的子标签类别),越 complex,所有模型性能都会下降,但是 越 complex,Bi-LSTM-LAN 的优势就越大,这表明它学到了更复杂的 label 之间的 dependency。
另外,由于 Bi-LSTM-LAN 里面的 attention weight 就是标签的预测结果,所以可以直接用它可视化,观测随着训练的预测的变化。用 t-SNE 降到二维,发现随着训练,label 空间里,label 的位置与其语义逐渐有了关联,相关的 label 也更近了。
5 总结
- 感觉只要是多层的网络,如果预测结果的信息也有值得学的内容,就都可以改成这样?
- 说是 SOTA,但其实比 Bi-LSTM + CRF 就好了 0.1%。。。
[mathjax]