深入浅出Word2Vec(待续)

本文深入解析Word2Vec的Skip-Gram模型,阐述模型参数、目标函数及负采样的必要性,探讨模型细节,并提供评估词向量质量的方法,包括可视化观察、相似度测试和类比推理。

一、简介

Word2Vec作为NLP领域深度学习的基础,是不可以不知道的,虽然从18年年底至今已经有Bert、GPT等预训练模型形成了NLP未来的趋势,但其还是基于W2V的向量和思想预训练出来的。

在学习W2V的过程中参看了很多blog,但是要么都是公式引用长篇大论,要么三言两语只谈及一小块,本blog希望从主要原理的出发,用尽可能简介的逻辑剖析清楚W2V的核心框架,如有需要改进的地方还希望多多指出。

二、模型细节

2.1 Skip-Gram模型

Word2Vec分为两种:Skip-gram模型和CBOW模型,CBOW模型通过上下文预测中心词,而Skip-gram模型通过中心词预测上下文。本文着重介绍Skip-gram模型。
在这里插入图片描述

2.1.1 模型参数

模型参数 θ \theta θ包括矩阵U和V,矩阵维度均为 n × d i m n\times dim n×dim,n表示词典中的词数,dim表示词向量维数。
θ = [ U , V ] \theta=[U,V] θ=[U,V]
每一个词有两种角色“中心词”和“上下文”,当作为上下文时从U中取词向量,当作为中心词时从V中取词向量。

2.1.2 目标函数

(1)式:word2vec的目标是使p(c|w)最大,其中w表示中心词,c表示上下文。
(2)式:将p(c|w)等价为c和w的向量相似度,但是由于p(c|w)是概率,必须进行归一化(形式如softmax),但是softmax操作将每次都需要遍历整个词典,导致计算量过大,因此需要改变目标函数。

a r g m a x θ ∑ w ∈ T e x t ∑ c ∈ C o n t e x t ( w ) l o g ( p ( c ∣ w ) ) ( 1 ) \underset{\theta}{argmax}\underset{w\in Text}{\sum }\underset{c\in Context(w)}{\sum }log(p(c|w)) (1) θargmaxwTextcContext(w)log(p(cw))1
= a r g m a x θ ∑ w ∈ T e x t ∑ c ∈ C o n t e x t ( w ) l o g e u c ⋅ v w ∑ i ∈ U e u i ⋅ v w ( 2 ) =\underset{\theta}{argmax}\underset{w\in Text}{\sum }\underset{c\in Context(w)}{\sum }log\frac{e^{u_c\cdot v_w}}{\underset{i\in U} {\sum} e^{u_i\cdot v_w}} (2) =θargmaxwTextcContext(w)logiUeuivweucvw2
= a r g m a x θ ∑ w ∈ T e x t ∑ c ∈ C o n t e x t ( w ) [ u c ⋅ v w − l o g ( ∑ i ∈ U e u i ⋅ v w ) ] ( 3 ) =\underset{\theta}{argmax}\underset{w\in Text}{\sum }\underset{c\in Context(w)}{\sum }[{u_c\cdot v_w}-log({\underset{i\in U} {\sum} e^{u_i\cdot v_w}})] (3) =θargmaxwTextcContext(w)[ucvwlog(iUeuivw)]3

(4)式:引入negative sampling的方法,目标函数改为使得positive sample是上下文的概率越大,同时negative sample是上下文的概率越小。其中 p ( F = 1 ∣ w , c , θ ) p(F=1|w,c,\theta) p(F=1w,c,θ)表示在 θ \theta θ的前提下,w和c是上下文的概率; p ( F = 0 ∣ w , c , θ ) p(F=0|w,c,\theta) p(F=0w,c,θ)表示在 θ \theta θ的前提下,w和c不是上下文的概率。 D D D代表positive sample的集合, D ~ \tilde{D} D~代表negative sample的集合。
a r g m a x θ ∏ ( w , c ) ∈ D p ( F = 1 ∣ w , c , θ ) + ∏ ( w , c ) ∈ D ~ p ( F = 0 ∣ w , c , θ ) ( 4 ) \underset{\theta}{argmax}\underset{(w,c)\in D}{\prod }p(F=1|w,c,\theta)+\underset{(w,c)\in \tilde{D}}{\prod }p(F=0|w,c,\theta) (4) θargmax(w,c)Dp(F=1w,c,θ)+(w,c)D~p(F=0w,c,θ)4
= a r g m a x θ ∏ ( w , c ) ∈ D l o g ( σ ( u c ⋅ v w ) ) + ∏ ( w , c ) ∈ D ~ l o g ( σ ( − u c ⋅ v w ) ) ( 5 ) =\underset{\theta}{argmax}\underset{(w,c)\in D}{\prod }log(\sigma(u_c\cdot v_w))+\underset{(w,c)\in \tilde{D}}{\prod }log(\sigma(-u_c\cdot v_w)) (5) =θargmax(w,c)Dlog(σ(ucvw))+(w,c)D~log(σ(ucvw))5
= a r g m a x θ ∏ ( w , c ) ∈ D [ 1 1 + e x p ( − u c ⋅ v w ) ] + ∏ ( w , c ) ∈ D ~ [ 1 − 1 1 + e x p ( − u c ⋅ v w ) ] ( 6 ) =\underset{\theta}{argmax}\underset{(w,c)\in D}{\prod }[\frac{1}{1+exp(-u_c\cdot v_w)}]+\underset{(w,c)\in \tilde{D}}{\prod }[1-\frac{1}{1+exp(-u_c\cdot v_w)}] (6) =θargmax(w,c)D[1+exp(ucvw)1]+(w,c)D~[11+exp(ucvw)1]6

2.2 为什么需要负采样

从(4)式可以发现,我们把目标函数定义为了正采样和负采样的组合概率,负采样的意义是对(3)式softmax计算量的简化,既然可以简化,为什么不去除所有的负采样呢。
可以这样理解:如果只有正采样,所有的词将在向量空间里集中在一个区域,因为只考虑了相似度越大越好的情况;只有同时考虑相似度越小越好的情况,才能适当地将不同意义的词在向量空间中拉开距离。

三、评价方法

对训练好的词向量可以有三种方法评价。

3.1 可视化观察

利用TSNE降维方法将词向量降维,在二维空间中观察词向量的分布是否符合事实情况。
在这里插入图片描述

3.2 相似度测试

人工预先标注好词之间的距离,再利用训练好的词向量计算这些样本词汇间的距离,比较优劣。类似如下表格。

word1word2similar标注similar模型结果
boygirl1.53.5
boyman2.54.5

3.3 类比

根据word1、word2、word3,推断出result,看是否符合事实逻辑。比如:“woman - man = girl - boy”。

word1word2word3result
womanmangirlboy
BeijingShanghaiDCNY

四、优秀代码


参考:
【1】word2vec原理(三) 基于Negative Sampling的模型
【2】NLP | Word2Vec之基于Negative Sampling的 CBOW 和 skip-gram 模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值