如何通俗易懂地让女朋友明白什么是语言模型?

深度学习自然语言处理

一个热衷于深度学习与NLP前沿技术的平台,期待在知识的殿堂与你相遇~
154篇原创内容
公众号

来自:NLP情报局

💘背景

上周末和女朋友去风云再起夹娃娃,原本不会玩的我们在好哥们的指点下竟然夹到了一堆。其中一只娃娃是语言模型BERT的好兄弟,来自芝麻街的“甜饼怪”。于是饭后回到家,我们有了下面的对话。

💘什么是语言模型?

我:亲爱的,今天你夹到了一只甜饼怪耶,还记得我之前和你说过的BERT吗?他们是好兄弟哦,而且甜饼怪也是语言模型Grover的代表。

女友:有点印象,是不是那个小黄人!你们NLPer说的BERT到底是啥呀?

我:BERT是Google发布的一款预训练语言模型,中文全称叫“基于变换器的双向编码器....”

女友:可不可以“说人话” - -!

我:哦,对不起!BERT属于预训练语言模型的一种,那我先从语言模型开始介绍吧,保证用通俗易懂的语言。

女友:这还差不多。

我:先举一个最简单的例子!

假如我刚和你交往没多久,突然有一天我想对你说三个字,又不好意思直说,于是我把中间的那个字先盖住,你看到的变成了:“我[mask]你”

虽然你心中大概率觉得就是那三个字,但也许会猜测有没有别的可能?

这时BERT出现了,他和你说:“让我来帮你看看这小子心里在想啥”。

通过统计我和你之前的一些聊天资料,BERT科学分析得出如下结论:中间的字97%的概率是“爱”,2.5%的概率是“想”,0.01%的概率是“恨”

女友的嘴角微微上扬,“果不出我所料”。

我:当然啦,这只是最简单的demo。再来一个例子,假如夏天我们去爬山避暑,在半山腰发现对面山上有一大片竹林。

才华横溢的女票随口而出一句五言诗:“一望山多竹”,并含情脉脉地看向了我。

鄙人虽然才疏学浅,好在我的专业是自然语言处理,又有BERT这一法宝。我悄悄地把这5个字告诉了他,部署在远程GPU上的BERT瞬间发回5个字:

“能生夏日寒”。

女友:哎呀,对的不错呀。BERT咋这么聪明?

我:不仅如此,BERT还可以根据你指定的主题作出完整的古诗或对联呢!甚至还能编排小说和电影剧情。

当然了,主旨概括、文字翻译、新闻归类这些工作对他而言更不在话下。和文字相关的活,BERT几乎都能干

女友:天呐,这么厉害。

我:现在我来完整解释一下。

所谓语言模型,就是通过观察人类的表达习惯,计算机模型自动统计归纳出一些客观的文字规律。经过总结这些规律,模型一定程度上可以理解人类的语言。

一个优秀的语言模型,无法让你分辨出它到底是人还是机器。

女友:还是没有很懂,是怎样的规律呢?

我:假如我们现在从网络上收集到了100W个句子,其中有一个句子是:“今晚我想吃香芋西米露”。

语言模型的学习任务就是统计语言序列 “今 / 晚 / 我 / 想 / 吃 / 香 / 芋 / 西 / 米 / 露”的概率,即:

简单的说,语言模型的目的是判断一个句子是否正常,是不是是人话。例如:

P(今 / 晚 / 我 / 想 / 吃 / 香 / 芋 / 西 / 米 / 露) > P(香 / 芋 / 西 / 米 / 露 / 今 / 晚 / 想 / 吃 / 我)

语言模型认为,后面一句话不是正常的人话,几乎不会在我们的生活中出现。依此类推,模型会对100W个句子分别计算出现的概率。

女友:哦,好像有点明白了~

我:嗯嗯,这就是最早期的基于统计的语言模型。当然啦,上面的序列计算量有些大,实际中我们往往会对句子先分词,把“今晚我想吃香芋西米露”切分成“今晚 / 我 / 想 / 吃 / 香芋 / 西米露”。

女友:这不就是我们小学学习的组词嘛。

我:对!分词是NLP最基础的概念之一,看来你已经能初步理解啦。

分词的好处是我们可以以词为粒度,统计每个词彼此先后的顺序、分布的规律,显著减少计算量。例如“香芋”后跟“西米露”的概率要远大于“金露”。

女友:明白分词的含义啦。

我:要计算一个句子中所有词出现的概率仍然比较困难,所以实际中我们会继续优化,使用基于n-gram的统计方法,以及随后出现的神经网络语言模型。

