当前位置: 首页 > 科技观察

深度学习的下一个重大突破会是机器阅读吗?

时间:2023-03-21 20:11:43 科技观察

机器阅读将是深度学习的下一个重大进展回顾2016年,深度学习在应用领域取得了三大进展。1、谷歌DeepMind的AlphaGo打败了人类围棋顶尖高手。2.谷歌翻译上线,达到人类般的准确性。3、特斯拉AutoPilot投入使用,让自动导航成为大众的日常工具。展望2017年,深度学习在应用领域将会有新的突破,其中亮点之一就是机器阅读。书籍是人类文明的主要传承工具。让机器掌握自动阅读的能力,将颠覆性地降低知识传承和使用的难度。机器阅读之所以可能在2017年取得突破性进展,是因为机器翻译的工作原理可以推广到机器阅读领域。文本摘要的研究,2016年取得的进展,已经指明了机器阅读的方向。所谓文本摘要,就是将整篇文章输入电脑,电脑自动输出文章的中心思想。文本摘要的工作原理与机器翻译相同。机器翻译、编码和解码的原理机器翻译的工作原理说起来简单,先编码,再解码[1]。编码的任务是将输入的文章转化为一系列数字向量,其中包含了文章中每个词的语义和语法信息,就像DNA一样。译码的任务是将数字向量一个一个地转换成其他语言的单词,完成翻译。任务明确之后,再说说如何实现。如何提取文章中每个词的语义信息?机器翻译使用两种方法,1.词向量,包含了一个词的语义信息。词向量的实现采用了神经网络和语言模型的结合,后面会介绍。2.语义向量,语义向量包含了文章开头到当前词的主要语义,也包含了当前词到文章结尾的主要语义,所以语义向量也称为上下文向量。语义向量的实现使用了LSTM的hiddenstate,后面会介绍。除了语义信息,编码是否需要容纳句法和统计信息?文本摘要的研究者提出在编码中加入语法词性标注(POStagging)、实体标注(NER)、信息挖掘统计(TF-IDF)等信息[2]。悬念是,代码中还应该容纳哪些有用的信息呢?更大的悬念是如何提高编码的正确性,准确、全面地表达原文的语义和语法信息?编码的实现原理编码的实现依赖于词向量和语义向量。词向量的实现结合使用了神经网络和语言模型[3]。先说语言模型。语言模型的任务是根据前面的文本预测下一个单词。什么是最有可能的?有时听众会打断对方的发言说:“你不用说了,我已经猜到你接下来想说什么了。”这样的听众在他们的脑海中有着优秀的语言模型。人类语言是有缺陷的。“领土”和“边界”虽然不是同一个词,但意思是一样的。语言模型将每个人类词汇映射到一个词向量。词向量是数字向量。数字向量的优点是很容易计算数字向量之间的距离。同义词的词向量之间的距离为零,同义词的词向量之间的距离很短。人类的词汇,存在多义词的情况。词向量的技术问题是如何为多义词配置多个词向量。[3]使用神经网络根据前面的文本预测下一个出现的单词。所谓预测,其实就是估计词库中所有的词,哪个词下一次出现的概率最高。神经网络扮演的角色是一个概率模拟器。当预测准确时,神经网络中的很多参数不需要调整。当预测不准确时,调整这些参数以提高后续预测的准确性。这就是语言模型训练的过程。由于需要估计所有词在词典中出现的概率,因此训练语言模型的计算量往往大得惊人。解决办法是尽可能减少候选词的数量。有很多种方式,比如beamsearch。语义向量的实现依赖于LSTM(长短期记忆)。LSTM也是一种具有两个特征的神经网络[4]。1.循环:神经网络的前一个输出将作为同一个神经网络的下一个输入。因此,LSTM是处理序列的强大工具。句子是一种序列。序列的例子包括股票价格波动、心电图、音频和视频等。2.遗忘:句子中每个词的重要性不同,记住重要的词,忘记多余的词。人类的记忆力是有限的,因此在听演讲时往往需要记笔记,记住要点。计算机的内存是无限的,但要避免噪音淹没要点,需要权衡取舍。人类听讲座并在笔记本上记下要点。当LSTM处理序列时,它将关键点存储在隐藏状态中。隐藏状态(HiddenState)也是一个数字向量,隐藏状态数字向量的维数往往高于词向量的维数。这就像能够在笔记本上写下很多单词。但是隐藏状态向量并不是词向量的简单累加。隐藏状态向量是上下文词向量的拼接,就像基因拼接一样。LSTM的隐藏状态向量胜任上下文语义向量的功能。但是隐藏状态向量的弱点是它的意义是模糊的,就像基因难以读取一样。良好的隐藏状态向量,易于识别。如果使用Autoencoder[5]将隐藏状态向量恢复为原文,则恢复的原文越接近真实原文,隐藏状态向量的质量就越好。但是不好的隐藏状态向量在哪里,很难识别。因为,隐藏状态向量的意义是模糊的。这是一个需要研究的问题。除了细化上下文语义,LSTM还可以做很多事情,比如为文章中的每个词汇标记词性,识别文章中的地址名称等短语。LSTM作为神经网络的一种,同样需要训练,而训练需要语料库。不同的任务,例如词性标注和短语识别,需要不同的训练语料库。获取大量语料也是一个问题。例如,有人提议收集文章及其标题作为文本摘要的训练语料库。但是到了头条党,这个方法就不行了。解码的理想状态类似于翻译的理想状态。1、“信”:语义要正确,不能曲解。2、“哒”:用词要恰当,即使意思相同,用词不同,声调也会大不相同。3、“雅”:字要流畅。解码器的实现原理与词向量的实现原理类似。它依赖于语言模型。根据上一篇文章,词库中哪个词最有可能预测下一个词?不要忘记,估计词库中所有单词出现的概率往往需要惊人的计算量。要达到“信”的境界,机器翻译的难度要小一些,因为翻译基本上是一个字一个字地一对一翻译。对于文本摘要,“字母”更难。如何提取关键点?人类在做总结的时候,往往是提炼论据,而不是提炼论据。他们往往提取故事的结局,而不提取故事的过程。如何让计算机区分论证与论证、结局与过程?这是一个需要研究的问题。因此,对于机器翻译来说,解码器的输入只需要原文中的词向量和语义向量,翻译就可以相当准确了。然而,对于文本摘要,除了词向量和语义向量之外,还需要词性标注、短语识别和TF-IDF。信息越丰富,摘要就越简洁。简单粗暴的方法就是提取原文中每段的首句或首两句,如果两段首句语义相同则忽略其中一句。机器翻译很难达到“reach”的水平。每种语言都有同义词,但同义词之间的声调差异往往难以界定。对于文本摘要,“达”的难度相对较低,简单粗暴但有效的方法是直接引用原文中的词语。引用原文词汇的另一个好处是大大减少了计算量。更学术地说,这被称为LVT,LargeVocabularyTricks[6]。麻烦的是,原文有很多词,下一个词应该指原文中的哪个词?解决方法是先用语言模型根据当前词向量和语义向量预测下一个词的词向量。然后去原文中寻找最合适的词汇。找到它的方法,用学术的话说,叫做Attention[1]。总体思路是根据原文中每个词的语义、语法词性、词组标注、TF-IDF统计信息、上下文的语义等对原文中的每个词进行评价。词向量的相关性。但是Attention方式也导致计算量巨大。[2]提出了一种减少计算量的方法,首先评估每个句子的相关性,找到相关的句子,然后评估这个句子中每个词汇的相关性。要达到“雅”的境界,无论是机器翻译还是文本摘要,都需要选择下一个词,必须与前面的词汇流畅。对于文本摘要,下一个词的选择不能使用原文中的所有词。实施有两个要素。1.预先从训练语料库中构建一个摘要词典。2.实现一个switch函数,决定是从词库中选词还是从原词库中抽取词。switch函数可以使用sigmoid函数。输入有3个,前一篇文本中的词汇,预测的下一个词的词向量,以及Attention找到的原文中最合适的词汇。未来要解决的问题不仅是进一步降低语言模型的计算量,还要识别原文中每个句子和词汇的重要性。未来最大的挑战可能是如何参考外援知识。人类阅读时,经常需要查字典和参考资料。引用援外知识的目的是为了扩展读者已有的知识结构,消除现有知识结构与文章内容之间的差距。阅读之后,进一步扩充已有的知识结构。这就是人类通过阅读不断学习知识的过程。知识结构的表达方式有很多种,“一图胜千言”,自然语言似乎并不是最高效的表达方式。知识图谱由点和边组成,其中点表示概念,边表示一个概念与另一个概念之间的关系。比如“发烧”和“炎症”是两个概念,在知识图谱中用两个点来表达。“炎症”导致“发烧”,在知识图谱中用有向边表示。阅读一篇文章时,如果文章中出现的概念没有出现在已有的知识图谱中,那么阅读起来就会吃力,这就是知识的鸿沟。消除知识鸿沟的方法是查字典,查参考资料,扩大阅读,直到文章中出现的新概念与已有的知识图谱联系起来。如何将文章转化为知识图谱?不妨遵循机器翻译和文本摘要的工作原理,将文章从自然语言转化为知识图谱。换句话说,机器阅读实际上是自然文本的结构化。参考文献[1]通过联合学习对齐和翻译的神经机器翻译https://arxiv.org/abs/1409.0473[2]使用序列到序列RNN及其他方法的抽象文本摘要https://arxiv.org/abs/1602.06023[3]单词和短语的分布式表示及其组合性https://arxiv.org/abs/1310.4546[4]理解LSTM网络http://colah.github.io/posts/2015-08-Understanding-LSTMs/[5]自动编码器教程http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/[6]Onusingverylargetargetvocabularyforneuralmachinetranslationhttps://arxiv.org/abs/1412.2007