目录
课程介绍了各种各样的深度学习网络与应用,是时候从更高层次思考自然语言处理存在的问题与展望未来了。虽然BiLSTM与attention几乎统治了NLP,但在篇章级别的理解与推断上还不尽人意。
新时代人们正在“解决”语言
深度学习填平了领域鸿沟,许多计算机视觉的泰斗级学者也开始研究起自然语言处理的各种任务。
这里提到的自然语言理解、机器翻译都是较高层次、更难的任务,现有系统做得并不那么好。
旧时代的热血
早期NLP学者拥有崇高的目标,希望让机器像人一样理解语言;但奈何数据和计算力都有限,使得成效甚微。Manning说今天我们有了海量的数据与强大的计算力,却往往自满于跑个LSTM,而不愿意挑战这个终极目标。
AI的师祖Norvig (1986)的Ph.D.论文The unified theory of inference中举了个例子,希望机器从一篇文章中理解如下信息:
其中a和b即便是最前沿的技术也无法自动推断,因为在文本没有提到海与岛的关系,也没提到渔网,省略了太多背景知识。
所以Norvig认为,必须先建立一个包罗万象的知识库,才能进行自然语言理解。但最近二十年,没有知识库我们也完成了许多NLP任务,并且模型学到的“知识”是连续的表示,而不是“知识库”中的离散表示。
Norvig假想的系统中含有如下4种推断(inference):
-
Elaboration:连接两个实体,表示解释说明
-
Reference Resolution:就是指代相消
-
View Application:比喻、活用、习语
-
Concretization:具体化,一般化,比如TRAVELLING is an AUTOMOBILE is an instance of DRIVING
基础NLP:在进步
Norvig写博士论文的时候,连像样的句法分析器都没有,所有句子都是手工分析的。现在我们有了全自动的句法分析器:
但现代NLP依然没有完成Norvig设想的宏伟目标——自动推断:
也许是时候开始挑战这个宏伟目标了。
我们还需要什么
现在BiLSTMs with attention已经统治了NLP领域,你可以在任何任务上应用它,得到超越其他方法的好成绩(就如同若干年前的CRF和SVM一样)。
另外神经网络方法也带来了自然语言生成领域的文艺复兴(MT、QA、自动摘要……)
这些现代突破都没有采用Norvig假想的“知识库”。究竟是否需要一个显式的、localist(应该指的是领域相关的)语言与知识表示和推断机制,这是一个亟待探讨的科学问题。
虽然神经网络隐含了知识表达,我们也已经取得了如此多的成就,但我们建立和访问记忆或知识的手段依然十分原始。LSTM只是短时记忆,并不能与人类经年累月的经验与记忆相比。LSTM只是线性地扫描最近100个单词而已。
另外,现有模型也无法制定和执行目标或计划。这对对话系统而言非常重要,对话应当是有意义有目标的,而不是闲扯。
虽然句子级别的分析已经可以做到很清楚,句子之间的关系(顺承、原因、转折)则无法理顺。
而且现在无论多深的网络,依然缺少理解语言解释说明的常识或背景知识(虽然模型可能不够复杂,我觉得数据量不够也是很大原因,人类从小到大接受了多少文化教育,你能提供给神经网络的标注语料能有多少个句子)。
接下来介绍一些前沿的尝试“盗火”的研究。
Recursive Neural Networks用于意识形态检测
作为语言学者,Manning还是很喜欢树形模型(赞成)。他的学生尝试用Recursive Neural Networks检测人们在政治上是保守的还是自由激进的等等。
这并不是句子级别或段落级别的分析,而是文章级别的分析。一些政治术语被复合起来检测最终的政治倾向(用不同颜色表示)。红色表示保守的:
TreeRNN
树形模型理论上很有吸引力,但非常慢,需要外部句法分析器(如果用内部的则更慢),而且也没有用到语言的线性结构。
recurrent NN训练快
线性结构的模型适合batch训练,因为对每个训练实例,模型结构都是一样的。
TreeRNN结构取决于输入
所以无法并行化,一个线程在训练某种结构的模型,其他线程得等它。
The Shift-reduce Parser-Interpreter NN (SPINN)
为了提高tree模型的训练效率,人们活用Shift-reduce依存句法分析的思想,将模型的树形机构拆分为动作序列,得到了25倍的速度提升。这还产生了“线性”与“树形”模型的混血,可以离开外部句法分析器独立运行。
binary trees = transition sequences
具体拆分方法如下:
shift入栈,reduce合并。
架构
模型与parser类似,有stack和buffer储存单词,tracking由LSTM负责track并决策动作,TreeRNN负责拼装成分的表达。LSTM还将上文的表示送给TreeRNN拼装,这似乎解决了树形模型无法捕捉语言的线性结构的问题。
感谢感谢博主!!
英文还是不好,看这课的video看得很懵很懵
多亏您的博文