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

2023-10-13 05:10

本文主要是介绍论文解读-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(w)+(1α)Zexp(vw,c~s)]

通过最大似然来求得语篇向量 c s c_s cs使得上述句子概率 p ( s ) p(s) p(s) 概率最大。

先分析一下 p ( w ∣ c s ) p(w|c_s) p(wcs)。令 f w ( c ~ s ) = l o g ( p ( w ∣ c s ) ) f_{w}\left(\tilde{c}_{s}\right)=log(p(w|c_s)) fw(c~s)=log(p(wcs))
f w ( c ~ s ) = log ⁡ [ α p ( w ) + ( 1 − α ) exp ⁡ ( ⟨ v w , c ~ s ⟩ ) Z ] f_{w}\left(\tilde{c}_{s}\right)=\log \left[\alpha p(w)+(1-\alpha) \frac{\exp \left(\left\langle v_{w}, \tilde{c}_{s}\right\rangle\right)}{Z}\right] fw(c~s)=log[αp(w)+(1α)Zexp(vw,c~s)]

f w ( c ~ s ) f_{w}\left(\tilde{c}_{s}\right) fw(c~s)进行求导:
∇ f w ( c ~ s ) = 1 α p ( w ) + ( 1 − α ) exp ⁡ ( ⟨ v w , c ~ s ⟩ ) / Z 1 − α Z exp ⁡ ( ⟨ v w , c ~ s ⟩ ) v w . \nabla f_{w}\left(\tilde{c}_{s}\right)=\frac{1}{\alpha p(w)+(1-\alpha) \exp \left(\left\langle v_{w}, \tilde{c}_{s}\right\rangle\right) / Z} \frac{1-\alpha}{Z} \exp \left(\left\langle v_{w}, \tilde{c}_{s}\right\rangle\right) v_{w} . fw(c~s)=αp(w)+(1α)exp(vw,c~s)/Z1Z1αexp(vw,c~s)vw.

然后通过泰勒展开式:
f w ( c ~ s ) ≈ f w ( 0 ) + ∇ f w ( 0 ) ⊤ c ~ s = constant  + ( 1 − α ) / ( α Z ) p ( w ) + ( 1 − α ) / ( α Z ) ⟨ v w , c ~ s ⟩ . \begin{aligned} f_{w}\left(\tilde{c}_{s}\right) & \approx f_{w}(0)+\nabla f_{w}(0)^{\top} \tilde{c}_{s} \\ &=\text { constant }+\frac{(1-\alpha) /(\alpha Z)}{p(w)+(1-\alpha) /(\alpha Z)}\left\langle v_{w}, \tilde{c}_{s}\right\rangle . \end{aligned} fw(c~s)fw(0)+fw(0)c~s= constant +p(w)+(1α)/(αZ)(1α)/(αZ)vw,c~s.

通过上述可知,假定 c ~ s \tilde{\boldsymbol{c}}_{s} c~s 模长固定的情况下,与 v w v_w vw同方向的时候 f w ( c ~ s ) f_{w}\left(\tilde{c}_{s}\right) fw(c~s)结果最大。

假定 c ~ s \tilde{c}_{s} c~s 服务单位球面上的均匀分布,因此当 c ~ s \tilde{\boldsymbol{c}}_{s} c~s ∑ w ∈ s a p ( w ) + a v w \sum_{w \in s} \frac{a}{p(w)+a} v_{w} wsp(w)+aavw 同方向时, ∑ w ∈ s f w ( c ~ s ) \sum_{w \in s} f_{w}\left(\tilde{c}_{s}\right) wsfw(c~s) 结果最大。
arg ⁡ max ⁡ ∑ w ∈ s f w ( c ~ s ) ∝ ∑ u ∈ s a p ( w ) + a v w , where  a = 1 − α α Z . \arg \max \sum_{w \in s} f_{w}\left(\tilde{c}_{s}\right) \propto \sum_{u \in s} \frac{a}{p(w)+a} v_{w}, \text { where } a=\frac{1-\alpha}{\alpha Z} . argmaxwsfw(c~s)usp(w)+aavw, where a=αZ1α.

所以一个句子的初始向量可以定义为:
c ~ s ← 1 ∣ s ∣ ∑ w ∈ s a a + p ( w ) v w \tilde{c}_{s}\leftarrow \frac{1}{|s|}\sum _{w\in s}\frac{a}{a+p(w)} v_{w} \ \ c~ss1wsa+p(w)avw  

目前为止回答了第一问题:为什么可以通过句子中的单词向量加权平均来获得句子初始的向量的表征。下面回答一下为什么得到句子的初始向量之后要做一个修正。

上面提到但句子间的差异需要有差异的那部分语义来体现的。所以在计算句子间的语义相似度的时候,需要先删除公共语义部分。

论文中使用的删除句子公共语义部分的方法是:
将前面求解都的句子集合S中所有的句子表征向量 c ~ s \tilde{\boldsymbol{c}}_{s} c~s以列向量 拼接成一个矩阵 X X X。假定 u u u是矩阵的第一奇异向量。

最终的句子表征向量可以通过如下公式求得:
c s ← c ~ s − u u ⊤ c ~ s c_{s}\leftarrow \tilde{\boldsymbol{c}}_{s}-uu^{\top } \tilde{\boldsymbol{c}}_{s}\ csc~suuc~s 

5.实验结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YIpaAmr4-1623306848432)(./1620387002501.png)]

从论文中的实验来看,论文提出的句子表征算法(图中的GloVe+WR) ,比基于词向量通过tfidf加权或者平均方式来获得句向量的方式要好。(图中的tfidf-GloVe,avg-Glove)

参考资料

A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS

这篇关于论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200972

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快