这些内容涉及了一些专业知识,下一次我们再来讨论。要是感兴趣,我可以先给你一些资料哦[1]。

女友:好。

💘预训练语言模型和语言模型又有什么区别?

女友:为什么你一开始时说BERT是预训练语言模型呢,他和上面的语言模型难道还不一样?

我:本质是一样的,但是实现方法有一些不同。

女友:怎么说?

我:BERT是2018年底开发出来的语言模型,用到了当时NLP最前沿的技术。BERT模型有3个核心特点:

(1)基于self-Attention的Transformer架构;(2)采用的MLM预训练任务符合语言模型本质;(3)训练语料庞大,多达33亿文本,见多识广。

女友:不行,又开始懵了。

我:不急哈,我来一个个说明。

关于注意力机制,你只要先了解这是一种非常高效的神经网络。假如现在有一个很长的句子,从头读到尾,很可能句子一开始说的内容我们已经忘了。

但是Attention没有这个烦恼,在它看来句子中任意两个位置的词都是相邻关系。所以我们说Attention有很强的“记忆能力”!

女友:哦,原来是记性好。那MLM呢?

我:MLM(Mask Language Model)其实很好理解。正常的一句话,针对其中的每个字以15%的概率掩盖,再让BERT预测被盖住的字原本是什么。

以苏东坡的诗“欲把西湖比西子,淡妆浓抹总相宜”为例。

经过随机掩盖,原诗可能变成了“欲把西[mask]比西子,淡[mask]浓抹总相宜”。

BERT的主要训练任务就是将文本经过层层Transformer编码后,根据没有被掩盖的上下文还原[mask]位置的字。

女友:那不会出现有很多种可能的表达吗?

我:中文版BERT的词表一共有20,000多个字符,常见的中文字符只有2000-3000个。假如让模型随机猜,猜中的概率最多只有1/2000。

女友:这也太低了吧~

我:模型不会瞎猜啦!他会根据上下文缩小范围。

通过对海量文本的学习,BERT知道和“西”组成的词只有“西瓜、西湖、西红柿、西溪、西北...”等十几种,再结合上下文语境,能快速锁定第一个[mask]对应的字符是“湖”。

即便有多种可能组合,BERT也只会选择概率最大的字符(“湖”在这个语境中的概率可能大于90%)。

女友:所以BERT最终会输出“欲把西[湖]比西子,淡[妆]浓抹总相宜”?

我:就是这样。假如刚开始训练时BERT预测错了,MLM对应的损失函数(CrossEntropy)就会产生一个比较大的值,对模型进行惩罚;下一次预测对了,损失值就变成0。

BERT会往损失值最小的方向学习,也就越学越聪明啦!

女友:好聪明呀。为什么会选择MLM这样一个训练任务呢?

我:MLM任务的灵感来自于人类做完形填空。挖去文章中的某些片段,需要理解上下文来猜测这些被掩盖位置的内容。这样的任务符合咱们前面介绍过的语言模型的本质。

女友:猴。

我:第3点训练语料庞大更好理解。相比前面提及的100W文本,明显33亿语料包含的信息更丰富,BERT几乎能学到每一个词在各种上下文语境中的用法。

正所谓是大力出奇迹。

女友:一个人读了33亿文本规模的书,估计也是半个国学大师了吧

我:哈哈很有可能。

💘语言模型有什么用?

女友:你说了这么多,BERT在实际中有什么用?

我:只要和自然语言相关的场景(其实还包括图片、音频等),几乎都有BERT的用武之地。从最常见的新闻分类、相似句判断到机器阅读理解、问答系统等等。

女友:你刚说问答系统,那是不是可以训练一个BERT和我聊天?

我:可以,闲聊属于问答系统的一个重要分支,有很广泛的应用场景。

女友:我问什么BERT都能回答吗?

我:这需要关注2个问题:训练语料和训练任务

BERT本质是一个庞大的语言模型,所以给一段文本让他分类,或者判断是真/假新闻,很符合他的预训练目标。但如果想和他聊天,我们需要提供新的目标让BERT学习。

女友:啥目标?

我:比如我们提供上句S1,让BERT预测下句S2;通过这样的训练方式,他就具备了一定的问答能力。

如果你提供给他的是百度百科语料以及相应的“问题-答案“句子对,他就是一个百科问答型BERT,能帮助你解决一些常见的FAQ。

如果提供的是聊天相关的文本,他就是一个闲聊类型的BERT,能帮你解闷甚至讲笑话逗你开心。

