资源链接:https://www.bilibili.com/video/BV1r4411f7td?p=20
趋势:
获取翻译需要人工专业知识+限制数据的大小和范围
语言文本更容易获得!(引擎或者社交软件等)
1、分别将两个预训练好的语言模型作为 Encoder 和 Decoder
2、然后使用双语数据共同训练
对比结果
循环的/圆形的?
自训练技术没有被广泛使用,因为其训练的来源是其之前的产出(翻译的产品来自于我们的产品生产出来的,在实际生产中,由于这个问题,这并不是一个广泛使用的技术)
(解决上述问题的一种技术---很流行,并在使用未标记的数据进行翻译方面取得了很大的成功)
有两个机器翻译模型朝相反的方向(en->fr)和(fr->en)
如何训练模型
如何协调对标记数据与未标记数据的训练呢?
当我们只有未标记的句子时,我们使用一种比完全的翻译更简单的任务
但也希望单词接近其翻译
想学习单语语料库吗?
每个英语单词的位置上往往对应着一个德语单词,并且距离很近。在使用时,只需选取英文单词在嵌入空间中距离最近的德语单词,就可以获得对应的翻译
(红色为英语单词,蓝色为意大利单词,虽然矢量空间看起来不一样,但是结构很相似,都是腰果形状)
可以理解为,在英语词嵌入空间中的 cat 与 feline 的距离与意大利语词典如空间中的 gatto 和 felino 之间的距离是相似的
我们在跨语言的词嵌入中想要学习不同种语言的词嵌入之间的对齐方式,例如旋转一下,如下图
课堂交流:正交性来约束词嵌入的原因是为了防止过拟合吗?
我们假设我们的嵌入空间是类似的,只是需要对英语的词向量和意大利语的词向量进行旋转,许多没有正交性的,讲者认为没有损害性能
刚刚讲的单词的翻译,现在轮到句子了~
模型:不考虑不同输入和输出语言,使用相同的(共享的) encoder-decoder (没有使用注意力),即使用一个标准的seq2seq模型,甚至没有注意力,如下图
我们可以喂给 encoder 一个英文句子,也可以喂一个法语句子,从而获得 cross-lingual embeddings ,即英文句子和法语句子中各个单词的词嵌入,这意味着 encoder 可以处理任何输入
对于 decoder,我们需要喂一个特殊的标记来告诉模型应该生成什么语言的输出/标明是en->fr还是fr->en,可以用做一个 auto-encoder,完成 en->en,即再现输入序列
训练目标1:去噪自动编码器
培训目标2:反向训练
注意,这里的fr->en输出的句子,是en->fr输入的句子,这个句子是有些混乱的,不完美的,例如这里的 “I am student”,丢失了 “a”
我们需要训练模型,即使是有这样糟糕的输入,也能够还原出原始的法语句子
跨语言嵌入和共享编码器为模型提供了一个起点
使用 cross-lingual 的词嵌入来初始化,即其中的英语和法语单词应该看起来完全相同
Objectives encourage language-agnostic representation/目标鼓励 language-agnostic 语言无关的表示
我们真的希望模型能够编码一个句子,如上图表示,目标序列是相同的,这意味着英语句子和法语句子的向量将收到相同的训练
水平线为无监督模型,其余为监督模型
在给出大量有监督数据后,有监督的模型大量提升,但是无监督的效果也不错,尤其是少量数据集时,总结如下:
使用标签收集“轻松”和“恼怒”tweets的语料库
学习无监督机器翻译模型
可以讲上述两个语料库当成不同的语言,然后进行无监督翻译,实现了属性转移,如下图所示
这是时候要泼一点冷水了(兴奋的就是,没有标记的数据的情况可以进行翻译)
UNMT几乎不工作与纯粹的监督学习差距还是很大的
上图 1 是常规的 BERT ,有一系列的英语句子,并且会 mask 一部分单词
上图 2 是 Facebook 提出的
通过使用未标记数据提高翻译质量
无监督关于翻译的部分到此结束~下面讲述,如果我们真的扩大这些无监督模型会发生什么
LSTM中型模型大约有1000万个参数,再看一下其他的~GPT-2必蜜蜂脑神经元都复杂...
这些图像都是模型生成的,看起来非常真实,推荐的网站: https://thispersondoesnotexist.com(可以生成图片,利用的GAN)
5亿个参数的图像网络模型,比BERT大,但是远远不到GPT-2,这个图貌似显示出:精度随着模型尺寸的对数而增加
目前许多公司已经开展研究更适合深度学习运算的硬件了(比gpu更适合的),例如谷歌公司的TPU等,实际上很多公司正在研究ing
只是一个非常大的Transformer LM
40 GB的训练文本
如果我们有一个语言模型,可以用它进行语言建模
数据集上得到最先进的困惑,甚至没有训练
OpenAI(GPT-2的研发团队)还有一些其他的有趣实验
(虚线为无监督的)
它只是给出了一个很大的文本库,几乎全是英语
由于数据集中存在一些翻译的例子,例如:法语习语及其翻译、法语引用及其翻译,看到足够的例子,它实际上就开始学习如何生成法语了
更深入的挖掘是它具有能够回答问题的能力~
简单基线:1%准确度
GPT-2:~4%准确度
Cherry挑选了最有信心的结果
对于一些任务,性能似乎随着日志(模型大小)的增加而增加,如图1,但是有些任务则不是很明确,如图2
大致意思:由于担心大规模的语言模型被用来生成欺骗性的、有偏见的或辱骂性的语言,我们只删除了GPT-2的一个小版本以及samplingcode。我们不会发布数据集、训练代码或GPT-2模型权重。将近一年前,我们在Openai宪章中写道
下面是一些相关后续评论等~
一些辩论的结果:
需要更多的跨学科科学
许多NLP具有较大社会影响的例子,尤其是对于偏见/公平
(越来越多人正在研究NLP真正高风险的应用,如下几个方面)
越来越感兴趣用NLP帮助高影响力的决策
一方面,可以快速评估机器学习系统某些偏见,然而,机器学习反映了训练数据,甚至放大偏见…这可能导致更偏向数据的创建(19课内容~讲偏见的已经讲了),写一个筛选简历的模型非常容易,但是可能解决5000个歧视女性的高管是一个严重的问题,如下例子
下面是一个评分系统,但是比较容易被一些花里胡哨高大上的话进行欺骗
Chatbots
聊天机器人也是一个非常不错的工具,可以帮助别人放松心情等,但是有些可能会出现一些种族主义等,也存在许多风险
(这让我想到了 九号秘事 的一个片段,一个关于心理咨询的,打电话往往是心理出现问题的,许多带有自杀倾向的,而这个部门则是缓解他们的,但是因为每天都有负面情绪,导致这些心理缓解人员也非常压抑,存在一些心理问题,而对面自杀倾向的人如果产生了不好的情绪对待,可能会导致他们倾向的加剧,感觉和这个问题非常类似)
10种nlp任务,BERT很接近人类了...
在SQuAD上,对于构建模型往往需要各种复杂的结构(类似于设计盖楼),但是有个BERT之后,我们只需要训练一个变压器并提高大量的数据就可以做的很好(类似于之前模型需要各种设计,而现在只需要一个变压器即可,所以说之前的设计也就是 Architecture Engineering/建筑工程可以已经不需要了...)
(虽然感觉BERT有点一力破万法的感觉,但是对于设计框架的研究者,感觉有点小悲伤...)
BERT提出:我们需要更艰巨的任务---->BERT几乎已经解决了SQuAD,需要更加复杂的任务来解决了
更难的任务:
一个新的问答数据集合(感觉有种对话的意味,需要考虑之前的对话信息进行回答)。老师看维基百科的文字,而学生想要了解这篇维基百科的内容,目的是培养充当教师的机器学习模型。有种自动化教学的意味。
问题取决于谈话的整个历史。这个比单纯的问答系统更加具有挑战~
在QuAC上,即使是BERT以扩展模型与人的表现还是有很大差距的(大约低了 15 个 F1 点)
一个新的推理数据集合,专门为多跳推理而设计。基本为了回答一个问题,必须看多个文件,从多个文件中查看不同的事实,并进行一定的推断来获得正确答案。
在HotPotQA上,即使是BERT以扩展模型与人的表现也是相差非常之大
NLP的另一个前沿是让一个模型执行许多任务。GLUE 和 DecaNLP是最近的例子,在BERT的基础上,多任务学习产生了改进
多任务的重要性在不断增加,之前也有一节课专门讲过
关于多任务的内容可以详见之前的课(具体哪节课忘记了,本次课程中没怎么讲,只是简单一提这一部分)
处理资源匮乏的环节也是一个非常重要的研究内容,目前在nlp领域的代表性不足,因为大部分数据集都是英文的
资源可以理解:数据集(大量的数量、不同的种类,例如问答可以增加其他语言的)、计算能力等,本部分主要强调计算能力。
BERT很棒,但是需要大量的计算,往往不现实
对于从事ai的人,可能都把神经网络模型当成一个黑盒,需要问题都归结于随机初始化,或者一些神经网络的不可解释性,尤其是对于刚入门的来说,更加难以理解~我们非常想知道为什么是这个结果、一些理由或者解释,如果知道后,甚至可以去人为调整模型~
较低层次的BERT在较低层次的任务中表现更好
NLP并不是学术研究的背景,NLP在工业领域也在迅速发展。
其中工业NLP中两个特别大的领域:
(2019年的CS224N系列到此完结撒花了,目前初步打算走知识图谱和推荐系统的方向,可能会后续更新这方面的内容)