Word2vec

知乎-深入浅出Word2Vec原理解析

借鉴其中思维导图.

语言模型

Word2Vec是语言模型中的一种, 它是从大量文本预料中以无监督方式学习语义知识的模型,被广泛地应用于自然语言处理中。

Word2Vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系。因此,我们先来了解一些语言模型方面的知识。

1.背景知识.

统计语言模型、n-gram模型、神经概率语言模型

2.词向量

One-hot、Distributed Representation.

3.Word2Vec的网络结构

CBOW、Skip-gram model

4. 基于分层softmax的模型.

原理

word2vec是一个简单的神经网络,有以下几个层组成:

(1)1个输入层:输入使用的是one-hot编码。即:假设有n个词,则每一个词可以用一个n维的向量来表示,这个n维向量只有一个位置是1,其余位置都是0。

(2)1个隐藏层:隐藏层的神经单元数量,代表着每一个词用向量表示的维度大小。对于输入层和隐藏层之间的权值矩阵,它的形状应该是[vocab_size, hidden_size]的矩阵。

(3)1个输出层:输出层是一个 [vocab_size] 大小的向量,每一个值代表着输出一个词的概率。

word2vec的应用场景 (在工业界的应用)

Word2Vec主要原理是根据上下文来预测单词,一个词的意义往往可以从其前后的句子中抽取出来。

而用户的行为也是一种相似的时间序列,可以通过上下文进行推断。当用户浏览并与内容进行交互时,我们可以从用户前后的交互过程中判断行为的抽象特征,这就使得我们可以把词向量模型应用到推荐、广告领域当中。

NLP领域

Word2Vec学习到的词向量代表了词的语义,可以用来做分类、聚类、也可以做词的相似度计算。
把Word2Vec生成的向量直接作为深度神经网络的输入,可以做sentiment analysis等工作。

图嵌入

基于Word2Vec这一类的Graph Embedding方法有很多,具体可以参考论文:DeepWalk(是引入Word2Vec思想比较经典的图嵌入算法),node2vec,struc2vec 等等。

推荐领域

Airbnb在论文《Real-time Personalization using Embeddings for Search Ranking at Airbnb》中提出将用户的浏览行为组成List,通过Word2Vec方法学习item的向量,其点击率提升了21%,且带动了99%的预定转化率。该论文主要是在Skip-gram 模型的基础上做了改进。
Yahoo在论文《E-commerce in Your Inbox: Product Recommendations at Scale》中提出Yahoo邮箱从发送到用户的购物凭证中抽取商品并组成List,通过Word2Vec学习并为用户推荐潜在的商品;

广告领域

Yahoo在论文《Scalable Semantic Matching of Queries to Ads in Sponsored Search Advertising》中提出将用户的搜索查询和广告组成List,并为其学习特征向量,以便对于给定的搜索查询可以匹配适合的广告。

关于Word2Vec若干问题的思考

(1)Word2Vec两个算法模型的原理是什么,网络结构怎么画?

(2)网络输入输出是什么?隐藏层的激活函数是什么?输出层的激活函数是什么?

(3)目标函数/损失函数是什么?

(4)Word2Vec如何获取词向量?

(5)推导一下Word2Vec参数如何更新?

(6)Word2Vec的两个模型哪个效果好哪个速度快?为什么?

(7)Word2Vec加速训练的方法有哪些?

(8)介绍下Negative Sampling,对词频低的和词频高的单词有什么影响?为什么?

(9)Word2Vec和隐狄利克雷模型(LDA)有什么区别与联系?

以上问题可以通过本文和参考文章找到答案,这里不再详细解答。

(10)介绍下Hierarchical Softmax的计算过程,怎么把 Huffman 放到网络中的?参数是如何更新的?对词频低的和词频高的单词有什么影响?为什么?

Hierarchical Softmax利用了Huffman树依据词频建树,词频大的节点离根节点较近,词频低的节点离根节点较远,距离远参数数量就多,在训练的过程中,低频词的路径上的参数能够得到更多的训练,所以效果会更好。

(11)Word2Vec有哪些参数,有没有什么调参的建议?

Skip-Gram 的速度比CBOW慢一点,小数据集中对低频次的效果更好;
Sub-Sampling Frequent Words可以同时提高算法的速度和精度,Sample 建议取值为 [公式] ;
Hierarchical Softmax对低词频的更友好;
Negative Sampling对高词频更友好;
向量维度一般越高越好,但也不绝对;
Window Size,Skip-Gram一般10左右,CBOW一般为5左右。
(12)Word2Vec有哪些局限性?

Word2Vec作为一个简单易用的算法,其也包含了很多局限性:

Word2Vec只考虑到上下文信息,而忽略的全局信息;
Word2Vec只考虑了上下文的共现性,而忽略的了彼此之间的顺序性;