女友:这么神奇!

什么地方可以安装BERT啊?

我:BERT模型可以部署到公众号、小程序、手机应用app、网页甚至嵌入到已有的硬件产品中哦,不限载体。

也许未来BERT会在问答机器人、智能家居中大显身手。

💘可以自己训练一个BERT吗?

女友:BERT好好玩,我可以自己训练一个吗?

我:可以的,不过需要先学习一些工具哦,比如Python、基础的NLP知识,看一看BERT的论文...

女友:啊,这么麻烦= =!有没有办法快速上手

我:有。我可以用tf/torch帮你搭好训练框架,告诉我你想和他聊天的主题,任务型 or 闲聊 or FAQ问答?

再帮你爬取一些语料,部署成一键训练!点击“开始训练”,过几小时就会有一个专属你的BERT诞生啦!

女友:好,今晚帮我训练一个!

我:这么积极呀,遵命...

女友:下一次我还要去夹娃娃,争取夹回一个“BERT”

💘后记

(0)

相关推荐

  • 开启NLP新时代的BERT模型,是怎么一步步封神的?

    NLP领域的伸手党们,上个月简直像在过年! 不仅号称谷歌最强NLP模型的BERT如约开源了,而且最新版本还支持中文,可以用于中文命名实体识别的Tensorflow代码!最关键的是,这个强大的模型还横扫 ...

  • ICLR 2020 | 用ELECTRA实现更高效的NLP模型预训练

    背景 题目:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators 机构:斯坦福.Google Bra ...

  • 当BERT遇上搜索引擎

    前两天刷到一篇有意思的paper,文中将信息检索工具Anserini和BERT结合,实现了一个开放域的问答系统. 如图所示,论文的主要创新点是将BERT和Anserini整合,利用外部知识库(维基百科 ...

  • 字幕组时代落幕,翻译的未来可能是?

    随着新媒体平台的兴起,人工智能技术已经大大提高了信息内容的创作,而个性化推荐算法的信息又为信息内容的分发提供了极大的便利,这其中,文本生成技术非常重要,因为它在很多的应用场景有广泛的应用,比如机器翻译 ...

  • 阿里多语言翻译模型的前沿探索及技术实践

    分享嘉宾:张志锐博士 阿里达摩院 算法专家 编辑整理:曾辉 出品平台:DataFunTalk 导读:本文的主题为阿里多语言翻译模型的前沿探索及技术实践,将分三个部分介绍阿里巴巴在机器翻译方面的工作:首 ...

  • ENRIE:知识图谱与BERT相结合,为语言模型赋能助力

    来自:朴素人工智能 感谢清华大学自然语言处理实验室对预训练语言模型架构的梳理,我们将沿此脉络前行,探索预训练语言模型的前沿技术,红框中为已介绍的文章,绿框中为本期介绍的模型,欢迎大家留言讨论交流. E ...

  • 赛尔原创@Findings | 中文预训练语言模型回顾

    论文名称:Revisiting Pre-trained Models for Chinese Natural Language Processing 论文作者:崔一鸣,车万翔,刘挺,秦兵,王士进,胡国 ...

  • ICLR 2020 | NLP 预训练模型的全新范式:对比学习

    生成式模型有着其天生的优势,即学习到丰富的特征,但它也有广受诟病的确定.判别式目标函数--长期以来被认为是无用的.这是因为,判别式模型通常不是直接拟合原有的分布流形,学习到的特征较为单一.但是,最近一 ...

  • Facebook AI Research的XLM模型:将BERT扩展成跨语言模型

    近年来,预训练语言模型的出现极大地推动了自然语言处理领域的发展.相较于普通的词向量,诸如ELMo, GPT, BERT将上下文信息也编码到词向量以及文本向量中,从而收获了比普通词向量更强的表达能力,在 ...

  • 【NLP】GPT:第一个引入Transformer的预训练模型

    目前两种最重要的预训练语言模型,一种是前面介绍过的BERT,另外一种就是GPT. GPT出了两个版本,GPT1.0和GPT2.0,GPT2.0相对于GPT1.0差别不大,可以认为是它的增强版.本篇介绍 ...

  • NLU 新里程碑,微软 DeBERTa 登顶 SuperGLUE 排行榜,显著超越人类

    机器之心报道 参与:小舟.陈萍 在最新的 NLU 测试基准 SuperGLUE 中,微软提出的 DeBERTa 登顶榜单,并超越人类. 微软最近通过训练更大的版本来更新 DeBERTa 模型,该版本由 ...