论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS

Posted 丘文波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS相关的知识,希望对你有一定的参考价值。

1.论文摘要

该论文是在 ICLR 2017提出的一个无监督的句子嵌入的方法:使用维基百科等无标签的语料训练得到词向量,然后通过词向量加权平均获得句子表征向量。然后使用PCA/SVD再对句向量进行一次修正得到最终得句向量。

2. 计算句子表征的算法

先来看下论文中提出的句子表征的算法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MLXldGtS-1623306848424)(./1620303452165.png)]
上面的算法过程中有两个重点:
为什么可以通过句子中的单词向量加权平均来获得句子初始的向量的表征?(公式(1))
为什么得到句子的初始向量之后要做一个修正(公式(2))

论文围绕着这两个问题进行了解答。

3. 随机游走模型

论文首先介绍了随机游走模型:将句子生成看出是一个动态过程,在第t时刻下的语篇向量 c t c_t ct决定生成第t个词。语篇向量表示的是这个时刻句子语义。不同时刻的语篇向量的游走变化会导致生成不同的词。词典中的每一个词都有一个词向量 v w v_w vw

一个时刻t ,生成的词是w的概率,可以由如下的公式表示:
Pr ⁡ [ w  emitted at time  t ∣ c t ] ∝ exp ⁡ ( ⟨ c t , v w ⟩ ) . \\operatorname{Pr}\\left[w \\text { emitted at time } t \\mid c_{t}\\right] \\propto \\exp \\left(\\left\\langle c_{t}, v_{w}\\right\\rangle\\right) . Pr[w emitted at time tct]exp(ct,vw).

假定在文本生成的过程中,语篇向量是在做一个缓慢的游走(意味着 c t c_t ct添加一个很小的位移向量就能获得 c t + 1 c_{t+1} ct+1),所以相近的词对应的语篇向量都是比较接近的。

假设一句话各个位置单词出现时,语篇向量变化不大,所以将使用一个固定的语篇向量 c s c_s cs来近似表示各个时刻的语篇向量 c t c_t ct

Pr ⁡ [ w  emitted at time  t ∣ c s ] ∝ exp ⁡ ( ⟨ c s , v w ⟩ ) . \\operatorname{Pr}\\left[w \\text { emitted at time } t \\mid c_{s}\\right] \\propto \\exp \\left(\\left\\langle c_{s}, v_{w}\\right\\rangle\\right) . Pr[w emitted at time tcs]exp(cs,vw).

从上述公式可以看出,某个时刻的语篇向量 c s c_s cs和词向量 v w v_w vw内积越大,该词越有可能出现。

对于停用词,在不同的句子中都有可能出现,所以这些停用词的词向量的模长尽量长一点,才能与不同的语篇向量的内积都比较大。

论文对上面的模型进行了两个主要的修改:
Pr ⁡ [ w  emitted in sentence  s ∣ c s ] = α p ( w ) + ( 1 − α ) exp ⁡ ( < c ~ s , v w > ) Z c ~ s where  c ~ s = β c 0 + ( 1 − β ) c s , c 0 ⊥ c s w h e r e   Z c ~ s = ∑ i n ( < c ~ s , v w i > ) \\begin{matrix} \\operatorname{Pr}\\left[ w\\text{ emitted in sentence } s\\mid c_{s}\\right] =\\alpha p(w)+(1-\\alpha )\\frac{\\exp\\left(\\left< \\tilde{c}_{s} ,v_{w}\\right> \\right)}{Z_{\\tilde{c}_{s}}}\\\\ \\text{where }\\tilde{c}_{s} =\\beta c_{0} +(1-\\beta )c_{s} ,c_{0} \\perp c_{s}\\\\ where\\ Z_{\\tilde{c}_{s}} =\\sum _{i}^{n}\\left(\\left< \\tilde{c}_{s} ,v_{w_{i}}\\right> \\right) \\end{matrix} Pr[w emitted in sentence scs]=αp(w)+(1α)Zc~sexp(c~s,vw)where c~s=βc0+(1β)cs,c0cswhere Zc~s=in(c~s,vwi)

(1) 增加平滑项
在模型中引入一个加法项 α p ( w ) α p(w) αp(w) ,其中的 p ( w ) p(w) p(w)表示单词在整个语料库中的概率, α α α是一个标量,这保证了一个词的向量与语篇向量的内积很小很小的情况下,整个词也是可能被话语向量生成出来。论文也对这种平滑操作称为:SIF(smooth inverse frequency)

(2) 引入公共语篇向量 c 0 c_0 c0
引入了一个公共的语篇向量 c 0 c_0 c0,其表示所有句子都具有的公共语义。但句子间的差异需要有差异的那部分语义来体现的。所以在计算句子间的语义相似度的时候,需要先删除公共语义部分。

假定所有词向量大致满足均匀分布,且模长一致, Z c ~ s Z_{\\tilde{c}_{s}} Zc~s 可以近似看成是一个定值。
Pr ⁡ [ w  emitted in sentence  s ∣ c s ] = α p ( w ) + ( 1 − α ) exp ⁡ ( < c ~ s , v w > ) Z \\operatorname{Pr}\\left[ w\\text{ emitted in sentence } s\\mid c_{s}\\right] =\\alpha p(w)+(1-\\alpha )\\frac{\\exp\\left(\\left< \\tilde{c}_{s} ,v_{w}\\right> \\right)}{Z} Pr[w emitted in sentence scs]=αp(w)+(1α)Zexp(c~s,vw)

4.基于随机游走模型求解句子向量

根据上述的随机游走篇章模型可知一句话的概率为:
p [ s ∣ c s ] = ∏ w ∈ s p ( w ∣ c s ) = ∏ w ∈ s [ α p ( w ) + ( 1 − α ) exp ⁡ ( ⟨ v w , c ~ s ⟩ ) Z ] p\\left[s \\mid c_{s}\\right]=\\prod_{w \\in s} p\\left(w \\mid c_{s}\\right)=\\prod_{w \\in s}\\left[\\alpha p(w)+(1-\\alpha) \\frac{\\exp \\left(\\left\\langle v_{w}, \\tilde{c}_{s}\\right\\rangle\\right)}{Z}\\right] p[scs]=wsp(wcs)=ws[αp(以上是关于论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS的主要内容,如果未能解决你的问题,请参考以下文章

论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS

论文阅读 A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SEN- TENCE EMBEDDINGS

论文解读——《A Simple Framework for Contrastive Learning of Visual Representations》

论文解读-Long Short-Term Memory as a Dynamically Computed Element-wise Weighted Sum

R语言使用lm函数拟合回归模型(简单线性回归一元回归simple regression)并解读拟合模型

R语言使用lm函数拟合回归模型(简单线性回归一元回归simple regression)并解读拟合模型