cs224n-1wordvec1

meaning 语意

  • 一个词语、词汇所代表的的含义
  • 一个人使用语言、标志符号想要表达的含义
  • 一件艺术品、一篇文章想要传达的含义

如何用计算机获得可用的语意

  1. WordNet
  • 包括单词的一系列同义词、超词(定义性词汇)的词典
  • 缺点:无法体现同义词之间的细微差异、部分词语的解释已经过时、主观性强、劳力维护成本大、不能准确地计算词语间的相似性
  1. One-hot vector
  • 把单词看作离散的符号,以整个词典中单词数量为维度,仅在当前单词对应的维度上赋值1,其余为0
  • 缺点:任意两个单词间是正交的(即无法体现两个单词间的相似性)

word vector

核心思想

  • 一个单词的含义是由与它最近邻的单词决定的(属于传统统计学的思想),又叫word embeddings, word representations

算法流程

  1. 初始化一个包含大量词汇的集合,每个单词是一个p维稠密向量
  2. 对于文本,对于中心词汇c遍历它近邻的每一个位置t,记t位置的单词为o
  3. 计算单词c和o的相似度,计算给定o出现c的概率
  4. 不断迭代上述过程,即持续极大化中心词汇c的后验概率,直至满足退出循环条件
  • 对每个位置t=1,…,T, 预测在窗口大小为m的情况下给定中心词汇 W j W_{j} Wj, 预测其周围单词的概率,数据的似然函数
    Likelihood: L ( θ ) = ∏ t = 1 T ∏ − m < = j < = m , j ≠ 0 P ( W t + j ∣ W t ; θ ) L(\theta)=\prod_{t=1}^{T}\prod_{-m<=j<=m, j\neq0}P(W_{t+j}|W_{t}; \theta) L(θ)=t=1Tm<=j<=m,j=0P(Wt+jWt;θ)
    目标函数为平均负似然函数,即
    J ( θ ) = − 1 T l o g L ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≥ m , j ≠ 0 l o g P ( W t + j ∣ W t ; θ ) J(\theta)=-\frac{1}{T}logL(\theta)\\ =-\frac{1}{T}\sum_{t=1}^{T}\sum_{-m\leq j\geq m, j\neq0}logP(W_{t+j}|W_{t}; \theta) J(θ)=T1logL(θ)=T1t=1Tmjm,j=0logP(Wt+jWt;θ)
  • 极小化目标函数即最大化似然,极大化通过周围词预测得到中间词汇的概率

如何求解?

特别地,如何求解 P ( W t + j ∣ W t ; θ ) P(W_{t+j}|W_{t}; \theta) P(Wt+jWt;θ)?

  • 答:对每一个单词W,我们获得关于它的在两个不同场景下的表示形式: v w v_w vw(当W为中间词汇时)以及 u w u_w uw(当W为背景词汇时),于是,在给定中间词汇c的条件下,想要预测某一个背景词汇o出现的概率,可以将条件概率 P ( o ∣ c ) P(o|c) P(oc)写成:
    P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)} P(oc)=wVexp(uwTvc)exp(uoTvc)
    其中u和v的点积反映的是中间词汇o和背景词汇c的相似度,点积所得的值越大,二者相似性越大,相邻出现的可能性就越高。该式是将二者点积作为输入,放进softmax所得的结果:
    s o f t m a x ( x i ) = e x p ( x i ) ∑ i = 1 n e x p ( x i ) = p i softmax(x_i)=\frac{exp(x_i)}{\sum_{i=1}^{n}exp(x_i)}=p_i softmax(xi)=i=1nexp(xi)exp(xi)=pi
    所谓‘softmax’有两层含义:
    a) ‘max’: x中的最大值经过exp运算后仍然为最大值,即最大化了最大x的概率
    b) ‘soft’: 其他较小的x也经由exp运算获得了一部分概率。

训练模型:优化参数极小化目标函数

  • 定义带优化参数和数据:设 θ \theta θ为模型参数,它是一个2V*d维度的长向量(其中V为单词的个数,d为每个单词的维度,由于每个单词都有两种表现形式,故为2V)。
  • 推导损失函数 J ( θ ) J(\theta) J(θ) v c v_c vc, u o u_o uo求导:
    ∂ J ∂ v t = ∂ ( − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m l o g e x p ( u t + j T v t ) ∑ w = 1 T e x p ( u w T v t ) ) ∂ v t \frac{\partial J}{\partial v_t}=\frac{\partial ({-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}log\frac{exp(u_{t+j}^Tv_t)}{\sum_{w=1}^{T}exp(u_w^Tv_t)}})}{\partial v_t} vtJ=vt(T1t=1Vmjmlogw=1Texp(uwTvt)exp(ut+jTvt))
    = − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( ∂ l o g ( e x p ( u t + j T v t ) ∂ v t − ∂ l o g ∑ w = 1 T e x p ( u w T v t ) ∂ θ ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(\frac{\partial log({exp(u_{t+j}^Tv_t)}}{\partial v_t}-\frac{\partial log{\sum_{w=1}^{T}exp(u_w^Tv_t)}}{\partial \theta}) =T1t=1Vmjm(vtlog(exp(ut+jTvt)θlogw=1Texp(uwTvt))
    = − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( u t + j − 1 ∑ w = 1 V e x p ( u w T v t ) ∑ w = 1 v ∂ e x p ( u w T v t ) ∂ v t ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(u_{t+j}-\frac{1}{\sum_{w=1}^{V}exp(u_w^Tv_t)} \frac{\sum_{w=1}^{v}\partial exp(u_w^Tv_t)}{\partial v_t}) =T1t=1Vmjm(ut+jw=1Vexp(uwTvt)1vtw=1vexp(uwTvt))
    = − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( u t + j − ∑ w = 1 V e x p ( u w T v t ) ∑ w = 1 V e x p ( u w T v t ) u w ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(u_{t+j}-\sum_{w=1}^{V}\frac{exp(u_w^Tv_t)}{\sum_{w=1}^{V}exp(u_w^Tv_t)}u_w) =T1t=1Vmjm(ut+jw=1Vw=1Vexp(uwTvt)exp(uwTvt)uw)
    = − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( u t + j − ∑ w = 1 V P ( u w ∣ v t ) u w ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(u_{t+j}-\sum_{w=1}^{V}P(u_w|v_t)u_w) =T1t=1Vmjm(ut+jw=1VP(uwvt)uw)
    观察结果发现, ∑ t = 1 V ∑ − m ≤ j ≤ m u t + j \sum_{t=1}^{V}\sum_{-m\leq j\leq m}u_{t+j} t=1Vmjmut+j为我们的数据观测,表示 u t + j u_{t+j} ut+j作为背景词去预测 u t u_{t} ut的一个得分;而后一项 − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m − ∑ w = 1 V P ( u w ∣ v t ) u w ) -\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}-\sum_{w=1}^{V}P(u_w|v_t)u_w) T1t=1Vmjmw=1VP(uwvt)uw)使我们的模型学习到的结果,它表示在 v t v_t vt作为中心词的条件下,剩下所有词语出现的概率与这些词语数值的乘积。二者相减得到的差正好是模型需要从数据中学习的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值