词的向量化表示

为什么使用向量表示词

但是在NLP中,传统方法通常是把词转换为离散的不可分割的符号,这导致很难利用不同的词之间的关系(所有的单词之间的距离都一样),例如dog:id143,cat:id537,这使得我们需要更多的数据来训练模型,而使用向量的表达的话可以克服这一缺点,例如在向量中可以利用cat和dog之间的相似性。使用向量表示词也叫word embedding

ps:上面说的都是使用连续的向量空间中的点表示词,而不是使用one-hot向量表示。

总结

使用连续向量的话可以表示词汇之间的关系,例如一些简单的cat和dog之间的相似性,以及复杂的,单词”Rome”的表达vec(‘Rome’), 可以是vec(‘Paris’) – vec(‘France’) + vec(‘Italy’)的计算结果。而这种关系的好处就是使得在表达词汇时就有了一些词汇本身的和词汇之间的信息(类比于人脑中的存储),

如何将词转化为向量

word2vec是一种预测模型,可以高效地学习word embedding,具体的有连续词袋模型(CBOW)和skip-gram模型,CBOW(适合小型数据集)是使用上下文预测目标词,skip-gram(适合大规模数据集)是使用目标词预测上下文。
下面重点介绍CBOW

噪声-对比(Noise-Contrastive)训练

基于神经网络的概率语言模型通常都是使用极大似然法训练的,h(history), wt (target),

P(wt|h)=softmax(score(wt,h))=exp{score(wt,h)}Word w' in Vocabexp{score(w,h)}

其中, score(wt,h) 表示t与h的“兼容程度”。
对数形式:
JML=logP(wt|h)=score(wt,h)log(Word w' in Vocabexp{score(w,h)}).

理论上可以根据这个来建立一个合理的模型,但是现实中目标函数的计算代价非常昂贵,这是因为在训练过程中的每一步,我们都需要计算词库 w′中其他词在当前的上下文环境下出现的概率值,这导致计算量十分巨大。
1121
对于word2vec中的特征学习来说,并不需要一个完整的概率模型,CBOW和skip-gram使用的是二元分类器区分 wt 和其他的k个词(而不是全部词),下面是CBOW的图示,
这里写图片描述
此时最大化的目标函数为:
JNEG=logQθ(D=1|wt,h)+kEw~Pnoise[logQθ(D=0|w~,h)]

具体的, Qθ(D=1|w,h) 是在数据集D中、对应的向量为 θ 、上下文为h时词语w出现的概率;公式后半部分k个从 [噪声数据集] 中随机选择 k 个对立的词语出现概率(log形式)的期望值(即为Monte Carlo average)。
其中(可以这样计算,这只是一种具体的计算方法), Qθ(D=1|wt,h)=σ(hTwt),h 为上下文词向量之和(因为这两种方法里面都不考虑上下文的顺序,只考虑上下文出现了什么词),类似的 Qθ(D=0|w~,h)=1σ(hTw~) ,然后通过迭代计算,即给定每个词 w 的初始值,然后收敛时的各个wi的值就是最终的词向量。
目标函数的意义就是:给真正的词以高概率,给噪声低概率,这种技术称为“负采样”,

下面为训练skip-gram的过程:

skip-gram

数据集:

the quick brown fox jumped over the lazy dog

从数据集中可以得到词语及其上下文信息(context),上下文信息可以有很多种理解,例如,词语周边的句法结构,词语的左边部分的若干个词语信息,对应的右半部分等。这里,我们使用最原始和基本的定义,即认为词语左右相邻的若干个词汇是该词对应的上下文信息。例如,取左右的词窗口为1,下面是数据集中的(上下文信息,对应的词)的pairs:

([the, brown], quick), ([quick, fox], brown), ([brown, jumped], fox), ...

Skip-Gram模型是通过输入的目标词来预测其对应的上下文信息,所以目标是通过[quick]来预测[the]和[brown],通过[brown]来预测[quick]和[fox]… 将上面的pair转换为(input, output)的形式如下:

(quick, the), (quick, brown), (brown, quick), (brown, fox), ...
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值