一、如何用 word2vec 计算两个句子之间的相似度
昨天晚上正无聊,看着电视机,无意中看到了感动中国着这个节目,这个节目吊起了我的胃口,这是一个被誉为“中国人年度精神史诗”的电视公益活动,被评为“感动中国2013年度十大人物”的分别是:
隐姓埋名30年的中国核潜艇之父黄旭华;退休后20年坚持每天出诊的仁医胡佩兰;荣誉迟到28年而一生不悔的湖北见义勇为好市民方俊明;35年前仆后继、追逐科技梦想的“油菜花父子”沈克泉、沈昌健;守护开国将军梦想,全心全意为群众服务的革命老人龚全珍;年届90仍然坚持拾荒助学的山东老人刘盛兰;努力改变乡村面貌的基层好干部山西村官段爱平;悬崖边上的护梦人,西藏墨脱山区教师格桑德吉;为报答战友深情,几十年守护天山筑路士兵墓园的老兵陈俊贵;为子女筹学费,耗时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相同
三、word2vec算出的词向量怎么衡量好坏
作者:Fiberleif
链接:http://www.zhihu.com/question/37489735/answer/73314819
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
目前常用的衡量word embedding质量好坏的task主要分为两类:
word analogy & document classification
1.word
analogy task
假设给了一对单词 (a , b) 和一个单独的单词c,
task会找到一个单词d,使得c与d之间的关系相似于a与b之间的关系,举个简单的例子:(中国,北京)和 日本,应该找到的单词应该是东京,因为北京是中国的首都,而东京也是日本的首都。 在给定word
embedding的前提下,task一般是通过在词向量空间寻找离(b-a+c)最近的词向量来找到d。
2.document
classification task
这是一种通过使用词向量来计算文本向量(可以被用来进行文本分类的工作)的方法,为了得到文本向量,task通常采用了一种很简单的方法:取文本中所有词的词向量的平均值来代表该文本的文本向量,进而通过文本分类的准确度来反向评价训练出的词向量的质量。
对于给定的word embedding,以上的方法确实可以大致地评价词向量的质量好坏,但我们不应该局限于它们,就像楼上所言,我们应该以word embedding对于实际任务的收益为评价标准,如果脱离了实际任务,很难讲不同的word embedding谁比谁更“好”,因为word embedding更像是一个解决问题所使用的工具而不是一个问题的终点。
四、Word2vec的词聚类结果与LDA的主题词聚类结果,有什么不同
所以Word2vec的一些比较精细的应用,LDA是做不了的。
比如:1)计算词的相似度。同样在电子产品这个主题下,“苹果”是更接近于“三星”还是“小米”?2)词的类比关系:vector(小米)- vector(苹果)+ vector(乔布斯)近似于 vector(雷军)。
3)计算文章的相似度。这个LDA也能做但是效果不好。
而用词向量,即使在文章topic接近的情况下,计算出的相似度也能体现相同、相似、相关的区别。反过来说,想用词向量的聚类去得到topic这一级别的信息也是很难的。
很有可能,“苹果”和“小米”被聚到了一类,而“乔布斯”和“雷军”则聚到另一类。这种差别,本质上说是因为Word2vec利用的是词与上下文的共现,而LDA利用的是词与文章之间的共现。
PS. 说起来,拿LDA和doc2vec比较才比较合理啊~~。
转载请注明出处51数据库 » word2vec做短文本分类