什么是supervised和self-supervised?
supervised(监督学习)
self-supervised(自监督学习)
什么是masking input?
其中,mask的方法可以是用一些特殊字符进行代替,也可以是随机一些汉字;对于Bert本身,就是transformer中的encoder部分
链接:transformer的encoder解释
什么是next sentence prediction?
为什么是对cls进行linear而不是其他汉字呢?
那cls和句子会不会一点关系都没有呢?
有研究人员表示:next sentence prediction部分并没有什么有用的价值
pre-train是什么?
fine-tune是什么?
输入:语句
输出:分类
例子:输入一句话,得到这句话是正面的还是负面的
如何用Bert进行的呢?
其中,原本用随机的embedding对句子进行编码,现在用Bert进行编码,效果大幅度好于随机。
输入:n个词的句子
输出:n个词的句子
例子:给定一个句子,输出每个词语的词性
此时是将Bert输出的全部向量进行linear处理再softmax,进行class分类词性
输入:俩个句子
输出:一个分类结果
例子:一个句子是:我请你去喝茶搞不搞?另一个句子是:我今天要上天与太阳肩并肩飞翔。这俩个句子明显就不是一类的,都放入model中进行分类,得到结果
如何操作呢?
输入:问题文本+答案文档(其中答案文档:答案在这个文档里面)
输出:答案的具体定位
操作:
从0开始训练Bert几乎是一个不可能的事情,因为需要花费太久太久了。
谷歌做了一个30亿的数字训练的Bert(相当于3000倍的哈利波特全集)用TPU v3训练8天才得到结果!!!(简直太难了)
预训练用于seq2seq模型
不同的语句设计方式
为什么Bert好用?- 因为相同意思的词向量在同一块区域中
对上述进行实际例子测试:用5个包含苹果句子(吃的苹果)和5个包含苹果句子(苹果手机)的例子进行测试
7.1、用英文训练的模型,去做中文的问答问题,效果还不错????
7.2、效果对比图。在基于104种语言的训练模型,采用中英文交杂的文章进行fine-tune的时候,测试文章采用中文的结果居然极其的好,逼近人类的结果(93%)
7.3、反向思维。将中文和英文单词对应的词向量进行区域确定,然后得到一个中文词向量与英文词向量之间的差距矩阵,如果将一个英文的词向量进行一系列操作得到对应的中文词向量,似乎就可以解释上述问题。
7.4、真实样例【用词向量之间的平均距离算的】(虽然还是有瑕疵,但是肉眼看还是有些许正确的地方)