博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你和语言模型,谁的填空能力更强?
阅读量:2242 次
发布时间:2019-05-09

本文共 6255 字,大约阅读时间需要 20 分钟。

点击蓝字

关注我们

AI TIME欢迎每一位AI爱好者的加入!

讲者提出了填空语言模型(Blank Language Model, BLM),该模型通过动态创建和填充空白来生成序列。空白用于控制要扩展序列的那一部分,使BLM成为各种文本编辑任务的理想选择。该模型可以从单个空白或在指定位置带有空白的部分完成文本开始,迭代地确定要在空白中放入哪个单词以及是否插入新的空白,并在没有新的空白填充时停止生成。使用边缘似然的下界可以有效地训练BLM。在填充缺失文本的任务上,BLM在准确性和流利性方面均明显优于所有其他方法。在情感迁移和修复古文字的实验中,证明该框架具有广泛的应用潜力。

沈添笑:麻省理工学院电气工程与计算机科学系博士生,导师是Regina Barzilay和Tommi Jaakkola教授。她的研究兴趣是自然语言处理和机器学习,尤其是文本生成。

一、动机:传统语言模型的局限性

传统的语言模型通常是从左到右对文本序列进行建模,其模式是,首先生成第一个词,然后以第一个词作为condition来生成第二个词,继而以第二个词为condition生成第三个词,如此迭代计算后一个词。

该方法的优势在于算法简单、有效。但大多情况下,并不需要从头开始生成文本,而是已有部分文本,想自动生成剩下的部分内容。比如,文本编辑,是基于已有的draft,修改文本中任意位置的内容;或是template filling,针对一些表格等具有固定格式的文件,比如医疗或者法律文件等进行填空;或是text restoration,比如一些文件可能在任意位置缺失相关内容,需要做的是复原损失部分。由于Left-to-Right Language Model仅仅考虑blanks左边的文本语境,不能很好地对这些应用进行建模。

图1 left-to-right language model 的原理及应用

因此,讲者提出了Blank Language Model(BLM),其输入形式为任意文本,blanks可存在于文本的任意位置;每一个blank可以对应任意多个单词;且BLM模型会结合上下文语境决定需要填充几个单词。BLM与Mask Language Model的区别在于,Mask Language Model的一个mask只能对应一个单词,因此如果预先不知道blank中间丢失多少个单词,就不能使用Mask Language Model来实现。

图2 Blank Language Model算法的优势

二、实现:什么是BLM?

1)BLM工作原理介绍

BLM具体是如何实现填空的呢?首先存在一个画布,有单词和blank,其中blank用来控制单词能被放置的位置;然后BLM模型在这个画布上动态进行修改,每一步都会选择一个待填充的blank。

由于每个blank可以对应任意数量的词,因此当填充这个word w之后,还要决定是不是只填一个字,或者在w左边、右边、还是两边各补上blank。由此每个blank就可以继续迭代,且被扩展成任意多个词,当没有blank留下,模型达到终止条件。其实现步骤如图3所示。

图3 Blank Language Model的实现步骤

讲者举如下例子,进一步说明模型的实现步骤。原句是They also have ____ which ____.通过从canvas中一步步选择合适的word和blank,直至句子中没有新的blank生成为止,实现句子填空。

继而,讲者概括BLM的工作方式,类似于一个Grammar,如图4所示。其与传统语法Context-Free Grammar的区别在于:讲者所提出的模型在Production rules上面的概率分布是取决于模型参数和当前的context

  

图4 例子讲解及语法梗概

2)BLM框架介绍

首先采用transformer模块,将input通过这个transformer以得到一系列的representation,每个representation包含有其context信息;

然后将所有blank位置的representation通过Linear project和softmax得到blanks上的distribution,选择其中一个(假设是第二个);

进一步将被选中的blank representation投影到整个vocabulary,由此可预测一个词,比方说预测really;

最后,将blank representation和被预测词的word embedding进行拼接,都输入给一个MLP进行如图所示的四种情况分类。假设是第四种情况,得到____ really ____,然后将其fill到第二个Blank中,并继续这个过程直至没有新的blank生成。

图5 BLM框架结构介绍

从一个初始的blank到一个没有blank的complete text这个过程称为trajectory,包括每一步的canvas和action;每一步的action包括了choose a blank,predict a word 以及create new blanks。

如果一个句子有n个单词,那么会有n!种不同的trajectory都可以生成它,每一种trajectory对应着不同的word insertion order。如图6所示的trajectory就对应着word insertion order “3 1 10 6 2 8 4 7 5 9” 。

因此,生成一个句子x的概率就是以所有trajectory/word insertion order生成它的概率之和,公式中的Sn为所有的n排列。而给定order,就可以确定每一步的canvas和action,概率可相应分解为每一步的概率的乘积。

图6 BLM下sentence的likelihood介绍

如何高效的训练BLM呢?讲者对上述的likelihood进行估计,对等式两边取log,并借助图7中蓝色不等式可得到最终评估的loss。但同时讲者介绍到该训练方式与left-to-right language model相比并不高效,原因在于:Left-to-Right Language Model在一个pass中是同时计算了n个词的Loss,而上述公式在一个pass中只计算了一个action loss。

基于此,讲者进一步介绍到ctx,o只与word insertion order o的前t个词有关,因此可在一个pass中,将前t个order相同且在t+1时不同的trajectory进行组合,共同计算loss。同时由于EOt+2:n不会影响第t步的action和canvas,则可改写最终的loss表达,实现在一个pass中计算期望n/2个action loss。

图7 BLM的train loss 推导

