1.word2vec和深度学习有什么关系
1、计算机视觉
ImageNet Classification with Deep Convolutional Neural Networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, NIPS 2012.
Learning Hierarchical Features for Scene Labeling, Clement Farabet, Camille Couprie, Laurent Najman and Yann LeCun, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013.
Learning Convolutional Feature Hierarchies for Visual Recognition, Koray Kavukcuoglu, Pierre Sermanet, Y-Lan Boureau, Karol Gregor, Micha?l Mathieu and Yann LeCun, Advances in Neural Information Processing Systems (NIPS 2010), 23, 2010.
2、语音识别
微软研究人员通过与hintion合作,首先将RBM和DBN引入到语音识别声学模型训练中,并且在大词汇量语音识别系统中获得巨大成功,使得语音识别的错误率相对减低30%。但是,DNN还没有有效的并行快速算法,很多研究机构都是在利用大规模数据语料通过GPU平台提高DNN声学模型的训练效率。
在国际上,IBM、google等公司都快速进行了DNN语音识别的研究,并且速度飞快。
国内方面,阿里巴巴,科大讯飞、百度、中科院自动化所等公司或研究单位,也在进行深度学习在语音识别上的研究。
3、自然语言处理等其他领域
很多机构在开展研究,2013年Tomas Mikolov,Kai Chen,Greg Corrado,Jeffrey Dean发表论文Efficient Estimation of Word Representations in Vector Space建立word2vector模型,与传统的词袋模型(bag of words)相比,word2vector能够更好地表达语法信息。 深度学习在自然语言处理等领域主要应用于机器翻译以及语义挖掘等方面。
2.如何用 word2vec 计算两个句子之间的相似度
计算A,B句子里每两个词的距离 i.e. D = dist(A_i, B_j) over all i,j(这里用Euclidean distance b/t the word embeddings, from w2v)。
生成optimal transport (也叫earth mover's distance a.k.a. EMD)problem,给solver(网上有很多各种语言的EMD solver)。输入是D, A所有词的词频(A_BOW i.e. bag of words), B所有词的词频(B_BOW)。
EMD基本概念就是把两个句子看成两个probability distribution的histogram,A的是山,B的是坑,用A的山填B的坑,每两个histogram格之间搬运一个词频单元需要做的功是两词间的距离。EMD返回的就是A,B的距离,1,2,3对每两篇文章可以CPU平行。
3.如何评价Word2Vec作者提出的fastText算法
astText简而言之,就是把文档中所有词通过lookup table变成向量,取平均后直接用线性分类器得到分类结果。fastText和ACL-15上的deep averaging network [1] (DAN,如下图)非常相似,区别就是去掉了中间的隐层。两篇文章的结论也比较类似,也是指出对一些简单的分类任务,没有必要使用太复杂的网络结构就可以取得差不多的结果。
文中实验选取的都是对句子词序不是很敏感的数据集,所以得到文中的实验结果完全不奇怪。但是比如对下面的三个例子来说:
The movie is not very good , but i still like it . [2]
The movie is very good , but i still do not like it .
I do not like it , but the movie is still very good .
其中第1、3句整体极性是positive,但第2句整体极性就是negative。如果只是通过简单的取平均来作为sentence representation进行分类的话,可能就会很难学出词序对句子语义的影响。
从另一个角度来说,fastText可以看作是用window-size=1 + average pooling的CNN [3]对句子进行建模。
总结一下:对简单的任务来说,用简单的网络结构进行处理基本就够了,但是对比较复杂的任务,还是依然需要更复杂的网络结构来学习sentence representation的。
另外,fastText文中还提到的两个tricks分别是:
hierarchical softmax
类别数较多时,通过构建一个霍夫曼编码树来加速softmax layer的计算,和之前word2vec中的trick相同
转载请注明出处51数据库 » word2vec情绪分析