点击蓝字

关注我们

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)

你和语言模型,谁的填空能力更强?相关推荐

  1. 7XX元一线P35,华硕P5K-SE VS技嘉P35-DS3L谁超频能力更强?

    标题:★7XX元一线P35,华硕P5K-SE VS技嘉P35-DS3L谁超频能力更强?   <script></script> [荐,﹎|無銘指|] <script&g ...

  2. 了不起的Chrome浏览器(6):Chrome 94开始WebGPU试用,Web的图像渲染及机器学能力更强了

    9月21日正式发布的Chrome 94,带来了哪些有意思的新特性呢? 背景 十多年来,Web技术突飞猛进,其中Chrome功不可没,了解Chrome可以帮助我们理解前端行业的发展趋势. 因此,我将以& ...

  3. 有没有比图灵机能力更强的计算模型?

    有,而且还不少.他们被称为超计算(Hyper computation)模型. 超计算,是一个研究比图灵机计算能力更强的计算能力的计算机器的理论计算机科学分支. 主要有以下部分模型: A.谕示机. (O ...

  4. 一句话生成数字人形象、昆仑芯2量产…百度大脑升级7.0,王海峰:技术更强了门槛却更低...

    梦晨 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 百度和央视又联手在直播现场上演黑科技了. 百度CTO王海峰只说了一句话,就给主持人整出了个数字"孪生兄弟". 更厉 ...

  5. 服务器安全股v4.0正式版发布 防火墙效能更强

    2019独角兽企业重金招聘Python工程师标准>>> 6月24日,服务器安全狗v4.0正式版发布. 超强驱动,全线优化 服务器安全狗全方位兼容驱动V2.0震撼上线,由内而外全面提高 ...

  6. 手机芯片进入7纳米时代!高通确认年内发布,搭载5G,更强AI

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 7纳米,芯片界的新潮流,手机性能变革的又一次跃迁. 现在,国产手机最依赖的高通骁龙,确认即将推出的旗舰移动平台将是采用7纳米制程工艺的系统 ...

  7. 分布式缓存服务DCS:企业版性能更强,稳定性更高

    摘要:企业版性能指标达到业界TOP1,行业领先30%,内核态实现真正多线程. 一.背景介绍 近年来,随着各行业业务需求急速增加,数据量和并发访问量呈指数级增长,原来只能依附于关系型数据库的传统&quo ...

  8. 计算机与人脑_人脑和计算机相比,谁具有更强的能力?听完科学家的解释恍然大悟...

    人类是地球唯一的智慧生命,是站在地球生物链顶端的生物,也是地球万物的主宰.人类之所以能够成为地球的霸主,不是依靠我们的身体力量,事实上人类的身体相比于很多动物是处于弱势,人类依靠是自己的智慧,而智慧的 ...

  9. WIFI的2.4GHz与5GHz频段,并非5GHz穿墙能力更差

    两个频段WiFi的穿墙能力 并非5Ghz穿墙能力更差.5GHz信号的波长要比2.4GHz信号的要短,而波长越短的电磁波穿透力就越强.但因为频率越高消耗在穿透上的能量越大,导致信号浪费损失的也就越多,所 ...

最新文章

  1. java面试题_阿里大厂流出的数百道 Java 经典面试题
  2. jQuery之load方法
  3. 又酸了!腾讯员工福利再升级:入职满15年可“提前退休”
  4. 解决SQL server不支持utf8,php却用utf8的矛盾问题
  5. 基于php的织梦cms新闻发布,DedeCms
  6. 实验楼Python项目
  7. LED显示驱动(三):显示驱动底层学习小结
  8. CSS3_线性渐变(linear-gradient)+ 盒子阴影(box-shadow)
  9. AI2021下载 Illtrator2021安装教程
  10. 练习-Java类和对象之包的定义
  11. python问题:IndentationError:expected an indented block错误
  12. menu在python中的意思_Python-Tkinter 组件之Menu
  13. python判断为空行_Python pandas.DataFrame 找出有空值的行
  14. a到z的ascii码值是多少_大小写字母和数字的ascii码值是多少
  15. android传感器数据流程
  16. Android 开发之Loading
  17. 【重磅】全行业事理图谱V3.0正式发布:基于实证的由因求果、由果溯因,因果路径发现
  18. GNU Linux shell中如何进行各进制编码间(二进制、8进制、16进制、base64)的转换
  19. 从IT视角审视企业经营,B2B行业CIO谈如何从“成本中心”转到“增长中心”?
  20. 类型转换异常:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.

热门文章

  1. Spring Data JPA/Hibernate 运行期动态模型、动态实体建表、动态字段查询的方式
  2. 机票网络售票模拟系统(嵌入式部分)
  3. android内核函数,Android display架构分析三-Kernel Space Display架构介绍
  4. 什么是毫米波雷达?飞睿科技雷达传感器,雷达感应技术
  5. Optimized Cost per Click in Taobao Display Advertising - 淘宝 OCPC 阅读笔记
  6. 零基础学 Python 之前,你该了解这些。
  7. access突然需要登录_登录信息提示
  8. AARRR模型分析方法
  9. 微型计算机外部设备接口,第五章 微型计算机输入输出接口
  10. 计算机主板复位电路的组成,教你认识液晶彩电主板中的复位电路