word2vec详解

  1. why not one-hot encoding?
    答: one-hot编码也可表示词,是一个向量,定义是假设词典中不同词的数量是为N,每个词可以和从0到N-1的连续整数一一对应,假设一个词的相应整数索引为 i,为了得到该词的one-hot向量表示,需创建一个全为0长为N 的向量,并将其第 i 位设成1
    不用one-hot主要原因:one-hot词向量无法表达不同词之间的相似度,而且如果字典词汇数较大,每个词向量太消耗内存

  2. word2vec是2013年Google发表的工具,主要包含两个模型:skip-gram模型和CBOW模型(Continuous Bag of Words),按照一般方法训练这两个模型时需遍历整个字典再进行求和等操作,***显然当词典较大时这两种模型的计算开销会非常大,实践时难度较高,***所以又有以下两种高效训练的方法:负采样(negative sampling)和层序softmax(hierarchical softmax

  3. notes: word2vec词向量可以较好的表达不同词之间的相似和类比关系

  4. skip-gram模型(跳字模型)
    假设词典的大小为|V|, 词典中的词从0到|V|-1的整数与其一一对应。
    skip-gram模型关注的是给定中心词,能够生成与它近邻词(即上下文)的概率。
    词典索引集V = {0, 1, 2, ……,|V|-1},一个词在该词典中所对应的整数称为词的索引,给定一个长度为T的文本序列中,t时刻的词为w(t),当时间窗口大小为m时,skip-gram需要最大化给定任一中心词生成背景词的概率:
    公式及定义如下:
    (1)给定中心词求背景词的概率
    概率公式
    (2)概率对中心词向量偏导公式:
    概率对中心词向量偏导公式
    (3)skip-gram模型目标函数:
    skip-gram模型目标函数
    按照以上公式进行训练算法,可采用梯度下降法不断迭代模型参数中心词向量v©,求偏导后针对-m <= j <= m个概率进行偏导求和获取最后的概率值

  5. CBOW模型
    CBOW模型中给定需求的中心词在文本序列周围的词(即上下文)来预测该中心词,参数表示与skip-gram模型一致,词典索引集V = {0, 1, 2, ……,|V|-1},一个词在该词典中所对应的整数称为词的索引,给定一个长度为T的文本序列中,t时刻的词为w(t),当时间窗口大小为m时,CBOW模型需最大化由背景词生成任一中心词的概率:
    公式计算如下:
    在这里插入图片描述
    同理训练CBOW模型需用梯度下降法不断迭代更新模型参数v(o-i),注意 i 取值从1-2m需同批次同时更新,最后求目标函数的最优值

  6. 负采样方法(negative sampling)
    以skip-gram模型进行说明:
    词典V大小之所以会在目标函数中出现,是因为中心词生成背景词的概率P(w(o) | w©)使用了softmax,而softmax考虑了背景词可能是词典中的任一词,体现在softmax的分母上
    假设中心词生成背景词由以下两个相互独立事件联合组成来近似:
    #中心词和背景词同时出现在该训练数据窗口
    #中心词和第1个噪声词不同时出现在该训练数据窗口
    ……
    #中心词和第k个噪声词不同时出现自该训练数据窗口
    notes:噪声词按噪声词分布P(w)随机生成,其中P(w)在实际中一般被建议为w的单字概率的3/4次方
    取sigmoid函数: g(x) = 1 / 1 + exp(-x)
    则中心词和背景词同时出现在训练窗口的概率P(D = 1 | w_o, w_c) = g(dot(u_o.T, v_c))
    所以词概率和目标函数简化如下:

    在这里插入图片描述
    现已知目标函数可根据梯度下降求最优值
    同理应用于CBOW模型可得其目标函数如下:

    在这里插入图片描述
    其实负采样的原理主要是不用将整个词典词汇都进行取样计算,按照一定分布进行随机取样K个词汇,进行计算,减小计算开销

  7. 层次softmax(Hierarchical softmax)
    此方法就是利用了二叉树,树的每个叶子节点代表着词典V中的每个词,每个词w_i相应的词向量为v_i,如下图所示
    在这里插入图片描述
    假设L(w)为二叉树的根到代表词w的叶子节点的路径上的节点数
    并设n(w, i)为该路径上第 i 个节点,该节点的向量是u_n(w,i),以上图为例,L(w_3) = 4
    那么skip_gram和CBOW模型需计算的任意词w_i生成词w的概率为:
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值