Press "Enter" to skip to content

搜出来的文本:基于BERT的文本采样

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

 

 

©PaperWeekly 原创 · 作者|苏剑林

 

单位|追一科技

 

研究方向|NLP、神经网络

 

从这一篇开始,我们就将前面所介绍的采样算法应用到具体的文本生成例子中。而作为第一个例子,我们将介绍如何利用 BERT 来进行文本随机采样。所谓文本随机采样,就是从模型中随机地产生一些自然语言句子出来,通常的观点是这种随机采样是 GPT2、GPT3 这种单向自回归语言模型专有的功能,而像 BERT 这样的 双向掩码语言模型() 是做不到的。

 

事实真的如此吗?当然不是。利用 BERT 的 MLM 模型其实也可以完成文本采样,事实上它就是上一篇文章所介绍的 Gibbs 采样。这一事实首先由论文《BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model》 [1] 明确指出。论文的标题也颇为有趣:“BERT 也有嘴巴,所以它得说点什幺。”现在就让我们看看 BERT 究竟能说出什幺来。

 

 

采样流程

 

首先,我们再次回顾上一篇文章所介绍的 Gibbs 采样流程:

 

Gibbs 采样:

 

初始状态为,t 时刻状态为。

 

通过如下流程采样出:

 

 

均匀地从中采样一个 i;

 

(即将的第 i 个位置替换为 y 作为)。

 

 

其中最关键的一步,就是的计算了,它的具体含义是 “通过除去第 i 个元素后的所有 l-1 个元素来预测第 i 个元素的概率” ,了解 BERT 的读者应该都能明白过来:这不正是 BERT 的 MLM 模型所要做的事情吗?所以,MLM 模型与 Gibbs 采样结合起来,其实就可以实现文本的随机采样了。

 

所以,将上述 Gibbs 采样流程落实到基于 MLM 的文本采样中,流程如下:

 

MLM 模型随机采样:

 

初始句子为,t 时刻句子为。

 

通过如下流程采样出新的句子:

 

 

均匀地从中采样一个 i,将第 i 的位置的 token替换为 [MASK],得到序列;

 

将送入到 MLM 模型中,算出第 i 个位置的概率分布,记为;

 

从采样一个 token,记为 y;

 

将的第 i 个 token 替换成 y 来作为。

 

 

读者或许留意到了,该采样流程只能采样出固定长度的句子,不会改变句子长度。确实如此,因为 Gibbs 采样只能实现用某个分布中进行采样,而不同长度的句子事实上已经是属于不同的分布了,它们理论上是不存在交集的 ,只不过通常我们我们建立语言模型时,是直接用自回归模型统一建模不同长度的句子分布,以至于我们没有察觉到“不同的句子事实上属于不同的概率分布”这个事实。

 

当然,要解决这一点也不是不可能,《BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model》 [2] 原论文就指出,可以将初始句子设为全部都是 [MASK] 的序列,这样我们就可以事先随机采样一个长度 l,然后以 l 个 [MASK] 为初始句子来开始 Gibbs 采样过程,从而得到不同长度的句子。

 

 

参考代码

 

有了现成的 MLM 模型后,实现上述 Gibbs 采样其实是一件很简单的事情了,下面是基于 bert4keras 实现的参考代码:

 

Gibbs 采样参考代码:

 

https://github.com/bojone/bert4keras/blob/master/examples/basic_gibbs_sampling_via_mlm.py

 

下面是一些例子:

 

初始句子:

 

科学技术是第一生 产力。

 

采样结果:

 

荣耀笔记本开箱怎幺样?

 

微信记录没用被怎幺办?

 

无法安装浏览器怎幺办?

 

epf 转换器 a7l 怎幺用?

 

没有安装浏览器怎幺办?

 

荣耀笔记本充电怎幺用?

 

无法打开 asp. net 怎幺办?

 

没有安装浏览器怎幺办?

 

无法重启浏览器怎幺办?

 

ro 汉巴换 mac tv 版怎幺用?

 

初始句子:

 

北京新增 3 例本地确诊病例和 1 例无症状感染者

 

采样结果:

 

澳门录得 233 宗 h1n1 感染案例和 13 宗放射性感染。

 

庆祝仪式是学院绘画、钢铁工参与创作的盛会。

 

庆祝仪式后吉卜力平台其他游戏也参加了庆祝。

 

临床试验发现中的 g 染色体多来自胃肠道感染。

 

临床试验发现,人们通常真正享受阴蒂的快感。

 

庆祝模式在吉卜力平台其他游戏中更加与庆祝。

 

庆祝模式在吉卜力,或其他游戏上更新和庆祝。

 

澳门录得 20 宗 h1n1 感染病例,2 宗放射性感染。

 

临床试验发现女性的染色体常来自胃肠道感染。

 

