lingpy 2017-12-14
翻译 | 林椿眄、刘畅、彭硕
编辑 | Donna Suisui
过去几年,深度学习架构和算法在图像识别和语音处理等领域取得了重大的进步。而在NLP(自然语言处理)领域,起初并没有太大的进展。不过现在,NLP领域取得的一系列进展已证明深度学习技术将会对自然语言处理做出重大贡献。一些常见的任务如实体命名识别,词类标记及情感分析等,自然语言处理都能提供最新的结果,并超越了传统方法。另外,在机器翻译领域的应用上,深度学习技术所取得的进步应该是最显著的。
这篇文章中,我将在通过一些深度学习技术来阐述2017年NLP领域所取得的一系列进步。相关的科技论文,框架和工具有很多,在这里我没办法逐一列出,内容也不详尽。我只是想和大家分享并介绍今年一系列我最喜欢的研究。
我认为,2017年是深度学习的一个重要年份,随着深度学习技术在NLP领域中的应用不断深入且产生了令人惊喜的结果,所有的迹象都表明,NLP领域将在深度学习技术的辅助下继续高效前进。
01 从训练word2vec模型到使用预训练模型
可以说,词嵌入模型(Word embedding)是深度学习技术在NLP领域最显著的技术。他们遵循了Harris (1954) 提出的分布式假说。根据这个假说可知,具有相似含义得此通常会出现在上下文的语境中。关于词嵌入的详细解释,你也可以阅读Gabriel Mordecki的文献。
诸如word2vec(Mikolov等,2013)和Glove(Pennington等,2014)等算法已经成为NLP领域的代表性算法。尽管它们不能被认为是深度学习技术在该领域的应用(word2vec中应用浅层神经网络,而Glove是基于计数模型的一种算法),但是用他们训练得到的模型作为大量深度学习模型的输入,也是深度学习技术与自然语言处理领域相结合的一种常见方式。因此,目前在我们领域中应用词嵌入模型,通常被视为是一种好的尝试。
一开始,给定一个需要词嵌入模型的NLP问题,我们更希望在一个与领域相关的大语料库中训练我们自己的模型。当然,这不是使用词嵌入模型最好的方式,所以需要从预训练模型开始慢慢进行。通过维基百科,Twitter,Google新闻,网页抓取等数据的训练,这些模型可以很容易地让你将词嵌入模型整合到深度学习算法中去。
今年的研究进展证实了预训练词嵌入模型仍然是NLP领域的一个关键性的问题。例如,来自Facebook AI Research(FAIR)实验室的fastText模型,用294种语言发布预训练好的模型向量,这是一项伟大的工作,对于我们研究领域来说更是一重大的贡献。除了大量的语言的使用,由于fastText使用字符n-grams作为语义特征,使得该模型能够得到很大的应用。
此外,fastText模型还能避免OOV问题(超出词汇量问题),因为即使是一个非常罕见的词(如特定领域的专业术语)也有可能与一个常见词共享同一个n-gram字符。因此,从这个意义上来说,fastText模型比word2vec和Glove模型表现得更好,并且对于小数据库有着更优的性能。
然而,尽管我们可以看到该领域一些进步,但是对这领域的研究还有很长一段路要走。例如,著名的NLP框架spaCy以本地的方式将词嵌入模型和深度学习模型集成并应用到诸如NER和Dependency Parsing等NLP任务中,并允许用户更新模型或使用自己的模型。
我认为这是需要研究的东西。未来,对于这些易于应用到特定领域(诸如生物学,文学,经济学等)的NLP框架来说,进行预训练得到模型是一种非常好的方式。根据我们的情况,以最简单的方式对模型进行一系列的微调优化,来提高模型的性能。同时,一些适用于词嵌入模型的方法也开始慢慢出现。
02 调整通用的嵌入模型应用于特定的案例
也许使用预训练的词嵌入模型的最大缺点是训练数据与我们问题中使用的实际数据之间存在词分布差距(word distributional gap)。这么说吧,假设你有生物学论文集,食谱和经济领域的研究文章,由于你可能没有足够大的语料库来训练得到良好性能的词嵌入模型,所以你需要通用嵌入模型来帮助你改善研究结果。但是如果通用嵌入模型可以进行调整并应用于你所需要的特定案例呢?
这个想法是简单而又有效的。想象一下,我们知道在源域中单词w的词嵌入是w_s。为了计算w_t(目标域)的嵌入,作者向w_s添加了两个域之间的一定量的传输。基本上,如果这个词在这两个领域出现的都很频繁,那就意味着它的语义不具有领域依赖性。
在这种情况下,由于传输量很高,因此在两个域中产生的词嵌入趋势是相似的。但是,对于特定领域的词,会在一个领域出现的更频繁,所需要传输的量是很小的。
关于词嵌入的研究课题至今还没有得到广泛的研究和探索,但我认为在近期会得到更多的关注。
03 情感分析将有一个难以置信的作用
今年,Ranford等人发现训练模型中的单个神经元对于情感价值有着高度的预测性,为进一步预测Amazon评论文本中的下一个字符,他们探索了字节级循环语言模型的特性。结果表明,这个单一的“情感神经元”的确能够相当准确地预测并将评论分类为正负面。
注意到这种行为之后,他们决定在 Stanford Sentiment Treebank数据库上测试模型,并发现模型的准确性高达91.8%,而之前最好的模型准确度为90.2%。这说明,使用很少的样本,以无监督的方式进行训练的模型,至少在一个特定但广泛研究的数据库上得到了最先进的情感分析结果。
工作中的情感神经元
由于模型的表现是基于字符水平的,所以神经元在文本中改变了每个字符的状态,这是相当惊人的行为。
例如,在一个单词后面,神经元的值变为强的正值,然而这种作用效果将随着词的消失而消失,这看起来也是有道理的。
生成带极偏见性文本
当然,训练好的模型仍然是一个有效的生成模型,所以它可以用来生成类似Amazon评论的文本。但是,我觉得很棒的是,你可以通过简单地覆盖情感神经元的价值来选择生成样本的极性。
Krause等(2016)所选择的NN模型是由Krause等人提出的乘式LSTM模型。这是因为他们观察到,该模型的超参数设置方式能比正常的LSTM模型更快地收敛。它有4096个神经元,并用8200万条Amazon的评论语料库来进行训练。
为什么训练有素的模型能够准确地捕捉到情感概念中一些开放而迷人的问题呢。与此同时,你也可以尝试训练自己的模型并进行实验。当然,如果你有充裕的时间和GPU的话,那么用四款NVIDIA Pasca GPUs,对这个特定的模型进行训练,仍需要花费一个月时间才能完成。
04 Twitter上的情感分析
无论是人们对企业品牌的评价,分析营销活动的影响,还是衡量上次竞选期间民众对希拉里·克林顿和唐纳德·特朗普的整体感受,Twitter的情感分析都是一个非常强大的工具。
SemEval 2017
Twitter上的情感分析已经引起了NLP研究人员的兴趣,同时也得到政治和社会科学界的广泛关注。这就是为什么自2013年以来,SemEval比赛都会提出一系列具体的任务。
今年的比赛共有48支参赛队伍参与了竞赛,表现出极大的热情和兴趣。为了让你更好地了解Twitter推出的SemEval比赛究竟是什么(http://www.aclweb.org/anthology/S17-2088),让我们来看看今年提出的五个子任务。
子任务A:给定一个推文,来判断所表达的情绪是积极的、消极的还是中性的。
子任务B:给定一个推文和一个话题,分两种情况下表达对这个话题的观点:正面与负面。
子任务C:给定一个推文和一个话题,分五种情况来表达对这个话题的观点:强势、弱势、中性、弱肯定性和强大的消极。
子任务D:给定一个关于某个话题的推文,评估推文在正性和负性类别中的分布情况。
子任务E:给定一组关于某个话题的推文,评估推文在五中情绪类别中的分布情况:强势、弱势、中性、弱弱及强大。
正如你所看到的,子任务A是最常见的任务,有38个团队参与了这个任务的评估,而其他的任务则更具挑战性。今年有20支团队使用了卷积神经网络(CNN)和长短期记忆网络(LSTM)模型。此外,尽管SVM模型仍然非常流行,但是一些参赛队伍都将它与神经网络的方法或词嵌入特征相结合。
BB_twtr系统
今年让我比较惊奇的发现是BB_twtr系统(Cliche,2017),它是一个纯粹的深度学习系统,并且在英语的5个子任务中排名第一。 作者将10个CNN结构和10个biLSTM结构集合(ensemble)起来,采用不同的超参数和预训练策略来进行训练。
为了训练这些模型,作者使用了人工标注的推文(tweets)(给定一个数量级,子任务A有49,693个),并且构建了一个包含1亿条推文的未标记数据集,这个数据集只是通过简单的标记一条推文来获取,比如表示推文内容积极的表情符号是:-),对于内容消极的推文就是相反的表情。这些推文中的小写,标记,URL和表情符号被替换为特定的标记 (, , etc.),并且字符重复的内容将会统一,例如,“niiice”和“niiiiiiiice”变成“niice”。
为了对用作CNN和biLSTM结构输入的单词嵌入信息进行预训练,作者在未标记的数据集上使用了word2vec,GloVe和fastText(全部使用默认设置)词向量。然后他使用距离数据集(distant dataset)来提炼嵌入特征是为了增加作用力信息,然后使用人工标记的数据集再次提取它们的特征。
作者使用以前的SemEval数据集进行实验表明,使用GloVe词向量会降低性能,而且对于所有好的数据集都没有唯一的最佳模型。 然后作者将所有模型与软投票策略结合起来。 由此产生的模型结果比2014年和2016年的历史最好的历史成绩更胜一筹,而且也与其他年份非常接近。最后,它在2017自然语言竞赛 SemEval 数据集5子任务中排名第一。
即便这种组合采取的简单的软投票策略并不能看作是一种有效的方式,但是这项工作表明了将深度学习模型结合起来的可能性,以及一种几乎端到端的方法(输入必须经过预处理 )。并且是在Twitter的情感分析中是可以超越监督方法的。
05 一个令人兴奋的抽象概括系统
自动概括和自动翻译一样,是最早的NLP任务之一。目前有两种主要的方法:基于提取的方法,其概括是通过从源文本中提取最重要的段而建立的,而基于抽象的方法则是通过生成文本来构建概括。
从发展历史上看,基于提取的方法是最常用的,因为它们比基于抽象的方法简单。在过去的几年里,基于RNN的模型在文本生成方面取得了惊人的成果。它们在简短的输入输出文本上表现得非常好,但是对于长文本往往是不连贯和重复的。
在Paulus等人的工作中,他们提出了一种新的神经网络模型来克服这个局限性。结果令人兴奋,如下图所示
生成概括的模型说明(https://einstein.ai/research/your-tldr-by-an-ai-a-deep-reinforced-model-for-abstractive-summarization)
作者使用了一个biLSTM编码器来读取输入和一个LSTM解码器来产生输出。他们的主要贡献是一种新的内部注意(intra-attention)策略,这种策略是分别关注输入和连续产生的输出,和一种结合了标准的有监督的词预测和强化学习的新的训练方法。
内部注意策略
提出内部注意策略的目的是为了避免输出中的重复。为了达到这个目的,它们在解码时使用时间上的注意力来查看输入文本的已输入片段,然后决定下一个将要产生的字。这迫使模型在生成过程中使用输入的不同部分。他们还允许模型访问解码器以前的隐藏状态。然后将这两个函数组合起来,为输出概括选择最好的下一个单词。
强化学习
为了创建一个概括,需要两个不同的人使用不同的单词和句子顺序,这两个概括才可能被认为是有效的。因此,一个好的概括不一定非要是尽可能匹配训练数据集中单词序列的序列。
由于知道这一点,作者没有采用标准的教师强迫算法来使每个解题步骤的损失最小化,而是依靠强化学习策略,并且证明了这是一个很好的选择。
几乎是端到端模型最好的结果
该模型在美国有线电视新闻网和每日邮报数据集上进行了测试,并取得了最先进的成果。此外,一项带有人类评估者的具体实验结果也显示了人类对于生成的文本在可读性和质量方面的提高。
这些结果是令人钦佩的,该模型的基本预处理过程是:输入文本进行分词,小写字母,数字用“0”替换,然后删除数据集中一些特定的实体。
06 迈出无监督机器翻译的第一步?
双语词典归纳,即用两种语言的源语和单语语料库来识别单词翻译对,这其实是一个古老的NLP任务。自动生成的双语词典有助于其他的NLP任务,如信息检索和统计机器翻译。 然而,这些方法大部分时间都依赖于某种资源,通常是一个初始的双语词典,但是这个词典并不总是可用或者很容易建立。
随着词嵌入方法的成功,跨语言词嵌入的设想也出现了,目标是对齐嵌入空间而不是词典。 不幸的是,第一种方法也依赖于双语词典或平行的语料库。Conneau等(2018)提出了一个非常超前的方法,它不依赖于任何特定的资源,并且在多个语言对(language pairs)的语言翻译,句子翻译检索和跨语言单词相似性三个任务上优于现有的监督方法。
作者开发的方法是将输入的两组单词嵌入在单语数据上进行独立训练来学习它们之间的映射,使得翻译后的内容在空间上接近。他们使用fastText词向量是在维基百科文档上训练出无监督的词向量。
以下图片诠释了他们的核心想法:
红色的X分布是英语单词的嵌入,蓝色的Y分布是意大利语单词的分布。
首先,他们使用对抗学习(adversarial learning-https://en.wikipedia.org/wiki/Adversarial_machine_learning)来学习用于第一次原始对齐的旋转矩阵W.。他们根据Goodfellow等人在2014年提出的想法,主要是是训练了一个生成对抗网络(GAN)。要了解GAN是如何工作的,我建议你读这篇由Pablo Soto撰写的文章(https://tryolabs.com/blog/2016/12/06/major-advancements-deep-learning-2016/)。
为了在对抗学习方面对问题进行建模,他们将判别器定义为确定的角色,给定从WX和Y随机采样的一些元素(参见上图中的第二列),每个元素代表一种语言。然后,他们训练W以防止判别器做出好的预测。
这在我看来非常聪明和优雅的做法,并且直接得出的结果也是相当不错的。
之后,他们再采用了两个步骤来完善整个映射。第一个步骤是为了避免映射计算中由罕见字引入的噪声。另一个步骤是为了使用学习的映射和距离度量来建立实际的翻译。
在某些情况下的结果是非常好的。 例如,对于英语—意大利语之间单词的翻译,在P @ 10的情况下,他们胜过了最佳平均精确度近17%。
作者声称,他们的方法可以看作是迈向了无监督机器翻译的第一步。我们可以看一看这个新的有前景的方法到底能走多远。
07 专业化的框架和工具
通用的DL框架和工具有很多种,比如说被广泛应用的Tensorflow,Keras还有PYTorch。不过,具体到开源的NLP方向的DL框架和工具却刚崭露头脚。今年对我们来说是非常棒的一年,因为有很多有用的开源框架已经在社区里实现了。这其中有三个框架吸引了我的注意力,我觉得各位肯定也会非常感兴趣。
Allen NLP
Allen NLP 框架(http://allennlp.org/papers/AllenNLP_white_paper.pdf)是建立在PyTorch之上的平台,设计之初的目的是为了在语义NLP的任务中用起来更简单。它的目的是让研究者能够设计和评价新的模型。它包括了通用语义NLP任务中的模型的参考实现,这些任务包括语义角色标签、文本蕴含以及共指消解。
Parl AI
Parl AI框架(https://arxiv.org/pdf/1705.06476.pdf)是一个针对对话研究的开源软件平台。该平台是用Python来实现的,旨在为分享、训练以及对话模型测试提供一个联合框架。ParlAI提供了一个非常简单的可以与亚马逊的Mechanical Turk合并机制。它也提供了当下很流行的数据集并且支持好几种模型,包括神经模型,例如:记忆网络、seq2seq和LSTMs。
Open NMT
OpenNMT工具集是一个通用的针对序列到序列的模型的框架。它可以用来执行机器翻译、总结以及图像到文字、语音识别的任务。
08 终极思考
DL技术的使用在解决NLP问题中的稳步增长是不容置疑的。最能说明的一个指标就是过去几年中,深度学习论文中使用关键NLP会议中的占比的变化,例如ACL、EMNLP、EACL和NAACL。
然而,真正的端到端的学习才刚刚开始。我们正在处理典型的NLP任务来为数据集做准备,例如,清理,标记化或者一些实体的统一(例如:URL,数字、电子邮箱等)。我们也用通用的嵌入式,缺点就是它们不能抓住特殊领域的关键词的重要性,而且它们在多文字表达中表现的很糟糕,这是我在工作的项目中反复发现的一个关键问题。
对应用于NLP的深度学习来说,今年是非常不错的一年,希望2018年能有更多端到端的学习著作,能有更多趋于成熟的开源框架。你可以在评论区和我们尽情分享你对这些著作和框架的思考和意见,更欢迎你分享本文没有提到的框架和著作。
延伸阅读
更多深度学习在NLP研究中的应用趋势相关信息,强烈推荐这篇论文 “Recent Trends in Deep Learning Based Natural Language Processing” by Young et al. (2017).
https://arxiv.org/pdf/1708.02709.pdf
另一篇比较有趣的文章“From Characters to Understanding Natural Language (C2NLU): Robust End-to-End Deep Learning for NLP” by Blunsom et al. (2017)
http://drops.dagstuhl.de/opus/volltexte/2017/7248/pdf/dagrep_v007_i001_p129_s17042.pdf
CNN和RNN在NLP中的对比研究,请参看 Comparative Study of CNN and RNN for Natural Language Processing, by Yin et al. (2017).
https://arxiv.org/pdf/1702.01923.pdf
想要更直观地了解 GANs是如何工作的,推荐这篇文章:The major advancements in Deep Learning in 2016
https://tryolabs.com/blog/2016/12/06/major-advancements-deep-learning-2016/
关于Word embedding的详细解释,推荐阅读Word embeddings: how to transform text into numbers,这篇文章以寓教于乐的方式解释了不同的方法,以及关于Word embedding的一些少有人知道的内容
https://monkeylearn.com/blog/word-embeddings-transform-text-numbers/
关于Word embedding的内容,推荐你一篇非常不错且详细的文章: About Word embeddings in 2017: Trends and future directions.
http://ruder.io/word-embeddings-2017/
如果喜欢我们的文章,欢迎订阅。
https://tryolabs.com/blog/2017/12/12/deep-learning-for-nlp-advancements-and-trends-in-2017/#subscribe
参考
From Characters to Understanding Natural Language (C2NLU): Robust End-to-End Deep Learning for NLP Phil Blunsom, Kyunghyun Cho, Chris Dyer and Hinrich Schütze (2017)
http://drops.dagstuhl.de/opus/volltexte/2017/7248/pdf/dagrep_v007_i001_p129_s17042.pdf
BB_twtr at SemEval-2017 Task 4: Twitter Sentiment Analysis with CNNs and LSTMs Mathieu Cliche (2017)
https://arxiv.org/abs/1704.06125
Word Translation without Parallel Data Alexis Conneau, Guillaume Lample, Marc’Aurelio Ranzato, Ludovic Denoyer, Hervé Jégou (2018)
https://arxiv.org/abs/1710.04087
Generative adversarial nets Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville and Yoshua Bengio (2014)
https://arxiv.org/abs/1406.2661
Distributional structure Zellig Harris (1954)
https://doi.org/10.1080/00437956.1954.11659520
OpenNMT: Open-source toolkit for neural machine translation Guillaume Klein, Yoon Kim, Yuntian Deng, Jean Senellart and Alexander M Rush. (2017)
https://arxiv.org/abs/1701.02810
Multiplicative lstm for sequence modelling Ben Krause, Liang Lu, Iain Murray and Steve Renals (2016)
https://arxiv.org/abs/1609.07959
Parlai: A dialog research software platformAlexander H Miller, Will Feng, Adam Fisch, Jiasen Lu, Dhruv Batra, Antoine Bordes, Devi Parikh and Jason Weston (2017)
http://www.aclweb.org/anthology/D17-2014
Linguistic Regularities in Continuous Space Word Representations Tomas Mikolov, Scott Wen-tau Yih and Geoffrey Zweig (2013)
https://www.aclweb.org/anthology/N13-1090
Glove: Global vectors for word representation Jeffrey Pennington, Richard Socher and Christopher D. Manning (2014)
https://www.aclweb.org/anthology/D14-1162
Learning to Generate Reviews and Discovering SentimentAlec Radford, Rafal Jozefowicz and Ilya Sutskever (2017)
https://arxiv.org/abs/1704.01444
A Simple Regularization-based Algorithm for Learning Cross-Domain Word Embeddings Wei Yang, Wei Lu, Vincent Zheng (2017)
https://arxiv.org/abs/1704.01444
Comparative study of CNN and RNN for Natural Language Processing Wenpeng Yin, Katharina Kann, Mo Yu and Hinrich Schütze (2017)
https://arxiv.org/abs/1702.01923
Recent Trends in Deep Learning Based Natural Language Processing Tom Younga, Devamanyu Hazarikab, Soujanya Poriac and Erik Cambriad (2017)
https://arxiv.org/abs/1708.02709
原文地址:https://tryolabs.com/blog/2017/12/12/deep-learning-for-nlp-advancements-and-trends-in-2017/