『论文阅读』SIF:一种简单却难以打败的句子嵌入方法
文献:A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS
在进行了词嵌入的研究后,我们往往会联想到这样一个问题:既然单词可以用向量表示,那么由一个个单词组成的句子,可不可以也用向量表示呢?如果可以的话,句子之间就可以进行向量的运算,计算它们之间的相似度,进而可以对句子进行聚类或者进行匹配。
因此,这篇文献提出了一种简单但又难以打败的计算句子嵌入的方法,使得句子向量计算的性能得到了提升。
关于代码的实现,请看 记录一次失败的句子相似性实验 。当时效果不太好,但是后来的结果证明,还是可取的!大家谨慎参考!
Navigation
- ABSTRACT
- INTRODUCTION
- METHOD
- 111 Latent Variable Generative Model
- 222 Improve Random Walk Model
- 333 Compute Sentence Embedding
- REFERENCE
ABSTRACT
应用神经网络方法来计算单词嵌入的成功促进了对于较长段落(例如文本)语义嵌入的研究。而作者提出了这样一种句子嵌入方法:通过一种流行的方法对未标记的语料库(如WikipediaWikipediaWikipedia)计算词嵌入,通过词向量的加权平均值表示句子,然后使用 PCAPCAPCA /// SVDSVDSVD 对其进行一些修改。
这种加权可将文本相似性任务的性能提高约 10% 到 30%,并且优于包括 RNNRNNRNN 和 LSTMLSTMLSTM 在内的复杂的监督方法。这种简单的方法在将来的研究中应当作为 baselinebaselinebaseline,尤其是在带有标签的训练数据稀缺或不存在的情况下。
INTRODUCTION
使用多种方法计算的词嵌入是自然语言处理 (NLPNLPNLP) 和信息检索 (IRIRIR) 的基本构建块。它计算词与词之间的相似性。而最近的工作尝试从单词向量的简单加总平均到复杂的方法(例如卷积神经网络和递归神经网络)来计算单词序列(短语,句子和段落)语义的嵌入。
在这里,作者提供了一种非常简单的句子嵌入方法:只计算句子中单词向量的加权平均值,然后删除平均向量在其第一个主成分上的投影(“公共成分去除”)。我们称它为平滑反频率 (smoothsmoothsmooth inverseinverseinverse frequencyfrequencyfrequency)。
(111) 单词 www 的权重表示为a / (a + p(w))
,a
是一个超参数,p(w)
是词频。我们发现,p(w)
越大,单词权重越小。是不是感觉与 TF−IDFTF-IDFTF−IDF 原理有些相似,字词的重要性随着它在语料库中出现的频率成反比下降。
(222) 关于第一主成分,由于使用单词向量的平均的方法在沿语义上无意义的方向具有巨大的分量。因此我们删去这些公共成分,留下关键的信息。
SIFSIFSIF的优越性体现在以下几点:
- well-suited for domain adaptation settings:对于各个领域的适应性较好
- fairly robust to the weighting scheme:使用不同的语料库计算的词频并不会影响它的性能
- a wide range of the parameters a can achieve close-to-best results:选择恰当的 aaa,可以达到最好的效果
METHOD
111 Latent Variable Generative Model
作者简要回顾了文本的潜在变量生成模型:该模型将语料库生成视为一个动态过程,在步骤 ttt 中生成第 ttt 个单词。这个过程是由一个 discourse vector 驱动的,表示为 ctc_tct,意味着在这个时刻,句子的话题是什么,可以视为一个主题向量;同时,对于每一个单词 www ,也有对应的词向量 vwv_wvw(与时间无关)。二者之间的内积表示当前主题与词语的相关关系。
假定 ttt 时刻单词 www 产生概率为:
由于主题向量 ctc_tct 做缓慢的随机漫步(slow random walk),即 ct+1c_{t+1}ct+1 只是在 ctc_tct 基础上新增了移位向量,因此我们可以将相邻单词看成在相同 ctc_tct 下产生。
222 Improve Random Walk Model
在之前的基础上,作者定义 sentence embedding 为:给定一个句子 s,利用最大后验概率估计 (MAPMAPMAP) 产生这个句子的主题向量 ctc_tct 。我们假定在一步步产生单词时,该句子的主题向量不会发生较大改变,因此用 csc_scs 来代替一个句子所有的 ctc_tct 。
在模型的基础上,作者做了如下改进,引入了两个平滑项,用来解释 (aaa) 有些词是在上下文之外出现 (bbb) 某些高频词如 “thethethe” “andandand” 是没有语境限制的。
α·p(w)
:其中 ααα 是标量,ppp(www) 是整个语料库中单词 www 的词频。这使得即使单词与当前主题 csc_scs 内积(相关性)很小,它也有一定的概率出现。- c0c_0c0:公共话题向量,它代表着与语法相关的最频繁的主题向量,作用为校正项。它提高了沿 c0c_0c0 具有较高分量的单词的共现概率。
具体来说,给定主题向量 csc_scs ,在句子 sss 中单词 www 的生成概率为:
ααα 和 βββ 都是超参数,Zcs=∑w∈vexp(<cs,vw>)Z_{c_s} = ∑_{w∈v}exp(<c_s, v_w>)Zcs=∑w∈vexp(<cs,vw>) 是归一化常数。我们看到该模型允许生成与主题向量 csc_scs 不相关的单词 www ,其原因有二:(aaa) 偶然地从项α·p(w)
产生 ;(bbb) www 与公共话语向量 c0c_ {0}c0 相关。
333 Compute Sentence Embedding
句子向量被定义为向量 csc_scs 的极大似然估计。
因此我们发现,MLEMLEMLE大致是句子中单词的向量的加权平均值。我们发现,越频繁的单词,权重越小。
为了估计 csc_scs ,我们通过计算一组句子的第一主成分来估计方向 c0c_0c0 。通过将 csc_scs 的投影减去它们的第一主成分可以得到最终的句子嵌入。
整体流程如下:
REFERENCE
SIF 论文阅读笔记
『论文阅读』SIF:一种简单却难以打败的句子嵌入方法相关推荐
- 『 论文阅读』LightGBM原理-LightGBM: A Highly Efficient Gradient Boosting Decision Tree
17年8月LightGBM就开源了,那时候就开始尝试上手,不过更多还是在调参层面,在作者12月论文发表之后看了却一直没有总结,这几天想着一定要翻译下,自己也梳理下GBDT相关的算法. Abstract ...
- ICCV2021 Oral SimROD:简单高效的数据增强!华为提出了一种简单的鲁棒目标检测自适应方法...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨小马 来源丨我爱计算机视觉 ▊ 写在前面 本文提出了一种简单有效的鲁棒目标检测无监督自适应方法( ...
- 【论文阅读】SIF:一种简单有效句子编码方法
SIF编码 Smooth Inverse Frequency是一种基于向量的检索.在介绍SIF之前,需要先理解平均词向量和基于TFIDF的加权平均词向量. 平均词向量就是将句子中的所有词的word e ...
- 『论文阅读笔记』目标检测模型中的性能评价方式-IOU、precision/recall、mAP、PR、Fps!
目标检测模型中的性能评估标准-IOU.precision/recall.mAP.PR.Fps! 文章目录 一.交并比IOU 二.精确率(precision)和召回率(recall) 三.P-R(pre ...
- 『论文笔记』ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks!
ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks! 文章目录 一 ...
- 『论文笔记』TensorFlow1.6.0+Keras 2.1.5+Python3.5+Yolov3训练自己的数据集!
TensorFlow1.6.0+Keras 2.1.5+Python3.5+Yolov3训练自己的数据集! 文章目录 前期准备 一. Yolov3简要介绍 1.1. Yolov3网络结构图 1.2. ...
- 『论文笔记』Two Causal Principles for Improving Visual Dialog
Two Causal Principles for Improving Visual Dialog 一句话总结 从因果图角度审视视觉对话任务,切断对话历史与答案的直接因果效应,添加混杂因子[用户偏好] ...
- 『论文笔记』Are VQA Systems RAD? Measuring Robustness to Augmented Data with Focused Interventions
Are VQA Systems RAD? Measuring Robustness to Augmented Data with Focused Interventions 一句话总结 本文提出一个基 ...
- 存量房贷利率,一种简单估算其自然年利率调整的方法。
回溯 需要先看看上篇:python实现货币贷款分期计算(等额本金/等额本息) 1.摘要 2022年过去了,总所周知LPR被多次下调,目前有存量房贷的朋友,如果(普遍)设置的是根据自然年LPR动态调整利 ...
最新文章
- ie8不兼容java项目_[Java教程]ie8以下不兼容document.getElementsByName解决方法
- 多线程环境下调用 HttpWebRequest 并发连接限制
- 互联网协议套件(TCP/IP)及七层OSI模型
- (转)Unity3DUnity3D在android下调试
- python求解多元方程最优解_Python实现梯度下降算法求多元线性回归(二)
- centos7安装(二进制包)mysql8
- Java第十九天(字节流和字符流转换、打印流、Properties类)
- 思科:多款主流信息传递应用程序易遭到会话劫持
- appium安装教程
- wow mysql dbc_关于WOW的DBC文件内容的介绍
- Python SQLite3 教程
- 模电_热敏PTC电阻_NTC电阻-区别与作用-20190507
- oracle 物化视图 on demand,【案例】Oracle物化视图 on prebuilt table故障常见解决办法...
- 03_D-H参数表的建立
- ios应用升级到ios15后闪退
- 同步MySQL跨库且不同shema表数据
- 【Minecraft】不重启游戏直接注入模组的研究(一)
- 莫听穿林打叶声,2022年SSD行业回顾与展望
- 机器学习--机器学习的基本方法
- python桌面宠物_如何从零开始制作智能桌宠?
热门文章
- CSS 3.0 参考手册 (中文版)
- tomcat 配置集群
- 华为电子邮件显示未读邮件1_电子邮件| 电子邮件| 第1部分
- 在Windows server 2008 R2上创建AD域控制器
- redis中各种数据类型对应的jedis操作命令、redis命令大全
- JAVA解析.xlsb文件
- asp.net web c# 调用 c++ dll库 c++转c#对象错误 海康SDK
- 鸿蒙的内核版本为什么是安卓,为什么说安卓已经落后于鸿蒙OS?
- mysql java safe model_被 MySQL sql_mode 深深伤害( 下 )
- python中英文混输对不齐_python中英文混合字符串对齐输出