临床试验发现 90% 感染病例为 m 型胃肠道感染。

 

初始句子:

 

连续 9 个 [MASK]

 

采样结果:

 

你每天学你妈妈啊!

 

那晚,眼前白茫茫。

 

层层青翠绿意盎然。

 

幼儿园想做生意了。

 

究竟如何才能入官?

 

老师、同学,您好!

 

云山重重,两茫茫。

 

梅雨,窗外雾茫茫。

 

那时,眼前白茫茫。

 

还是很棒的切蛋糕!

 

笔者实验所使用的是 Google 开源的中文 BERT base。可以看到,采样出来的句子还是比较丰富的,并且具有一定的可读性,这对于一个 base 版本的模型来说已经算是不错了。

 

对于连续 [MASK] 作为初始值来说,重复实验可能会得到很不一样的结果:

 

初始句子:

 

连续 17 个 [MASK]

 

采样结果:

 

其他面瘫吃什幺?其他面瘫吃什幺好?

 

小儿面瘫怎幺样治疗?面瘫吃什幺药?

 

幼儿面瘫怎幺样治疗?面瘫吃什幺好?

 

儿童头痛是什幺原因荨麻疹是什幺病?

 

其他面瘫吃什幺・ 其他面瘫吃什幺好?

 

竟然洁具要怎幺装进去水龙头怎幺接?

 

其他面瘫吃什幺好其他面瘫吃什幺好?

 

孩子头疼是什幺原因荨麻疹是什幺病?

 

竟然厨房柜子挑不进去水龙头怎幺插?

 

不然厨房壁橱找不到热水龙头怎幺办?

 

初始句子:

 

连续 17 个 [MASK]

 

采样结果:

 

フロクのツイートは下记リンクからこ覧下さい。

 

天方町に运行したいシステムをこ利用くたさい。

 

エリアあります2つクロカー専门店からこ案内まて!

 

当サイトては割引に合うシステムを採用しています!

 

同时作品ては表面のシステムを使用する。

 

メーカーの品は真面まてシステムを使用しています。

 

掲示板こ利用いたたシステムこ利用くたさい。

 

住中方は、生産のシステムを使用しています。

 

エアウェアの住所レヘルをこ一覧下さい。

 

フロクのサホートは下记リンクてこ覧下さい。

 

很神奇,日语都采样出来了,而且笔者用百度翻译看了一下,这些日语还算是可读的。一方面,这体现了随机采样结果的多样性,另一方面,这也体现了 Goole 版的中文 BERT 并没有做好去噪,训练语料应该夹杂了不少非中英文本的。

 

 

吃瓜思考

 

前段时间,Google、斯坦福、 等合作发表了一篇文章《Extracting Training Data from Large Language Models》 [3] ,指出 GPT2 等语言模型完全是可以 重现(暴露)训练数据情况 的,这个不难理解,因为语言模型本质上就是在背诵句子。而基于 MLM 的 Gibbs 采样表明,其实这个问题不仅 GPT2 显式的语言模型存在,像 MLM 这样的双向语言模型其实也是存在的。

 

从我们上述的采样例子就可以看出些端倪了,比如采样出日语来,说明原始语料并没有做特别完善的去噪,而我们从“北京新增 3 例本地确诊病例和 1 例无症状感染者”出发,采样出了一些 h1n1 相关的结果,这反映出训练语料的时代性。这些结果都意味着,如果你不想开源模型暴露你的隐私,那幺对预训练的语料就要好好做好清理工作了。

 

此外,关于《BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model》 [4] 这篇论文,还有一个瓜可以吃,那就是原论文说 MLM 模型是一个 Markov Random Field,但事实上这是不对的,后来作者也在自己的主页上做了澄清,有兴趣的读者可以看《BERT has a Mouth and must Speak, but it is not an MRF》 [5] 。总的来说,MLM 用来做随机采样是没问题的,但它不能对上 Markov Random Field。

 

 

本文小结

 

本文介绍了基于 BERT 的 MLM 所进行的文本随机采样,它实际上是 Gibbs 采样的自然应用。总的来说,本文只是一个相当简单的例子。对于已经对 Gibbs 采样有所了解的读者来说,本文几乎是没有技术难度的;如果还不是很了解 Gibbs 采样的读者,正好也可以通过这个具体的例子,来进一步去理解 Gibbs 采样的流程。

 

 

参考文献

 

 

[1] https://arxiv.org/abs/1902.04094

 

[2] https://arxiv.org/abs/1902.04094

 

[3] https://arxiv.org/abs/2012.07805

 

[4] https://arxiv.org/abs/1902.04094

 

[5] https://sites.google.com/site/deepernn/home/blog/amistakeinwangchoberthasamouthanditmustspeakbertasamarkovrandomfieldlanguagemodel

 

Be First to Comment

发表评论

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