论文笔记--Skip-Thought Vectors

论文笔记--Skip-Thought Vectors

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 Skip Thought Vectors
    • 3.2 词表拓展
  • 4. 文章亮点
  • 5. 原文传送门
  • 6. References

1. 文章简介

  • 标题:Skip-Thought Vectors
  • 作者:Ryan Kiros, Yukun Zhu, Ruslan Salakhutdinov, Richard S. Zemel, Antonio Torralba, Raquel Urtasun, Sanja Fidler
  • 日期:2015
  • 期刊:NIPS

2. 文章概括

  文章提出了Skip Thought模型,旨在提供一种句向量的预训练方式。文章的核心思想类似于Word2Vec的skip-gram方法,即通过当前句子预测上下文句子。整体架构如下
Skip-Thought

3 文章重点技术

3.1 Skip Thought Vectors

  文章的整体架构选用基于GRU的encoder-decoder网络架构。给定输入的句子三元组 ( s i − 1 , s i , s i + 1 ) (s_{i-1}, s_{i}, s_{i+1}) (si1,si,si+1),令 w i t w_i^t wit表示句子 s i s_i si的第 t t t个单词, x i t x_i^t xit表示其对应的单词嵌入。
  首先模型对输入的句子 s i s_i si进行编码,encoder国策可表示为下面的GRU公式: r t = σ ( W r x t + U r h t − 1 ) ∈ ( 0 , 1 ) , z t = σ ( W z x t + U z h t − 1 ) ∈ ( 0 , 1 ) , h ‾ t = tanh ⁡ ( W x t + U ( r t ⊙ h t − 1 ) ) , h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ‾ t r^t = \sigma (W_r x^t + U_r h^{t-1}) \in (0, 1), \\z^t = \sigma (W_z x^t + U_z h^{t-1}) \in (0, 1), \\\overline{h}^t = \tanh (Wx^t + U(r^t \odot h^{t-1})) ,\\ h^t = (1-z^t)\odot h^{t-1} + z^t \odot \overline{h}^t rt=σ(Wrxt+Urht1)(0,1),zt=σ(Wzxt+Uzht1)(0,1),ht=tanh(Wxt+U(rtht1)),ht=(1zt)ht1+ztht,其中 r t , z t ∈ ( 0 , 1 ) r^t, z^t \in (0, 1) rt,zt(0,1)表示重置门和更新门, h ‾ t \overline{h}^t ht表示候选的隐藏状态,其更新到 t t t时刻的隐藏层比例由更新门 z t z^t zt确定,其从上一个时刻隐藏层输入的比例由重置门 r t r^t rt确定。
  接下来将句子编码分别传入到解码GRU中,用于预测当前句子相邻的上/下一个句子 s i − 1 , s i + 1 s_{i-1}, s_{i+1} si1,si+1,省略角标 i − 1 , i + 1 i-1, i+1 i1,i+1,相邻两个句子的解码公式均为 r t = σ ( W r d x t − 1 + U r d h t − 1 + C r h i ) ∈ ( 0 , 1 ) , z t = σ ( W z d x t + U z d h t − 1 ) + C z h i ∈ ( 0 , 1 ) , h ‾ t = tanh ⁡ ( W d x t + U d ( r t ⊙ h t − 1 ) + C h i ) , h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ‾ t r^t = \sigma (W_r^d x^{t-1} + U_r^d h^{t-1} + C_r h_i )\in (0, 1), \\z^t = \sigma (W_z^d x^t + U_z^d h^{t-1}) + C_z h_i \in (0, 1), \\\overline{h}^t = \tanh (W^dx^t + U^d(r^t \odot h^{t-1}) + Ch_i) ,\\ h^t = (1-z^t)\odot h^{t-1} + z^t \odot \overline{h}^t rt=σ(Wrdxt1+Urdht1+Crhi)(0,1),zt=σ(Wzdxt+Uzdht1)+Czhi(0,1),ht=tanh(Wdxt+Ud(rtht1)+Chi),ht=(1zt)ht1+ztht,即计算当前时刻的解码输出时,会考虑上一时刻的输入词嵌入和当前时刻的编码输出 h i h_i hi。给定 h i + 1 t h_{i+1}^t hi+1t,训练目标为通过前面时刻的单词预测(输入单词及对应编码嵌入)当前时刻 t t t的单词: P ( w i + 1 t ∣ w i + 1 < t , h i ) ∝ exp ⁡ ( v w i + 1 t , h i + 1 t ) P(w_{i+1}^t|w_{i+1}^{<t}, h_i) \propto \exp (v_{w_{i+1}^t}, h_{i+1}^t) P(wi+1twi+1<t,hi)exp(vwi+1t,hi+1t),其中 v w i + 1 t v_{w_{i+1}^t} vwi+1t表示 w i + 1 t w_{i+1}^t wi+1t对应的词表矩阵的行向量。
  总结来说,模型会首先对输入句子进行编码,然后将该编码得到的隐藏状态输入到其相邻句子的解码GRU中,尝试生成与其相邻的句子。类似于word2vec中的通过中心词预测上下文,只是上下文窗口固定为1。
  最终训练的目标函数即为相邻句子解码的目标函数之和: ∑ t log ⁡ P ( w i + 1 t ∣ w i + 1 < t , h i ) + log ⁡ P ( w i − 1 t ∣ w i − 1 < t , h i ) \sum_t \log P(w_{i+1}^t|w_{i+1}^{<t}, h_i) + \log P(w_{i-1}^t|w_{i-1}^{<t}, h_i) tlogP(wi+1twi+1<t,hi)+logP(wi1twi1<t,hi)

