词嵌入模型

本文详细介绍了词嵌入模型,包括词嵌入的背景、Word2Vec的Skip-Gram和CBOW模型、GloVe词向量的原理及训练方式。讨论了词嵌入的特性,如类比推理和余弦相似度,并提到了负采样优化方法。
摘要由CSDN通过智能技术生成

词嵌入模型

词汇表征(Word Representation)

使用one-hot表示的缺点

1.如果要表示的词语个数比较多的话,one—hot会很占空间。

2.如"I want a glass of orange ()“与"I want a glass of apple ()”,填入的词语可以是juice,如果第一句话模型学习到的词语是juice,但是因为词语是one—hot向量表示,所以orange与apple之间的关系同orange与其他词并没有相对拉近,所以不利于模型的泛化。

特征化的表示

所以我们开始使用特征化的向量进行词语的表示,比如词语相对性别的关系:man可能为1,woman就是-1,king就是0.95,queen就是-0.97,而apple与orange没有性别可言。比如词语相对高贵:king与queen就相对分值较高。

假设最后的特征一共有300个,那么对于一个词语的表述就是使用一个300维的特征向量,而且orange与apple的词语表示会十分接近。

这样的表示方法就是词嵌入

使用词嵌入的步骤

1.第一步,先从大量的文本集中学习词嵌入。一个非常大的文本集,或者可以下载网上预 训练好的词嵌入模型,网上你可以找到不少,词嵌入模型并且都有许可。

2.第二步,你可以用这些词嵌入模型把它迁移到你的新的只有少量标注训练集的任务中, 比如说用这个 300 维的词嵌入来表示你的单词。这样做的一个好处就是你可以用更低维度的特征向量代替原来的 10000 维的 one-hot 向量,现在你可以用一个 300 维更加紧凑的向量。尽管 one-hot 向量很快计算,而学到的用于词嵌入的 300 维的向量会更加紧凑。

3.第三步,当你在你新的任务上训练模型时,在你的命名实体识别任务上,只有少量的标记数据集上,你可以自己选择要不要继续微调,用新的数据调整词嵌入。实际中,只有这个第二步中有很大的数据集你才会这样做,如果你标记的数据集不是很大,通常我不会在微调词嵌入上费力气。

词嵌入的特性

词嵌入的另外一个重要特性就是它还能帮助实现类比推理。意思就是模型已经知道了man对应的单词是woman,那么king对应的单词是什么?类比推理就是用来得出queen的算法。

这个类比推理的主要方法就是基于向量的加减法

image-20210324210014322

这个结果表示,man 和 woman 主要的差异是 gender(性别)上的差异,而 king 和 queen 之间的主要差异,根据向量的表示,也是 gender(性别)上的差异。

每一个词语经过词嵌入之后的表示方式是向量,在寻找词语queen的过程中,算法要计算的公式是 e m a n − e w o m a n ≈ e k i n g − e w e_{man}-e_{woman}\approx e_{king}-e_{w} emanewomanekingew,我们希望 e w e_{w} ew表示的单词是queen。将 e w e_w ew单放到等式的一边变为$e_{w} \approx e_{king}-e_{man}+e_{woman} $,于是我们需要一个能判断式子两边相似度的函数————余弦相似度

余弦相似度

为了测量两个词的相似程度,我们需要一种方法来测量两个词的两个嵌入向量之间的相 似程度。给定两个向量𝑢和𝑣,余弦相似度定义如下:
C o s i n e S i m i l a r i t y ( u , v ) = u , v ∥ u ∥ 2 ∥ v ∥ 2 = c o s ( θ ) CosineSimilarity(u,v)=\frac{u,v}{\Vert u\Vert_2 \Vert v\Vert_2 }=cos(\theta) CosineSimilarityu,v=u2v2u,v=cos(θ)
其中𝑢,𝑣是两个向量的点积(或内积), ∥ u ∥ 2 \Vert u\Vert_2 u2是向量𝑢的范数(或长度),并且𝜃是向量𝑢和𝑣之间的角度。这种相似性取决于角度在向量𝑢和𝑣之间。如果向量𝑢和𝑣非常相似,它 们的余弦相似性将接近1;如不相似,则余弦相似性将取较小的值

嵌入矩阵

将词嵌入具体化时,实际上是具体化一个嵌入矩阵

加入我们的词汇表中含有10000个单词,每个单词使用一个300维的向量表示,那么嵌入矩阵的形状为300 * 10000,之前我们使用每个单词的one-hot的形状为10000*1,将两者相乘即为300维的向量,表示当前单词的嵌入向量

通过嵌入矩阵和one-hot向量相乘的方式,实际上是很耗资源的,我们在实际项目中,需要使用一个单独的函数算法快速的寻找到嵌入矩阵的某列。

Word2Vec
Skip-Gram 模型

Skip-Gram 模型是给定输入词语来预测上下文

从距离目标词一定词距内随机选取一个词作为目标词的上下文词,构造一个监督学习问题。这样的话我们就是学习一个映射关系(比如orange为10000个单词中的第6257个单词,而juice是第4834个,于是就是要学习一个6257->4834的映射。)

e c = E O c e_c=EO_c ec=EOc表示输入的上下文词的嵌入向量,则预测不同目标词的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值