语言计算:序列标注前沿技术研究
作者:孟辉(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}
整体示意图如下所示:
上述公式中Q,K,V是注意力机制中常见的参数矩阵,更新和使用方法与一般无异,双流自注意力机制的计算架构如下图所示:
双流自注意力机制的实现主要是基于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 参考文献
- 李航. 统计学习方法M. 2012.
- 周志华. 机器学习M. 2016.
- Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.
- 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).
- Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).
- Yang, Zhilin, et al. "XLNet: Generalized Autoregressive Pretraining for Language Understanding." arXiv preprint arXiv:1906.08237 (2019).
- Dai, Zihang, et al. "Transformer-xl: Attentive language models beyond a fixed-length context." arXiv preprint arXiv:1901.02860 (2019).
- Ma, Xuezhe, and Eduard Hovy. "End-to-end sequence labeling via bi-directional lstm-cnns-crf." arXiv preprint arXiv:1603.01354 (2016).
- Huang, Zhiheng, Wei Xu, and Kai Yu. "Bidirectional LSTM-CRF models for sequence tagging." arXiv preprint arXiv:1508.01991 (2015).
- The Annotated Transformer. Harvard NLP
- The Illustrated Transformer. Jay Alammar
- What is XLNet and why It outperforms BERT. BrambleXu
- Understanding LSTM Networks. colah
- NLP Gets A Surprise Addition As XLNet Outperforms BERT. Analytics India Magazine
- 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
*注:在文章撰写的过程中,参考了大量的资料,或列出来了或遗漏了,在此一并致谢!*