大家好,这里是“黑龙江大学自然语言处理实验室”。我们将成为大家了解科研,了解自然语言处理的一个很好的途径。如果大家有什么意见或者看法,都可以和我留言的。欢迎大家提问,多多互动~
程序员的那些事的微信公众平台:iProgrammer,并已征询伯乐在线的转载许可。其他朋友如需转载,请自行联系伯乐在线咨询许可。
阅读原文”即可查看该链接
简介
单隐层神经网络
单词嵌入(Word Embeddings)
判断5元组是否成立的模块网络(来自于Bottou (2011))
t-SNE对单词嵌入的可视化结果。左图:数字区间。右图:工作岗位区间。来源:Turianet al.(2010)
哪些词的嵌入离一个给定词最近?来自于Collobertet al.(2011)
couple people sing well”),句子的成立性并没有变化。虽然从字面上看,句子变化很大,但如果W把同义词(像“few”和”couple”这种)映射到相近的空间,从R的角度来看句子的变化很小。
red” )。进一步地,我们可以替换多个单词(例如“the wall is blue” → “theceiling is red”)。它的影响对单词数目来说是指数级的 (参见注解4)。
来自于Mikolovet al.(2013a)
单词嵌入展示了一个更引人注目的属性:单词间的类比仿佛是被编码在了单词向量的区别中。比如,这个看来是个男-女区别向量:
W(‘‘woman”)−W(‘‘man”) ≃ W(‘‘aunt”)−W(‘‘uncle”)
W(‘‘woman”)−W(‘‘man”) ≃ W(‘‘queen”)−W(‘‘king”)
she is the aunt” ,“he is the uncle.”。同样的,“he is the King”, “she is the Queen.”。如果你看见“she is the uncle,” 最可能的解释就是这句话有语法错误。这个情况看起来很可能是:一半的时候单词都被随机地替换了。
单词嵌入中的关系对。来自 Mikolovet al.(2013b).
共同表征
W和F学习完成任务A, G可以根据W来学习完成任务B
“利用单词特征表示…已经成为近年来许多NLP系统成功的秘密武器,包括命名实体识别,词性标注,语法分析和语义角色标注。(Luong et al. (2013) ”
et al. (2013a) 提出的双语单词嵌入。我们可以从两种不同语言中把单词嵌入到一个共享的空间去。在这个例子里,我们学习把汉语和英语嵌入到同一个空间去。
双语单词嵌入的t-SNE可视化图。绿色是中文,黄色是英文。来自(Socheret al.(2013a))
(来自Socher et al. (2013b)
(来自Socher et al. (2013b))
et al. (2013))。之后他们又做了一个新的版本(Norouziet al.(2014))。两者都基于非常有效的图像分类模型(来自 Krizehvsky et al.(2012)),但它们使用了不同的方式把图像嵌入到单词嵌入空间去。
这些结果都利用到一种“这些词是相似的”的推断。但是看起来根据词之前的关系应该有更有力的结果。在我们的单词嵌入空间里,在男性和女性词上有一个一致的差异向量。相似的,在图像空间中,也有一致的可以区分男性和女性的特征。胡子,八字胡,秃顶都是强烈的,可见的男性特征。胸部,及没那么可靠的如长发,化妆品及珠宝这些是明显的女性特征(参见注解6)。即使你从来没见过一个国王,如果一个带着王冠的王后突然有了胡子,那把她变成男人也是很合理的。
递归神经网络
学习单词嵌入的模块化网络(来自Bottou (2011))
(来自 Bottou (2011))
我们可以通过加入一个关联模块A来解决这个问题。这个关联模块可以将两个单词或词组的表征合并起来。
(来自Bottou (2011))
这样的模型通常被称作“递归神经网络”因为一个模块经常会使用另外一个同类型模块的输出。有时候它们也被称作“树形神经网络tree-structured neural networks”。
et al. (2013c) 就利用了一个递归神经网络来预测句子的情感:
(来自 Socher et al. (2013c))
(来自 Bottou (2011))
et al. (2014)在词组表征上有了一些进展,他们做了一个能把英语词组编码,解码成法语的模型。来看看它学习出来的词组表征吧!
词组表征的t-SNE的一小部分(来自Choet al.(2014))
批判
有关上面我们综述的一些结果,我也听说有其他领域的研究人员,尤其是NLP和语言学的人,对他们进行了批判。他们的顾虑倒不是针对结果本身的,反而是从结果中得出的结论以及他们和其他方法的区别。
结论
github来pull。)
致谢
当你有n个输入神经元时,构建所有可能的输入情况需要2^n个隐神经元。在实际操作中,通常不会这么严重。你可以采取能够包含不同输入的情况。你也可以采用重叠的情况,他们利用叠加的方式来在交集处获得正确的输入。
不仅是感知器网络才有普适性。多层感知器(sigmoid neurons)网络(及其他激发函数)也具有普适性:给予足够的隐节点,他们估算任何连续函数都可以得到不错的结果。因为你不能简单地孤立输入,所以想看明白这点是十分复杂的。
单词嵌入最初是由(Bengio et al, 2001; Bengio et al, 2003)开发的。那是2006年深度学习重构开始的前几年,那时神经网络被认为是过时的。而符号话的向量表示(distributed representations)的概念就更老了,比如(Hinton 1986)。
这篇开创性的文章:A Neural Probabilistic Language Model (Bengio, et al.2003)里包含了很多单词嵌入为何有力的解释。
之前也有对图像和标签联合分布建模的工作,但他们的观点和我们要描述的截然不同。
编辑:潘达
点击阅读原文查看更多