之前花了5篇介绍了word2vec的方法。词向量最大的意义是把原来的字符串变成了一个数字形式的向量,也就是说现在词和图像变得非常相近,因为图像也就是例如255*255的像素点,而每个像素也是一个数字。因此,词向量被很多任务作为初始的输入,从这开始,我将以轻松的形式来介绍词向量的运用场景。
=
本着先进性的原则,我会介绍最新的16年的论文,以较轻松的形式。今天分析这篇:
用词向量理解词组的含义http://aclweb.org/anthology/Q/Q16/Q16-1002.pdf
Key Idea
作者的核心思想:用词典的定义来训练词组,
如 Piano:
A large keyboard musical instrument with a wooden case enclosing a soundboard and metal strings
那么代表下面一串的词组的向量就应该是piano向量.
训练的话,使用RNN或者一般的Bag of Word 神经网络。
简单来说,RNN训练的目标是
A,large,keyboard,musical,....strings -> Piano
这样一个序列能够得到Piano。
而Bag of Word则是
A->Piano, large->Piano, keyboard ->Piano,...strings ->Pinao这样每个单词可以得到答案Piano.
乍看之下RNN显得要比Bag of Word更合理,但是RNN存在vanishing gradient和迭代更新慢的特点,目前还没有在实用性上得到普及。
效果展示
作者提供了网址来测试他的研究。
我从几个维度来测试了效果,我先试了
A big company in China
可以看到训练数据应该不包含公司的信息,RNN输出的结果基本是乱码,而BOW输出的基本为地名,应该是匹配上了Place in China。
我再试了非常正规的词,路由器。以下定义都是我自己写的,和词典的无关。
A device that can access the Internet
可以看到这次RNN和BOW都得到了精准的答案,modern,在之前的几个结果和符合逻辑,什么server,browser.
最后我试了一个连我都不知道答案的介绍,想看看表现如何。
A book that can kill people。 一本杀人书!
RNN给出了死灵书这样的答案,非常给力啊。而BOW则非常中规中矩,给出了一些书的别称。
自然语言处理尚在发展时期,而不久的将来语义的理解可能不是梦o(∩_∩)o 哈哈。
=