大家好,又见面了,我是你们的朋友全栈君。
- 最近阅读了Mikolov两篇关于word2vec的论文,结合Goldberg对这两篇论文的解读,作如下概述。
- 概述
在较早的论文“Efficient Estimation of Word Representations in Vector Space”中,Mikolov讨论了Feedforward Neural Net Language Model (NNLM)、Recurrent Neural Net Language Model (RNNLM)以及论文中描述的两个新模型Continuous Bag-of-Words Model (CBOW)和Continuous Skip-gram Model (Skip-gram).
Distributed Representations of Words and Phrases and their Compositionality
”中,作者对Skip-gram做了进一步的论述和扩展。本文详细描述Skip-gram的原理及扩展。
- 定义及符号
T
w,使用长度为d的列向量表示
w
为中心,向前k个单词,向后k个单词所形成的短语中包含的单词
θ
c
|
w
):当
w
出现时,某一语境
c
出现的概率
w
):在文本集合
T
中,单词
w
出现过的语境包含的单词的集合
c,使用长度为d的列向量表示
c
∈
C(
w
)
w
均表示单词,但作者认为,即使对于同一个单词,比如apple,它作为普通单词和作为语境中的单词是的向量表示是不同的,因此使用不同的符号来表示语境中的单词和普通单词。
w
和它的语境
C(
w
)
构成的组合的集合
- Skip-gram
Skip-gram的目标是寻找参数集合
θ来最大化如下条件概率的乘积:
θ
进行形式化处理,使得条件概率转化为下式:
c
和
w
的列向量,维度为d。
C
是所有语境中的单词构成的集合,等同于词汇表V。参数
θ
就是vc和vw中每一维度的具体取值,参数的总数为|C|
×|V|×
d
。将式3代入式2,并于等式两边取对数可得:
p(
c
|
w
)的分母计算需要很大代价,作者使用hierarchical softmax来近似softmax,并用霍夫曼树来构建hierachical softmax.
- Negative Sampling
另一种降低计算代价的方法是改变目标函数。对于一个单词、语境组合(
w,
c
),使用p(D=1|
w,
c
)来表示这个组合存在于
T
中的概率,对应的
p(D=0|
w,
c
) = 1-
p(D=1|
w,
c
)
,表示
(
w,
c
)不在
T
中的概率。与前文类似,假设集合
θ是控制
p(D=1|
w,
c
)分布的参数,那么此时的目标是寻找参数集合θ来最大化
(
w,
c
)存在于
T
中的概率:
w,
c;
θ
):
p(D=1|
w,
c
)=1,从而达到目标函数最大化。因此,为了所有的矢量有相同的值,作者生成了一个数据集D’,D’中的所有单词、语境组合都不存在于
T
中,这些样例被称之为反例(negative examples),而获得反例的采样方法被称之为反例采集(negative-sampling)。引进了反例之后的目标函数演变为:
p(
c
|
w
)进行建模而此处根据联合概率
p(D=1|
w,
c
)进行建模
- 参考文献
- Efficient Estimation of Word Representations in Vector Space
- Distributed Representations of Words and Phrases and their Compositionality
- word2Vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method
- Softmax Regression,
www.cnblogs.com/tornadomeet/archive/2013/03/22/2975978.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145479.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...