Press "Enter" to skip to content

复旦大学桂韬:Uncertainty—Aware Sequence Labeling

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

人工智能论坛如今浩如烟海,有硬货、有干货的讲座却百里挑一。“AI未来说·青年学术论坛”系列讲座由中国科学院大学主办,百度全力支持,读芯术、paperweekly作为合作自媒体。承办单位为中国科学院大学学生会,协办单位为中国科学院计算所研究生会、网络中心研究生会、人工智能学院学生会、化学工程学院学生会、公共政策与管理学院学生会、微电子学院学生会。 2020 年6 月20日,第16期“AI未来说·青年学术论坛”NLP前沿技术及 产业化线上专场论坛以“线上平台直播+微信社群图文直播”形式举行。 复旦大学桂韬 带来报告《 Uncertainty—Aware Sequence Labeling 》。

 

桂韬,复旦大学自然语言处理实验室博士生,导师为张奇和黄萱菁教授。

 

报告内容: 桂韬在本次报告中主要分享了他近期在文本序列标注方面的工作。

 

 

Uncertainty—Aware Sequence Labeling

 

 

首先,桂韬介绍了问题的背景。 序列标注是比较广泛的任务,它包括分词、词性标注、命名实体识别等子任务,大致形式是通过输入一段文本,给文本中每个单词赋予相应的语言学的标签。 目前序列标注的流程一般分成两步,第一步是通过编码层将相应输入文本编码为有效的上下文表示,第二步再通过标签解码层对相应单词对应标签进行解码。

 

在文本编码的时候,可以根据实际任务需求设计不同的模型。 比如对于NER的任务,每个单词字符组成结构可能有比较大的作用,所以提出基于字符结构循环神经网络建模上下文。 循环神经网络速度比较慢,所以有人把卷积神经网络引入文本建模,从而提高速度。 近期比较火的预训练模型可以将大量无标注语料知识引入编码文本。

 

 

而对于标签解码, 由于序列标签之间有着非常强的相互依赖关系,比如说名词后面很可能接动词,不太可能接冠词,多文档之间标签间有标签间共有关系,所以建模标签长距离依赖对标签解码显得非常重要。

 

目前标签解码的研究比较少,一般常用做法一是利用Softmax直接将文本每一个单词映射相应标签上,第二种利用CRF建模标签转移矩阵,建立标签之间相互依赖关系。 最近一些工作利用神经网络,利用seq2seq的框架来建模标签长距离依赖关系。

 

接下来,桂韬分析了不同标签解码方式的优缺点。

 

第一种是利用Softmax,它的明显优势是可以实现并行解码,但很大缺点是每个单词得到标签是相互独立的,没有建模标签与标签的依赖关系,导致性能不高; 第二种是利用CRF,建模标签间转移矩阵,通过转移矩阵构建整个句子解码时的最大句子得分,这种方式能够建模相邻标签依赖关系,但同时需要依赖维特比解码方式,解码速度比较慢; 第三利用神经网络seq2seq,生成一部分标签,预测当前标签时通过LSTM建模之前标签生成当前标签,这样生成标签实际上建模了当前标签依赖关系,所以具有长距离的标签依赖。 但解码仍然需要串行解码,无法并行,同时会带来错误传播问题,如果一个标签预测错,很可能导致后面标签一直错。

 

 

因此,在并行解码与建立长距离依赖间似乎存在矛盾,桂韬试图寻找两者的结合点。 这就是这项工作的出发点。

 

要解决这个问题,一个非常直观的想法是采用两步框架。 首先用Softmax生成草稿标签,之后用Transformer建立标签与标签依赖关系,对之前生成草稿标签进行修正。 因为Softmax和Transformer都是并行的,它可以实现整体的并行解码,而Transformer也可以通过草稿标签建模标签与标签长距离依赖。

 

但在实验中,桂韬发现了一个棘手问题: Transformer在第二步对草稿标签进行修正时,很有可能将正确标签改错。 如在CoNLL2003数据集上进行的测试,发现利用两步框架时,第一步的草稿标签会有39个会改错,54个被改对。 所以在这种框架下无法避免正确的标签被改错的情况,所以现在要寻找一个indicator,能否第二步修正只修正可能错的标签,正确标签保护起来不要修正。

 

继续通过实验,桂韬发现通过Bayesian神经网络估计模型不确定性,可以非常好地指示哪些草稿标签可能是错的、哪些可能是对的。 在CoNLL2003上的测试集上,他发现当草稿标签预测正确的时候,它的平均不确定性是0.018,如果草稿标签预测错了,那幺它的不确定性超过0.5,错误标签不确定性是正确标签不确定性的29倍。 因此,可以设计阈值,保护预测正确标签,只修正不确定性非常大、很可能会错误的标签,这样可以实现并行解码同时尽量不将正确标签改错。

 

 

接下来,桂韬简要介绍了 Bayeasian 神经网络的基本思想。 对于常见的深度学习神经网络,整个模型参数是确定值,得到标签也是确定的。 而Bayeasian神经网络的模型参数不再是确定值,而是一个个分布,也就是模型参数是变量,最终模型参数值通过分布得到,这样模型输出标签也是一个分布,可以通过标签分布得到整个模型的不确定性。

 

这里一个大的困难是估计参数分布,因为数据集的真实参数分布是不清楚的,为了计算方便可以使用简单的先验分布来逼近真实分布。 具体方法可以采用变分推断,通过最小化假设某种分布,与真正模型参数分布KL散度来估计。 这里为了不增加参数量,通过Bernoulli分布逼近参数分布。 因为Bernoulli分布是0和1采样,所以只要采用Dropout就可以得到Bernoulli分布。 对优化参数得到采样,假设采样t次,可以得到逼近参数分布,然后再对模型标签预测,因为采样次数越多,对模型真正后验逼近越准确,通过最终输出模型标签预测分布去计算熵,可以得到不确定性。

 

 

之后,桂韬介绍了他所提出的具体模型架构。 他将LSTM引入Bayeasian框架,作为第一步生成草稿标签的解码器,并且伴随得到模型不确定性。 这里再设置一个不确定性阈值的超参数,大于阈值的标签很有可能是错误的,让这部分草稿标签进入Transformer层进行修正。

 

 

最后,桂韬介绍了一些实验结果。

 

首先在命名实体识别和序列标注做了测试,模型性能比CRF、Softmax、seq2seq结果好很多。 因为这篇工作主要关于标签解码问题,实际上和文本编码方式不太相关,所以可以用各种复杂文本编码方式建模文本,再用此方式对标签进行解码。 同时对解码速度进行了测试,发现该模型相比其他模型明显快。 另外对不确定性阈值设置进行了实验。 随着不确定性阈值增大,模型逐渐知道怎幺选择修正标签,并达到非常好的效果,而随着不确定性的阈值继续增大,实际上模型会完全选择草稿标签,这样的话性能又会下降。

 

 

由于该框架可以建模非常长文本标签依赖,所以可以扩展到篇章级别的命名实体识别。 例如文章开头有人名,而在中间人名只给了名没有给姓,可能模型单凭句子很难知道是人名,此时可以利用Transformer方式关注到前面的标签,给它做修正,唯一要改正的地方只需要加一个Memory框架,把之前预测标签存起来,可以用Transformer进行查询。

 

 

桂韬也做了一个简单实验来验证想法,测试合适的memory size。 发现只要存一个类似单词标签,通过框架可以得到明显性能提升,如果存的更多可能性能会再有进一步提升,但比较缓慢。

 

 

(整理人:江洲钰)

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注