3.2 词表拓展

  为了处理词表中未出现的单词,文章选择采用Word2Vec等较全的预训练单词嵌入进行补充。由于该单词嵌入和Skip-thought训练的单词嵌入有一定的偏差,所以文章先训练一个从Word2Vec到RNN(Skip-thought)的l2线性回归: f : V w 2 v → V r n n f: \mathcal{V}_{w2v}\to \mathcal{V}_{rnn} f:Vw2vVrnn。推理阶段,针对词表中未出现的单词 v v v,会首先查找其在Word2Vec下的嵌入 v w 2 v v_{w2v} vw2v,再通过学习好的映射 f f f预测其在文章训练的空间下的嵌入表达; v r n n ≈ f ( v w 2 v ) v_{rnn} \approx f(v_{w2v}) vrnnf(vw2v)

4. 文章亮点

  文章参考Skip-gram的思想,通过训练一个基于RNN的编码-解码模型,得到句子的预训练嵌入。实验证明,只需要在预训练的嵌入上增加一个简单的Logistic Regression,就可以持平针对下游任务精心设计的模型的表现,在当下(2015年)达到了SOTA水平。且文章通过t-SNE方法对训练的句向量进行了可视化表达,发现训练的句向量在多个数据集上呈现较为理想(按照标签组团)的分布,如下图所示。
词嵌入
  文章给出的Skip-thought向量可以较好的捕捉到句子特征,可供开发人员在此基础上进一步研究基于句向量的NLP任务。

5. 原文传送门

Skip-Thought Vectors

6. References

[1] 论文笔记–Efficient Estimation of Word Representations in Vector Space

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50181.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7.28 作业 QT

手动完成服务器的实现&#xff0c;并具体程序要注释清楚: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //对话框类 #include …

乐划锁屏充分发挥强创新能力,打造内容业新生态

乐划锁屏作为新型内容媒体,在这一市场有着众多独特的优势,不仅能够通过多场景的联动给内容创作者带来了更多可能性,还促进了更多优质作品的诞生,为用户带来更加丰富多彩的锁屏使用体验。 作为OPPO系统原生的OS应用,乐划锁屏一直致力于打造为用户提供至美内容的内容平台,吸引了全…

ETHERNET/IP转RS485/RS232网关什么是EtherNet/IP?

网络数据传输遇到的协议不同、数据互通麻烦等问题&#xff0c;一直困扰着大家。然而&#xff0c;现在有一种神器——捷米JM-EIP-RS485/232&#xff0c;它将ETHERNET/IP网络和RS485/RS232总线连接在一起&#xff0c;让数据传输更加便捷高效。 那么&#xff0c;它是如何实现这一功…

解决 tensorflow 出现的 ImportError: Could not find the DLL(s) ‘msvcp140_1.dll‘. 问题

在安装完tensorflow库后出现 问题详述&#xff1a; ImportError: Could not find the DLL(s) msvcp140_1.dll. TensorFlow requires that these DLLs be installed in a directory that is named in your %PATH% environment variable. You may install these DLLs by downlo…

FS32K144官方提供串口Bootloader对接Matlab串口烧写程序

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 前言 Bootloader升级工具&#xff1a;可用TTL、232、485&#xff08;硬件收发模式&#xff09;,其中的一种&#x…

K8s-资源管理(二)

文章目录 2. 资源管理2.1 资源管理介绍2.2 YAML语言介绍2.3 资源管理方式2.3.1 命令式对象管理2.3.2 命令式对象配置2.3.3 声明式对象配置 2.4. 模拟使用普通用户来操作2.5 kubectl 一些基本命令2.6 使用个人的 docker 仓库的镜像 2. 资源管理 2.1 资源管理介绍 在kubernetes…

JMM是如何保证原子性呢?

