Word2Vec
背景知识
Word2Vec是一种词向量的表示方式,是在论文《Efficient Estimation of Word Representations in
Vector Space》中提出,有两种网络模型来训练(Skip-gram和CBOW模型)。由Word2Vec训练出来的词向量可以提升下游任务的性能、效果。
语言模型
语言模型是计算一个句子是句子的概率模型,即判断该句子是否合乎语义和语法。语言模型的建立方法有:基于专家语法规则的语言模型、统计语言模型、神经网络语言模型。
**基于专家语法规则的语言模型:**是由语言学专家设置一套规则而形成的语言模型,例如主谓宾结构的。
**统计语言模型:**基于统计概率的语言模型,即判断这个句子形成的概率。P(S)是句子的概率,P(W_i)是每个单词的概率。
每个单词的概率是基于一定文档(语料)来求取的,即有一定数量的文档,统计每个单词在所有文档中出现的次数,再除以所有单词的总数,进而求得该单词的频率,用频率代替概率。
统计语言模型中的平滑操作: 由于基于一定数量的文档而形成的词典并不能囊括世界上所有的单词,再者由于新词的产生,一定会出现一些词或词组是在语料中没有出现的,但是在现实中这种词或词组是真实存在的。为解决这一问题,可使用平滑操作,即对所有词初始状态就有一个很小的概率。方法:Laplace Smoothing(加1平滑),即每个词在原先出现次数的基础上加1.
马尔可夫假设: 即下一个词的出现仅仅依赖于前面的一个词或几个词。基于该假设有经典的语言模型:N-gram模型。常见的N-gram模型有:1-gram、2-gram、3-gram模型。下一个词的出现依赖于前N-1个单词。
语言模型的评价指标:困惑度
困惑度:
句子概率越大,语言模型越号,困惑度越小。
词表示
one-hot表示 形成一个V维的词表,每个词在其中一个位置上表示为1,其他位置为0.
分布式词表示 每个词都是一个维度为D的一维向量,这种表示方法可以判断单词之间的相似度。
对比模型
NNLM
NNLM,即前馈神经网络语言模型。根据前n-1个单词来预测第n个单词的概率。
RNNLM
RNNLM,基于循环神经网络的语言模型。在每个时间步预测一个单词,在预测第n个单词时使用了前n-1个单词的信息。
模型结构
Word2Vec中有两种网络模型结构:skip-gram和cbow。Word2Vec的基本思想是句子中相近的词之间是由联系的,所以用词来预测词。其中skip-gram模型是中心词预测周围词,cbow模型是使用周围词预测中心词。
skip-gram模型
CBOW模型
计算方式:
关键技术
使用关键技术来降低模型复杂度:层次softmax和负采样。
Hierarchical Softmax (层次Softmax)
层次Softmax的基本思想是将求Softmax的计算转换为求Sigmoid的计算,采用Huffman树的方式,即带权重路径最短二叉树。
层次softmax的构建
Skip-gram模型
Cbow模型
负采样(Negative Sampling)
负采样的基本思想是:增大正样本的概率,减小负样本的概率。
单词采样频率的确定:
归一化的用处在于:减少频率大的词的抽样概率,增加频率小的词的抽样概率。
负采样方法:
重采样:
模型复杂度分析
模型复杂度:O=E✖T✖Q
其中:O是训练复杂度
E是训练迭代次数
T是数据集大小
Q是模型计算复杂度
网络模型的计算复杂度是由网络中的参数个数决定的。
代码实现
待续》》