语言计算:序列标注前沿技术研究

作者:孟辉(alexmeng)

1 概述

大家知道,序列标注、文本分类、句对关系判断和生成式任务并称自然语言处理四大基础技术支柱。序列标注作为最基础的语言计算任务已在命名实体识别、词性标注、分词以及属性抽取等场景中得到了广泛的应用。这里顺便提一下,我们在属性抽取方面沉淀了诸多宝贵的经验,限于文章篇幅,本文将侧重序列标注理论的阐述,业务应用将在后续文章中体现。

2 序列标注技术发展

就我而言,认为序列标注技术的发展可以大致分为三个阶段,统计学习方法牛刀初试(HMM、CRF)、深度神经网络异军突起(BiLSTM、Attention)以及后深度神经网络纵横天下(以Transformer、BERT、XLNet为代表的后深度神经网络时代)。

2.1 统计学习方法牛刀初试

统计学习方法中隐马尔科夫模型(HMM)、最大熵马尔可夫模型(MEMM)、条件随机场(CRF)等方法在序列标注任务上可以说是星光璀璨,在多领域包括语音识别、自然语言处理、文字识别、故障诊断取得了巨大的成功。

2.1.1 必备知识

在介绍概率图统计学习方法之前,先谈谈生成模型与判别模型的区别、分类问题与序列标注任务的区别与联系,最后再探讨下什么是对数线性模型。

一般来说,监督学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach),对应所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测模型,也就是生成模型:

\\displaystyle\\ P(X | Y) = \\frac{P(X,Y)}{P(X)}\\tag{0}

之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。典型的的生成模型有朴素贝叶斯法和隐马尔科夫模型(HMM)。

对应地,判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关系的试是对给定的输入X,应该预测什么样的输出Y。典型的判别模型包括感知机、决策树、支持向量机和条件随机场。

总的来看,在监督学习中二者各具优缺点,需在不同的场景下灵活选用:

  • 生成方法的特点:生成方法可以还原出联合概率分布P(X,Y),判别方法则不能;生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以用生成学习方法,此时判别方法不可用。
  • 判别方法的特点:判别方法直接学习的是条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习的准确率更高;由于直接学习P(Y|X)f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

2.1.2 隐马尔科夫模型

HMM是结构最简单的动态贝叶斯网,是一种概率有向图模型,在20世纪70年提出,很快掀起了学界的研究热潮,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛的应用。HMM图结构如下图所示:

Query Representation(QR)可以表示为gθ (x(z<t), zt),下文用g(zt ) 表示,与CR有明显的区别,它仅作用于上下文信息x(z<t) 和目标位置信息z_t 。

\\displaystyle \\ g_{z_{t}}^{(m)} = Attention(Q= g_{z_{t}}^{(m-1)}, KV= h_{\\mathbf z_{\\lt t}}^{(m)}; \\, \\theta ) \\tag{12}

整体示意图如下所示:

Joint View of the Query Stream

上述公式中Q,K,V是注意力机制中常见的参数矩阵,更新和使用方法与一般无异,双流自注意力机制的计算架构如下图所示:

Architecture: Two-Stream Self-Attention for Target-Aware Representations

双流自注意力机制的实现主要是基于Transformer-XL,可能有些读者对Transformer-XL不太了解,笔者这里对上述计算过程做简单描述。

首先是初始化参数表示,对于 \\forall \\, t= 1,\\dots, T h\\_t=e(x\\_t)g\\_t=w。这里需要注意的是XLNet通过利用Transformer-XL中片段循环机制来解决超长序列的依赖问题,因此这里需要在内存中缓存前一片段的内容信息,假设这里在内存存储了前一片段第m层隐状态向量\\tilde{h}^{(m)}

接着利用Transformer-XL中先后利用相对位置编码和position-wise前馈计算来层层更新隐状态向量。

对于 \\forall \\, t=1,\\dots,T 有:

\\hat{h}\\_{z\\_t}^{(m)}=LN(h\\_{z\\_t}^{(m-1)}+RelAttn(h\\_{z\\_t}^{(m-1)},\\, [\\hat{h}^{m-1}, \\, h\\_ {z\\_{\\le t}}^{(m-1)}]))\\tag{13}

\\ h\\_{z\\_t}^{(m)}=LN(\\hat{h}\\_{z\\_t}^{(m)}+PosFF(\\hat{h}\\_{z\\_t}^{(m)}))\\tag{14}

上述公式中LN表示Layer Normalization,那么对应的g\\_{z\\_t}^{(m)}的计算方法与h\\_{z\\_t}^{(m)}类似,在此不再赘述。最终的目标token概率分布可以表示为:

\\displaystyle\\ p\\_{\\theta}(X\\_{z\\_{t}}=x| \\mathbf x\\_{z\\_{\\lt t}})=\\frac {exp(e(x)^{T}g\\_{z\\_{t}}^{(M)})} {\\sum \\_{x^{\\prime}}exp(e(x^{\\prime})^{T}g\\_{z\\_{t}}^{(M)})}\\tag{15}