综上所述,BLM的training的规则如图8所示。讲者通过一个实例,详细介绍了模型的训练过程,给定sentence x,先sample t,再sample order o1:t,由此可构建动态画布ctx,o,并按照图7的loss进行训练。

图8 BLM规则总结以及实例介绍

训练好BLM后,可采用greedy decoding或beam search来填充输入文本中的空白。需要注意的是,greedy decoding/beam search寻找的不是具有最大边缘似然p(x;θ)的sentence,而是具有最大联合似然p(x;o;θ)的sentence 和trajectory。

三、实验

讲者主要进行了4种不同的实验验证模型的有效性,分别为Text infilling,Ancient text restoration,Sentiment transfer以及Language modeling。下述针对不同的实验进行阐述。

1)Text infilling

选择Yahoo Answers(100k的文档,且最大长度的为200个单词)作为实验数据集;在该数据集上随机mask掉比例为r的tokens,将连续的masked tokens用blank代替,由此得到的数据集作为测试数据集。在评价指标方面,分别选择Accuracy和Fluency来评价模型的有效性。具体是指通过计算初始文档与模型filling后文档间的BLEU score表征Accuracy;采用经过预训练的Left-to-Right Language Model计算perplexity表征Fluency。

讲者分别选择以下模型作为在Baseline models:

a.BERT+LM

指采用BERT模型得到每一个blank的representation,并将其输入给Left-to-Right Language Model生成不同blanks对应的tokens。

b.Masked Language Model with oracle length (MLM)

由于模型需要知道每一个blank对应单词个数,因此给定oracle length数量的masked tokens来代替blanks;此外MLM模型同时预测masked tokens时是相互独立的,并没有考虑filling的部分之间的consistency,因此使用most-confident-first heuristic来autoregressively一个一个进行填写。

c.Insertion Transformer (Stern et al., 2019)

该模型支持动态单词插入,与BLM不同,该模型可在所有位置插入,因此强制模型只在指定位置进行插入,避免出现较高的失败率。

d.Seq2seq-full/fill (Donahue et al., 2020)

指直接输出infill之后的句子序列,或者直接输出代替blanks的tokens并用分隔符“|”划分。这两种方法具有较高的失败率。

a)

b)

图9 Text infilling 实验结果

实验结果如图9所示,其中图a)说明当mask ratio 越来越高时,所有模型的BLUE score都会降低,同时BLM表现出最高的BLUE score;图b)中BLM与InsT模型的perplexity要低于original data的perplexity,且当mask ratio 越来越高时,模型最终的output比原始data要更加typical,则perplexity会越来越低。

2)Ancient text restoration

选择Ancient Greek inscriptions(18M的字符/3M的单词)作为数据集,且假设需要被复原的字符数已知。同时选择Pythia模型(字符级的seq2seq模型)以及Pythia-word模型(同时使用字符和单词的representation)作为baselines。实验结果如下图所示。

图10 Ancient text restoration 实验结果

实验结果表明,human的错误率达到了55%以上,而模型的表现要好很多。在只有一个missed的slot并且mask ratio 只有1%的时候,BLM模型较差一些;而当有很多missed slot 且mask ratio较高时,Pythia-word模型的character 错误率增长很快,而BLM模型的character 错误率较稳定,没有显著的提高。

3)Sentiment Transfer

其做法通常为两步:首先,训练一个情感分类器,识别出sentence中的情感词并将其mask掉;然后,在positive和negative的文本上分别训练两个BLM,完成上述masked句子的特定情感填充。

图11 Sentiment Transfer 实验结果

选择Yelp评论集作为实验数据集,选择MLM作为对比模型,实验结果显示,两种模型的Accuracy相差不多,而BLM的BLEU score较MLM要高很多。

4)Language Modeling

在计算marginal likelihood时需要求和,但无法准确计算求和结果,因此采用Monte-Carlo进行估计。选择Penn Treebank(1M的tokens),WikiText-2(2M),WikiText-103(103M)作为实验数据集,结果表明,BLM模型的perplexity与早期的LSTM相差不多,但与近期出现的transformer模型具有较大差距。

表1 不同数据集上的perplexity

四、结论与展望

讲者提出了BLM可以用来灵活地生成文本,其生成方式是动态创建以及填充blanks。实验表明BLM模型在Text infilling,Ancient text restoration和Sentiment transfer上具有很好的表现。

BLM也具有广阔的应用前景,比如Template filling,information fusion以及assisting human writing;同时BLM也可被扩展为conditional model,可以用来edit和refine机器翻译,或者在dialogue中根据给定内容生成一句话;最后可以探究BLM跟MLM/BERT在representation的学习上的差异性。

图12 结论与展望

参考文献:

Mitchell Stern, William Chan, Jamie Kiros, and Jakob Uszkoreit. 2019. Insertion transformer: Flexible sequence generation via insertion operations. arXiv preprint arXiv:1902.03249.

Chris Donahue, Mina Lee, and Percy Liang. 2020. Enabling language models to fill in the blanks. arXiv preprint arXiv:2005.05339.

 

论文地址:

https://arxiv.org/pdf/2002.03079.pdf

Github地址:

https://github.com/Varal7/blank_language_model

  e           m     t

往期精彩

 AI                i

整理:刘美珍

审稿:沈添笑

排版:岳白雪

AI TIME欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你!

请将简历等信息发至yun.he@aminer.cn!

微信联系:AITIME_HY

AI TIME是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。

更多资讯请扫码关注

 

(直播回放:https://b23.tv/0bsYZJ)

(点击“阅读原文”下载本次报告ppt)

转载地址:http://wggbb.baihongyu.com/

你可能感兴趣的文章
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>