3.3.1加锁 锁是一种通用技术&#xff0c;比如Java提供的Synchronized关键字就是锁的一种实现&#xff0c;Synchronized是排他锁/独占锁&#xff0c;就是有你没我的意思&#xff0c;只要其他线程到来访问&#xff0c;发现锁还未释放&#xff0c;就要在外面等待&#xff0c;因为S…

linux系统下(centos7.9)安装Jenkins全流程

一、卸载历史版本 # rpm卸载 rpm -e jenkins# 检查是否卸载成功 rpm -ql jenkins# 彻底删除残留文件 find / -iname jenkins | xargs -n 1000 rm -rf二、环境依赖安装 yum -y install epel-releaseyum -y install daemonize三、安装Jenkins Jenkins官网传送带&#xff1a; …

Nginx配置WebSocket反向代理

1、WebSocket协议 ​ WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯&#xff0c;直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容&#xff0c;它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的…

微服务入门---SpringCloud(一)

微服务入门---SpringCloud&#xff08;一&#xff09; 1.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结 2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.导入Sql语句2.2.2.导入demo工程 2.3.实现远程调用案例2.3.1.案例需求…

【Koa】[NoSQL] Koa中相关介绍和使用Redis MongoDB增删改查

目录 NoSQL非关系型数据库关系型数据库&#xff08;RMDB&#xff09;介绍非关系型数据库&#xff08;NoSQL&#xff09;介绍Redis & MongoDB 在 Koa 中使用 Redis (了解)Redis 的安装和使用在 Koa 中连接 和 调用 Redis 在 Koa 中使用 MongoDBMongoDB 的安装MongoShell 操作…

【Spring框架】SpringBoot配置文件

目录 配置文件作用application.properties中午乱码问题&#xff1a;配置文件里面的配置类型分类SpringBoot热部署properties基本语法properties配置文件的优缺点&#xff1a;yml配置文件说明yml基本语法配置对象properties VS yml 配置文件作用 整个项⽬中所有重要的数据都是在…

SQL-每日一题【1068. 产品销售分析 I】

题目 销售表 Sales&#xff1a; 产品表 Product&#xff1a; 写一条SQL 查询语句获取 Sales 表中所有产品对应的 产品名称 product_name 以及该产品的所有 售卖年份 year 和 价格 price 。 查询结果中的顺序无特定要求。 查询结果格式示例如下&#xff1a; 解题思路 1.题目要…

ERROR 1064 - You have an error in your SQL syntax;

ERROR 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near (/, 少个逗号吧&#xff0c;以前开始写SQL&#xff0c;特别是修改SQL的时候容易出现这样错误。 而且自己也知道在附近…

Qt6.5.2+WebRTC学习笔记(十三)开发环境搭建(macOS13.5)

前言 在ubuntu和win10开发测试一段时间了&#xff0c;但总在存在平台特性的问题&#xff0c;所以准备将程序移植到macOS上测试&#xff0c;同步进行三个主要桌面系统开发&#xff0c;本教程记录下环境搭建过程 一、准备 1.操作系统macOS13.5 64位 x86架构&#xff08;建议系…

python多线程

目录 一.多线程的定义 A.什么是多线程&#xff1f; B.多线程如今遇到的挑战 C.总结 二.python中的多线程 A.python中的多线程底层原理&#xff1a; B.全局解释器锁导致python多线程不能实现真正的并行执行&#xff01; C.总结应用场景 三.java多线程&#xff0c;以及…

每日一题——删除有序数组中的重复项

删除有序数组中的重复项 题目链接 注&#xff1a;本题所采用的方法是建立在移除元素的基础之上的&#xff0c;如果大家对双指针的方法不大了解&#xff0c;或者不会做《移除元素》这一题&#xff0c;建议先去看看&#x1f449;传送门 具体步骤 定义两个指针slow和fast&#…

如何在3ds max中创建可用于真人场景的巨型机器人:第 2 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。选择机器人头部后&#xff0c;二次单击鼠标并选择隐藏未选中。机器人的其他部分 除了头部之外&#xff0c;将被隐藏。 打开 3ds Max 步骤 2 在人脸选择模式下&#x…

使用 Logstash 及 enrich processor 实现数据丰富自动化

在我之前的文章&#xff1a; Elasticsearch&#xff1a;enrich processor &#xff08;7.5发行版新功能&#xff09; Elasticsearch&#xff1a;使用 Elasticsearch ingest pipeline 丰富数据 通过上面的两篇文章的介绍&#xff0c;我们应该充分掌握了如何使用 enrich proce…

深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

在 Elasticsearch 中&#xff0c;function_score 可以让我们在查询的同时对搜索结果进行自定义评分。 function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。 近期有同学反馈&#xff0c;function_score 的相关参数不好理解&#xff0c;本文将深入探讨 f…