在上述计算过程中,读者应了解XLNet采用了Transformer-XL中相对位置编码技术和片段循环机制,详细的解释读者可自行阅读相关文章,限于篇幅,在此不做探讨。

实际上,写到这里XLNet模型的基本工作原理已经接近尾声,就像读者一样,十分关心XLNet利用文中提到的Permutation Language Modeling Objective算法是否会因为其排列复杂性而影响预训练阶段模型的收敛速度。答案是肯定的,不过作者提出可以通过限制预测tokens来降低优化难度,加快收敛速度。具体做法是,假设\\mathbf z表示其中一种分解顺序(Factorization Order),我们可以将\\mathbf z划分为两段,一段是不包含预测目标的序列z(≤c),另外一段是包含预测目标的子序列z(>c)。自然地,c就是分割点,此时的优化目标为:

\\displaystyle\\ \\max\\_\\theta \\:\\ \\mathbb{E}\\_{\\mathbf{z}\\backsim \\mathcal {Z}\\_{T}} \\left[ log\\,p\\_{\\theta} (x\\_{\\mathbf z\\gt\\_c} |\\mathbf x\\_{\\mathbf z\\le c}) \\right]\\ =\\ \\sum\\_{t=c+1}^{\\lvert \\mathbf z \\rvert} \\left[ log \\, p\\_{\\theta} (x\\_{z\\_{t}} |\\mathbf x\\_{\\mathbf z\\_{\\lt t}}) \\right]\\tag{16}

在上式中,设置超参K \\approx \\lvert \\mathbf z \\rvert / ( \\lvert \\mathbf z \\rvert - c)。为了节省内存和加快训练速度,对于没有选择的tokens就不再计算其query representations。

论文中提到XLNet在超过20项NLP任务中碾压了BERT及多数经典模型,非常遗憾的是文章中并没有过多提及XLNet在序列标注任务的上表现。不过腾讯云知识图谱团队正在快马加鞭探索XLNet在人物属性抽取等场景的应用效果,后续也会在实战篇给大家分享出来。

3 业务应用

目前,笔者正聚焦在中文知识图谱构建上,特别是知识抽取相关算法的研究与应用。知识抽取任务包括实体抽取、关系抽取、属性抽取和概念抽取,其中实体抽取、属性抽取以及概念抽取均可以转化成序列标注任务,由此可见序列标注是知识抽取服务的重要基石。在工具建设方面,我们初步沉淀出了知识抽取算法框架,主要包括训练和部署两大模块,并且在人物属性抽取任务上取得了不错的实验效果,具体的实验成果将会在另一篇文章中与大家见面,重要的是我们的知识抽取算法框架预计后续会在公司内部开源,感兴趣的同学请随时与我们联系。

4 未来展望

在接下来,期望在现有知识抽取算法框架的基础上,从两方面优化提升:

(1)不断跟进最新研究进展,持续优化算法框架训练和推理性能。

(2)结合业务需求,不断丰富模型业务场景,且可私有化部署,体现其业务价值。

(3)将知识抽取算法框架开源,让更多的人了解知识图谱构建工作。

最后,限于笔者水平,不到之处请各位同仁不吝赐教,再次感谢!

5 参考文献

  1. 李航. 统计学习方法M. 2012.
  2. 周志华. 机器学习M. 2016.
  3. Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.
  4. Radford, Alec, et al. "Improving language understanding by generative pre-training." URL https://s3-us-west-2. amazonaws. com/openai-assets/research-covers/languageunsupervised/language understanding paper. pdf (2018).
  5. Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).
  6. Yang, Zhilin, et al. "XLNet: Generalized Autoregressive Pretraining for Language Understanding." arXiv preprint arXiv:1906.08237 (2019).
  7. Dai, Zihang, et al. "Transformer-xl: Attentive language models beyond a fixed-length context." arXiv preprint arXiv:1901.02860 (2019).
  8. Ma, Xuezhe, and Eduard Hovy. "End-to-end sequence labeling via bi-directional lstm-cnns-crf." arXiv preprint arXiv:1603.01354 (2016).
  9. Huang, Zhiheng, Wei Xu, and Kai Yu. "Bidirectional LSTM-CRF models for sequence tagging." arXiv preprint arXiv:1508.01991 (2015).
  10. The Annotated Transformer. Harvard NLP
  11. The Illustrated Transformer. Jay Alammar
  12. What is XLNet and why It outperforms BERT. BrambleXu
  13. Understanding LSTM Networks. colah
  14. NLP Gets A Surprise Addition As XLNet Outperforms BERT. Analytics India Magazine
  15. Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour. Priya Goyal, Piotr Dollár, Ross Girshick, Pieter Noordhuis, Lukasz Wesolowski, Aapo Kyrola, Andrew Tulloch, Yangqing Jia, Kaiming He

*注:在文章撰写的过程中,参考了大量的资料,或列出来了或遗漏了,在此一并致谢!*

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
语言计算:序列标注前沿技术研究
大家知道,序列标注、文本分类、句对关系判断和生成式任务并称自然语言处理四大基础技术支柱。序列标注作为最基础的语言计算任务已在命名实体识别、词性标注、分词以及属性...
<<上一篇
下一篇>>