自然语言处理十二时辰的午时已到,百度ERNIE2.0有望化身张小敬引领行业迎来突破

       最近自然语言处理方面的突破性进展非常之多,以至于笔者做为做为业内人士也必须时刻抬头,紧跟行业最新的发展潮流,才能不被时代抛弃。前一段时间谷歌发布的XLNET在各方面都已经超过了之前的行业标杆BERT,而百度最近发布了ERNIE2.0又是成绩斐然。考虑到ERNIE2.0用到的算力只是XLNET的五分之一左右,可以说百度这次没有走之前优秀模型大算力出奇迹的老路,客观的讲这是百度在AI方面的一次自我正名之作。虽然从目前ERNIE2.0的论文中笔者还没看到很多训练的细节,而且从目前的开源模型上看中文的pre-training model也还是基于之前一代产品的,不过ERNIE2.0很多理念还是令人耳目一新。

          自然语言处理简史

   我们知道机器学习其实本质上是通过找到结果与多维输入之间的关系来进行预测的,而计算机其实是没有办法处理语言的,所以需要将自然语言转换为向量才能进行机器学习,由于在本轮AI行业全面爆发之初,行业还并未找到将单词转为向量的好办法,所以自然语言处理方面的程序一直比较慢。
    Word to Vector出现:word2vec出现之前,自然语言处理方面的应用基本还是依靠专家制订语法规则,然后交由计算机实现的方式来推进。而word2vec的核心理念是一个单词是通过其周围的单词来定义的,word2vec算法通过负例采样暨观察一个单词不会和哪些单词一起出现;跳字处理暨观察一个单词周围的单词都有哪些,来完成单词到向量的转化过程。将单词转化为向量也被称为词嵌入(word embeding)的过程,从而让自然语言处理变成一个能让计算机自动执行的过程。

     那么好的词嵌入要满足两个条件一是词义相近的单词在空间上的距离要近,比如七彩虹、铭宣、影驰等显卡品牌对应的向量应该在词空间中的距离比较相近。二是有对应关系相同的单词对应向量的减法结果相等,比如v(中国)-v(北京)=v(英国)-v(伦敦)。

   GPT、BERT、XLNET相继提出:word2vec提出之后极大加速了自然语言处理的发展速度,GPT、BERT、XLNET等模型相继被提出,虽然他们的流派有自编码和自回归的不同(具体参考https://blog.csdn.net/BEYONDMA/article/details/93401385),但是其word embeding的思想还是比较一致的,都是在不借助语法专家的知识库直接利用词与词之间的关系来进行模型训练。

  BERT与XLNET等模型的缺陷:由于GPT、BERT、XLNET都没有引入语法专家知识库,所以他们在多义词的处理上会存在一定缺陷,比如“苹果”这个词,在模型训练时计算机既会学到这个单词代表一家科技公司,也会学到它是一种水果,但是单词对应的向量只能有一个,这就会给模型训练结果带来一定的问题。

       百度ERNIE2.0的突破

笔者前文也提到了从百度的论文中(https://arxiv.org/pdf/1904.09223v1.pdf)其实没有看到太多的细节,不过从百度在github上的分享上笔者学到了一些突破性的创新点,

针对 ERNIE 2.0 模型,试图从 3 个层面去更好的理解训练语料中蕴含的信息:

  • Word-aware Tasks: 词汇 (lexical) 级别信息的学习
  • Structure-aware Tasks: 语法 (syntactic) 级别信息的学习
  • Semantic-aware Tasks: 语义 (semantic) 级别信息的学习
  • 自然语言处理十二时辰的午时已到,百度ERNIE2.0有望化身张小敬引领行业迎来突破_第1张图片

     

其解读如下:

一、词汇理解方式

1. 知识增强蒙板策略:相较于BERT使用的mask策略, 该策略可以更好的捕捉输入样本局部和全局的语义信息。这点可以说是ERNIE的最大创新。

举个例子说明:

BERT的mask策略 :哈 [mask] 滨是 [mask] 龙江的省会,[mask] 际冰 [mask] 文化名城。

ERNIE的mask策略:[mask] [mask] [mask] 是黑龙江的省会,国际 [mask] [mask] 文化名城。

所以可以看到ERNIE是一个增强型的针对整个语义进行mask的训练方式。

2.首字母大写预测:针对英文首字母大写词汇(如 Apple)所包含的特殊语义信息,在英文预训练中构造了一个分类任务去学习该词汇是否为大写,这个是在其它模型中没有看到的训练方法。

3.相关词汇出现预测:针对一个 段中出现的词汇,去预测该词汇是否也在原文档的其他 段中出现。

二、语句理解方式:

乱序预测训练:针对一个 paragraph (包含 M 个 segments),我们随机打乱 segments 的顺序,通过一个分类任务去预测打乱的顺序类别。

语句距离训练:通过一个 3 分类任务,去判断句对 (sentence pairs) 位置关系 (包含邻近句子、文档内非邻近句子、非同文档内句子 3 种类别),更好的建模语义相关性。

三、语法理解方式:通过判断句对 (sentence pairs) 间的修辞关系 (semantic & rhetorical relation),更好的学习句间语义。

当然由于时间问题项目的代码笔者还没有研究透,如果后面再有新发现再向各位读者分享。不过从目前的情况来看自然语言处理方向极可能会迎来更多突破。

 

你可能感兴趣的:(python)