正文
本文由 【
AI前线
】原创,原文链接:
t.cn/RTHRSQq
AI 前线导读:
“过去几年以来,深度学习(简称 DL)架构及算法已经在图像识别与自然语言处理(NLP)、数据科学、机器学习和预测分析领域领域取得了令人印象深刻的进展。
尽管其在自然语言处理(简称 NLP)领域的应用最初较为平淡,但如今的成效已经证明这一层面将成为深度学习的另一大施展空间,并确实有能力为部分常见 NLP 任务提供最先进的支持成果。命名实体识别(简称 NER)、词类(简称 POS)标记乃至情感分析都已经成为神经网络模型超越传统处理方法的重要应用方向。而在此之中,机器翻译的进步幅度尤为可观”。
在今天的文章中,我们将回顾 2017 年年内基于深度学习技术所实现的 AI 发展成效。当然,受到篇幅所限,本篇文章不可能涵盖全部科学论文、框架及工具。在这里,我们只希望与大家分享这一年中最振奋人心的成果,同时结合全球 AI 大咖观点,带你回顾过去一年以来,深度学习带来的发展及其意义。
自然语言处理的发展与趋势
2017 年是自然语言处理领域的重要一年,深度学习所发挥的作用正在不断扩大,尤其在某些情况下能够带来惊人的效果——而所有迹象都表明,这一趋势在新的一年中还将持续下去。
从训练 word2vec 到使用预训练模型
可以说,词嵌入是深度学习在自然语言处理领域最为知名的技术之一。词嵌入源自 Harris 于 1954 年提出的分布假说,他认为具有相似含义的词汇通常会出现在同类语境当中。关于词嵌入的详细解释,这里建议大家参阅 Gabriel Mordecki 发布的这篇精彩文章。
词汇分布向量示例
Word2vec(由 Mikolov 等于 2013 年提出)与 GloVe(由 Pennington 等于 2014 年提出)等算法正是这一领域的先驱性方案——虽然其尚不属于深度学习(word2vec 中的神经网络较为浅表,而 GloVe 则采取基于计数的实现方法),但利用二者训练的模型已经被广泛应用于各类深度学习自然语言处理方案当中。另外需要强调的是,这两种算法确实极具成效,甚至使得词嵌入成为目前最值得肯定的实现方法。
作为起步,对于需要使用词嵌入的特定 NLP 问题,我们倾向于首先使用一套与之相关的大型语料库进行模型训练。当然,这种作法存在一定的入门难度——也正因为如此,预训练模型才开始逐渐普及起来。在利用维基百科、Twitter、谷歌新闻以及 Web 抓取等数据完成训练之后,这些模型将允许大家轻松将词嵌入机制整合至自己的深度学习算法当中。
2017 年的种种实践证明,预训练词嵌入模型已经成为解决 NLP 问题的一类关键性工具。举例来说,来自 Facebook AI Research(简称 FAIR)实验室的 fastText 即提供包含 294 种语言的预训练向量,这无疑给整个技术社区带来了巨大的贡献与推动作用。除了可观的语言支持数量,fastText 还采用字符 N 元模型(即使是来自特定领域的术语等罕见词,其中亦包含同样存在于其它常见词中的 N 元字符组合),这意味着 fastText 能够回避 OOV(即词汇量超出)问题。从这个角度来看,fastText 的表现要优于 word2vec 以及 GloVe,而且前者在处理小型数据集时同样更胜一筹。
尽管已经实现了一定进展,但这方面仍有大量工作需要完成。举例来说,卓越的 NLP 框架 spaCy 就能够对词嵌入与深度学习模型加以整合,从而以原生方式实现 NER 及依存关系语法分析等任务,使得用户能够更新现有模型或者使用自主训练的模型。
未来应该会出现更多针对特定领域的预训练模型(例如生物学、文学、经济学等),从而进一步降低自然语言处理的实现门槛。届时用户只需要对这些模型进行简单微调,即可顺利匹配自己的实际用例。与此同时,能够适应词嵌入机制的方法也将不断涌现。
调整通用嵌入以适配特定用例
预训练词嵌入方案的主要缺点,在于其使用的训练数据往往与我们的实际数据之间存在着词汇分布差异。假定您面对的是生物学论文、食谱或者经济学研究文献,大家可能没有规模可观的语料库用于嵌入训练 ; 在这种情况下,通用词嵌入方案可能有助于带来相对理想的成果。然而,我们该如何对词嵌入方案进行调整,从而确保其适合您的特定用例?
这种适应性通常被称为 NLP 中的跨领域或领域适应技术,其与迁移学习非常相似。Yang 等人在这方面拿出了非常有趣的成果。今年,他们公布了一套正则化连续跳元模型,可根据给定的源领域词嵌入学习目标领域的嵌入特征。
其中的核心思路简单但极富成效。想象一下,假定我们已经在源领域当中知晓词 w 的词嵌入为 w_sw。为了计算 w_twt(目标领域)的嵌入,作者在两个领域之间向 w_sw添加了一个特定迁移量。基本上,如果该词在两个领域皆频繁出现,则意味着其语义与领域本身不存在依存关系。在这种情况下,高迁移量意味着该词在两个领域中产生的嵌入结果倾向于彼此相似。但如果该词在特定领域中的出现频率比另一领域明显更高,则迁移量将相应降低。
作为与词嵌入相关的研究议题,这项技术还没有得到广泛关注与探索——但我相信其会在不久的未来获得应有的重视。
情感分析——令人印象深刻的“副产物”
与青霉素乃至 X 光一样,情感分析同样是一场意外中的惊喜。今年,Radford 等人开始探索字节级递归语言模型的特性,但其本意只是希望预测 Amazon 评论内容中的下一个字符。最终的结论显示,他们训练模型中的某个神经元能够准确预测情感值。是的,这个单一“情感神经元”能够以令人印象深刻的水准将评论内容归类为“正面”或“负面”。
审查极性与神经元的值
在注意到这种现象后,作者们决定利用斯坦福情绪树库对该模型进行进一步测试,并发现其准确性高达 91.8%——优于原有最好成绩 90.2%。这意味着他们的模型能够以无监督方式利用更少实例实现训练,并至少能够立足斯坦福情绪树库这一特定但涵盖范围广泛的数据集之上实现最为先进的情感分析能力。
情感神经元的实际使用
由于该模型立足字符层级运作,因此各神经元会根据文本中的每一字符作出变更,而最终成效令人印象深刻。
情感神经元的行为
举例来说,在“best”一词之后,该神经元的值会变为强正值。然而这种效果将随着“horrendous”这一负面词语的出现而消失——非常符合逻辑。
生成包含偏向极性的文本
当然,这套训练模型亦是一套行之有效的生成模型,因此能够用于生成类似 Amazon 评论的文本内容。而让我个人感到惊喜的是,大家甚至能够简单覆盖情感神经元的值来选定所生成文本的偏向极性。
以上为所生成的示例文本。
作者们选择了乘法 LSTM(由 Krause 等人于 2016 年发布)作为其神经网络模型,这主要是由于他们发现乘法 LSTM 的超参数设置收敛速度要远高于其它普通 LSTM。其中包含 4096 个单元,且利用 8200 万条 Amazon 评论内容进行训练。
时至今日,我们仍无法理解这套经过训练的模型为何能够以如此精确的方式捕捉到评论内容的情感倾向。当然,大家也可以尝试训练自己的模型并进行实验。再有,如果您拥有充分的时间与 GPU 计算资源,亦可投入一个月利用四块英伟达 Pascal GPU 重现研究人员们的训练过程。
Twitter 中的情感分析
无论是对企业品牌的评价、对营销活动影响作出分析抑或是量化 2016 年美国总统大选中民众对希拉里与特朗普的支持程度,Twitter 中的情感分析一直作为一款强大的工具存在。
特朗普对希拉里:Twitter 上的情感分析
SemEval 2017
Twitter 上的情感分析已经引起了 NLP 研究人员们的广泛关注,同时亦成为政治及社会科学界内的热门议题。也正因为如此,SemEval 自 2013 年以来提出了一项更为具体的任务。
今年,总计 48 支队伍参与到评选当中,这也再次证明了 SemEval 的魅力所在。为了进一步了解 Twitter 公司组织的 SemEval 究竟是什么,我们将首先回顾其今年提出的五项任务:
任务 A:
根据给定的一条推文,判断其代表正面、负面抑或中性情感。
任务 B:
根据给定的一条推文与主题,将与该主题相关的推文内容进行观点二分:正面与负面。
任务 C:
根据给定的一条推文与主题,将与该主题相关的推文进行观点五分:强正面、弱正面、中立、弱负面、强负面。
任务 D:
根据与某一主题相关的一组推文,估算其中正面与负面情感类别的分布情况。
任务 E:
根据与某一主题相关的一组推文,立足以下五种类别进行推文内容估算:强正面、弱正面、中立、弱负面、强负面。
如大家所见,任务 A 属于最常见的任务,有 38 个团队参与了这项任务 ; 但其它任务则更具挑战性。主办方指出,深度学习方法的使用量已经相当可观并仍在不断增加——今年已经有 20 个团队开始采用卷积神经网络(简称 CNN)与长 / 短期记忆(简称 LSTM)等模型。此外,尽管 SVM 模型仍然相当流行,但已经有一部分参与者将其与神经网络方法或词嵌入特征加以结合。
BB_twtr 系统
今年我还发现了一套纯粹的深度学习系统,即 BB_twtr 系统(Cliche,2017 年),其在五项任务的英文版本挑战中全部位列第一。该作者将 10 套 CNN 与 10 套 biLSTM 结合起来,并利用不同超参数以及不同预训练策略对其进行训练。感兴趣的朋友可以查阅链接内论文中对该网络架构的详尽描述。
为了训练这些模型,作者采用了人类标记推文(为了让大家体会到其工作量,单是任务 A 就包含 49693 条此类推文),同时构建起一套包含 1 亿条推文的未标记数据集。其能够通过简单的字符表情标记——例如:-)——从这套未标记数据集中提取出独立数据集。这些推文通过小写、标记、URL 以及表情符号等被替换为统一的标记方式,用于强调证据的重复字符也经过类似的处理(例如将‘Niiice’与‘Niiiiiiice’统一转换为‘Niice’)。
为了对作为 CNN 及 biLSTM 输入内容的词嵌入进行预训练,该作者采用了 word2vec、GloVe 以及 fastText 对未标记数据集进行训练,且三者皆采用默认设置。在此之后,他利用中立数据集对词嵌入进行微调,旨在添加极性信息 ; 最后再利用人类标记数据集对模型进行再次微调。
利用以往 SemEval 数据集进行实验,他发现 GloVe 会导致成效降低,且并不存在适用于全部数据集的最佳模型。该作者随后将全部模型利用一套软投票策略结合起来。最终得出的模型顺利战胜了 2014 年与 2016 年的获胜模型方案,且与其它几年的优胜者亦相差不多。正是这套方案,在 2017 年的 SemEval 当中获得五项任务的英文版本优胜。
尽管他选择的组合方式并不具备有机性——而仅通过一种简单的软投票策略实现,但这项工作仍然证明了将多种深度学习模型加以结合的可能性。事实上,这次尝试还证明了我们完全能够以端到端方式(即输入内容必须经过预处理)实现超越监督学习方法的 Twitter 情感分析能力。
令人兴奋的抽象概括系统
自动概括与自动翻译一样,皆属于自然语言处理领域的元老级任务之一。目前实现自动概括主要通过两种方法:基于提取型方法,通过从源文本中提取最重要的文本段建立摘要 ; 基于抽象型方法,以抽象方式通过生成文本构建摘要内容。从历史角度来看,基于提取的方法最为常见,这主要是因为其实现难度要远低于基于抽象型方法。
过去几年以来,基于递归神经网络(简称 RNN)的模型开始在文本生成方面取得惊人的进展。其在简短输入与输出文本场景中的表现非常出色,但所生成的长文本却存在着连续性差及重复度高等问题。在工作当中,Paulus 等人提出了一种新的神经网络模型以克服上述局限——而结果令人振奋,具体如下图所示:
模型所生成的摘要内容
作者们利用一款 biLSTM 编码器读取输入内容,并利用 LSTM 解码器生成输出结果。他们的主要贡献在于利用一种新的内部关注策略对输入内容以及连续生成的输出结果进行分别关注,同时结合标准监督词语预测与强化学习机制建立起一种新的训练方法。
内部关注策略
之所以要提出内部关注策略这一概念,主要是为了避免输出结果中的重复性问题。为了达到这项目标,他们在解码过程中使用暂时关注机制查看输入文本中的前一段落,并借此决定下一个将要生成的词汇。这就迫使该模型在生成过程中使用输入内容中的不同部分。此外,作者们还允许模型从解码器当中访问此前曾经存在的隐藏状态。将这两条函数结合起来,即可为摘要输出结果选择最理想的一下个单词。
强化学习
在创建同一条摘要时,不同的人往往会使用完全不同的词汇与句子——而这两条摘要可能同样准确有效。因此,良好的摘要并不一定需要尽可能同训练数据集中出现的词汇序列相匹配。以此为前提,作者们决定避免使用标准的指导强迫算法,而是在每个解码步骤内(即生成每个单词时)尽可能减小丢失值。事实证明,他们选择的这一强化学习策略确实非常有效。
来自近端到端模型的出色成果
这套模型接受了 CNN/Daily Mail 数据集的测试,并得到了极为出色的处理结果。除此之外,人类评估者亦对该模型作出了测试,并发现其摘要结果的可读性与质量都有所提升。这些结果令人印象深刻,特别是考虑到其仅需要非常基础的预处理过程:对输入文本进行标记与小写化,而后将数字全部替换为“0”,最终将数据集内的部分特定实体彻底移除。
这是否代表着通往无监督机器翻译的第一步?
所谓双语词典归纳,是指利用两种语言的源语与单语语料库实现单词识别与翻译——这是一项历史相当悠久的自然语言处理任务。自动生成的双语词典能够有力支持其它 NLP 类任务,包括信息检索与统计类机器翻译等。然而,此类方法大多高度依赖于某种资源——例如初始版本的双语词典。而这类词典往往并不存在或者很难构建。
随着词嵌入机制的成功,人们开始考虑实现跨语言词嵌入的可能性——其目标在于分配嵌入空间,而非建立词典。遗憾的是,第一批实现方案仍然依赖于双语词典或对等语料库。不过在实践工作当中,Conneau 等人(2018 年)提出了一种极具发展前景的方法,其不依赖于任何特定资源,且在多种语言到语言翻译、句子翻译检索以及跨语言单词相似性类任务当中拥有优于现有监督学习方法的实际成效。
作者们开发出的方法是将所输入的两组词嵌入以单一语言数据为基础进行独立训练,而后学习二者之间的映射关系,从而使得翻译结果在公共空间内尽可能接近。作者们利用 fastText 对维基百科文档进行无监督词汇向量训练,下图所示为这种方法的核心实现思路:
在两套词嵌入空间之间建立映射关系
其中红色的 X 分布为英语单词嵌入,而蓝色的 Y 分布则为意大利语单词嵌入。
作者们首先利用对抗性学习以获取用于执行第一次初始对齐的旋转矩阵 W。根据 Goodfellow 等(2014 年)提出的基本原则,他们构建起一套生成对抗网络(简称 GAN)。若大家希望了解 GAN 的工作原理,推荐各位参阅本篇由 Pablo Soto 撰写的文章。
为了在对抗学习过程中进行问题建模,他们在定义中为鉴别器添加了判定角色,同时随机从 WX 与 Y 中提供某些样本元素(详见上图中的第二列),借以判断这些元素属于哪一种语言。接下来,他们训练 W 以防止鉴别器作出准确的预测。这种作法在我看来简直有才,而其结果也相当令人满意。
在此之后,他们利用两个后续步骤进一步完善映射关系。其一是避免在映射计算中因罕见字的出现而引发问题。其二是构建实际翻译能力,其中主要应用到已经学会的映射关系与距离度量机制。
在某些情况下,这套模型拥有极为先进的处理结果。例如在英语到意大利语的单词翻译过程中,在 P@10 的情况下,其能够以接近 17% 的精度完成源单词翻译(具体数量超过 1500 个)。
英语到意大利语单词翻译平均精度。
作者们宣称,他们的方法将能够作为无监督机器翻译技术的重要起点。如果实际情况真是如此,那么未来的前景绝对值得期待。当然,我们也希望看到这种新方法能够走得更快、更远。
专用型框架与工具
目前市面上存在大量通用型深度学习框架与工具,其中 TensorFlow、Keras 以及 PyTorch 选项得到了广泛使用。然而,专用型开源 NLP 深度学习框架及工具也开始兴起。2017 年是令人振奋的一年,目前已经有不少非常实用的开源框架被交付至社区手中。而以下三款引起了我的浓厚兴趣。
AllenNLP
AllenNLP 框架是一套构建于 PyTorch 之上的平台,用于在语义 NLP 任务中轻松利用深度学习方法解决问题。其目标是帮助研究人员设计并评估新模型。该框架包含多种常用语义 NLP 任务的参考实验模型,具体包括语义角色标记、文本引用以及共因解析等。
ParlAI
ParlAI 框架是一套开源软件平台,用于进行对话研究。其利用 Python 实现,旨在为对话模型的共享、训练与测试提供一套统一的框架。ParlAI 能够与 Amazon Mechanical Turk 实现轻松集成。另外,其还提供多种流行数据集,并能够支持大量神经模型——包括记忆网络、seq2seq 以及关注型 LSTM 等。
OpenNMT
OpenNMT 工具集是一款通用型框架,专门用于序列到序列类模型。其可用于执行诸如机器翻译、摘要、图像到文本以及语音识别等任务。
写在最后
毫无疑问,用于解决 NLP 类问题的深度学习技术正在不断增加。在这方面的一大证明性指标,在于过去几年来发表在 ACL、EMNLP、EACL 以及 NAACL 等关键性 NLP 会议上的深度学习论文在比例上出现了显著提升。
深度学习论文百分比变化图
然而,真正的端到端学习目前才刚刚开始。我们仍需要完成一些经典的 NLP 任务以筹备数据集,例如对某些实体(包括 URL、数字以及电子邮箱地址等)进行清洗、标记或者统一化调整。我们还在利用各类通用型嵌入,其缺点在于无法捕捉到特定领域术语的重要意义,且在多词表达式的理解方面表现不佳——我在自己的工作项目中已经充分体会到了这些弊端。
对于将深度学习技术应用于 NLP 领域而言,2017 年无疑是伟大的一年。我希望 2018 年能够带来更多端到端学习成果,而各类专用型开源框架也能得到进一步发展。如果您对于本文中提及的各类成果及框架有着自己的看法,或者拥有您支持的方案,请在评论中与大家分享。
机器学习与大数据的发展与趋势
2017 年,我们见证了大数据将 AI 推向了技术浪潮之巅。AI 成为媒体和从业者的注意力焦点,当然这其中包含了正面(各行各业日趋强大的机器学习算法和 AI 应用)和负面(机器将取代人类工作,甚至控制人类世界)的信息。我们也目睹了基于数据的价值创新,包括数据科学平台、深度学习和主要几个厂商提供的机器学习云服务,还有机器智能、规范性分析、行为分析和物联网。
我们综合整理了一些数据科学家、AI 专家对 2017 年机器学习和发数据发展现状的总结,以及他们对 2018 年发展趋势的预测,由于篇幅有限我们隐去了这些专家的名字,如果需要了解专家的详细信息,请参看文末的参考文章,如果各位读者有其他补充和观点,欢迎在评论区与我们讨论。
2017 的发展状况
AlphaGo Zero 带来了一种新的增强学习方式,或许是 2017 年 AI 领域最重大的研究成果
2017 年,我们看到了 AI 的大踏步发展。尽管之前的深度学习模型需要大量的数据来训练算法,但神经网络和增强学习的应用告诉我们,大数据集并非高效算法的必要条件。DeepMind 使用这些技术创造了 AlphaGo Zero,它的表现已经超出了之前的算法。