《Hello,World公开课》基于预训练语言模型的对话生成

开课吧开课吧科科2021-03-25 17:16

这几年,基于预训练语言模型的对话生成以及成为NLP研究领域中的热门话题。BERT、ELMo、GPT等模型层出不穷,3月24日,开课吧《Hello,World公开课》邀请清华大学计算机系博士后郑老师,让他为我们详解基于预训练语言模型的对话生成。话不多说,赶快搬好小板凳来看吧!

什么是对话系统

说起NLP和对话系统,图灵测试是绕不开的话题,所谓的图灵测试是指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。

随着图灵提出了这个著名测试,各大公司为了通过这个测试,纷纷推出了自家的智能对话系统来挑战图灵测试,这里面就有我们熟悉的产品,比如苹果Siri,微软小冰等。

对话系统

在上面所有的明星对话系统如果按领域来分,按照回复生成方式分类可以分为检索式对话系统、生成式对话系统、检索式 + 生成式对话系统三种。

所谓检索式对话系统就是在语音库种检索遍历出和问题最相近的语句并回复。这类系统核心难点是文本匹配模型,如何找出与它语音最相近的回答,这种模型不是我们这次关注的重点。

接下来我们来看看生成式对话系统,这类系统的目标是通过概率统计的问题,建立关于对话回复的概率分布,在给定问句的情况下,捕捉生成答句的概率。

对话系统

预训练语言模型

在了解了对话系统的基本概念后,再来看看预训练语言模型,从字面意思看预训练语言模型可以分为预训练和语言模型两个部分,这是两个独立的技术体系。

语言模型

语言模型的意思是判断给定句子( w=w1,w2,…,wn  )的出现概率的模型。概率大的句子往往是更贴近正确的答案。但这就带来了一个问题,如何来计算这个概率,最简单的想法是我们遍历中文语义库中所有的句子,再遍历这个句子出来的次数,做个除法后就会得到一个概率。但是我们都知道,这种笨方法在工程上是行不通的。

语言模型

那么有没有什么改进办法?在这里就又要用到概率论与数理统计的知识了,一句话出现的概率可以被分解成条件概率乘积的形式。利用条件概率性质上面的公式可以写成下图乘积的形式

语言模型

这在一定程度上将问题做了简化,对于等式右边的条件概率乘积,我们就可以用神经网络来做拟合,比如前馈神经网络,循环神经网络RNN,到现在的Transformer模型等等,技术的演进给我们带来了更好的拟合效果。

对话系统

Transformer模型

预训练

介绍完语言模型,我们再来看看什么是预训练,预训练是属于迁移学习中的一种技术,也就是说我们在一个任务中先预训练这个神经网络的参数,再在另一个任务中微调这个神经网络的参数,就会得到非常好的效果。

常用的预训练模型有ELMo、BERT、GPT等等,以ELMo为例,它是以Lstm模型为基础从左到右和从右到左分布训练,这样会得到非常好的初始化参数。

对话系统

基于预训练语言模型的对话生成

在了解语言模型和预训练技术后,接下来就简单了,我们只需通过预训练技术来初始化语言模型。

就可以了,还记得之前我们说过的语言模型的公式么,生成式对话模型就是在此基础上加上了X这个条件。

生成式对话模型:

对话模型

有了这个,就可以使用神经网络的技术来拟合条件概率的各个乘积项,比如前馈神经网络,RNN、Transformer等。

下图就是就是一个预训练语言模型,前面我们有说到,比起语言模型,生成式对话模型是增加了X这个条件项,如果我们增加更多的条件下,比如下图所示的style,persona等信息,这个模型训练出来的结果会更强大。

语言模型

讲师介绍

郑老师,清华大学计算机系博士后,从事对话系统相关研究,在AAAI,EMNLP,IEEE/ACM TASLP等国际顶级会议与期刊上发表论文数篇。

《Hello ,World公开课》是由开课吧推出面向广大开发工程师的免费加餐课,我们希望能搭建起一座桥梁,将业内的最热门的技术,最好的解决方案一起打包免费送给你。无论你是初入职场的应届生,还是准备升职加薪的职场精英,相信这里都有你需要的内容。

更多《Hello,World公开课》尽在开课吧广场动态信息频道!

有用
分享