[NLP论文阅读] A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING
来源:互联网 发布:软件体系结构设计报告 编辑:程序博客网 时间:2024/05/13 03:20
论文原文:A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING
引言
这篇文章提出了使用self-attention技术来生成可解释句子向量的模型。通常我们使用向量(vector)来表示单词、短语或者句子向量,在这篇文章中,作者提出可以使用二维句子来表示句子,矩阵的每一行表示句子的不同部分。作者在3个不同的数据集上进行了3种不同的task,分别是author profiling,sentiment classification以及textual entailment,都取得了不错的效果。
模型
作者提出的模型主要由2部分组成。第1部分是一个双向LSTM,第2部分是self-attention mechanism,该机制提供了对LSTM的隐藏层状态进行加和的权重。
模型结构图如下a:
模型的输入:
输入的S进入一个双向LSTM,第t个单词对应的前向和后向隐藏状态计算方法如下:
然后将前向和后向的隐藏状态进行连接得到用于后续计算的
至此,BiLSTM的使命结束了。
上图中b部分就是用于生成self-attention的简单前馈神经网络:
其中,
至此,self-attention机制介绍完毕。
然后就可以得到句子表示
作者认为常见的向量表示只能表示句子中的某个特定component,那么如何全面的把句子的大部分甚至所有component都表现出来呢,那么一个很自然的想法就是把向量扩展成矩阵。所以我们不能只用单个attention,我们需要对每个component都提供一个attention,所以就要将a变成A。
如果我们需要对句子的r个component进行建模,那么只需要提供r个a,即一个r*2u的矩阵。为了得到这个矩阵,作者将参数
最终句子表示也从向量
至此,我们得到了矩阵级别的句子表示。
PENALIZATION TERM
作者在实验中发现,如果计算得到的attention句子A中有部分行的值相似的话,最终得到的句子表示矩阵中也会出现一些行的值是相似的,这样就让M变得冗余了。所以在设计网络的损失函数时,需要考虑加入penalization term来让模型得到的A的每一行的差别明显。
作者的设计是在loss加入这么一项:
其中,
设A是mxn的矩阵,其F范数定义为:
||A||F=∑i=1m∑j−1n|aij|2−−−−−−−−−−⎷
所以在模型中,最终的损失函数为cost=交叉熵+
实验结果
作者使用了三个不同的数据集:
the Age dataset:一个推特的推文数据集,推文中有对用户年龄的描述,作者将其分为了5个年龄段,该数据上进行的任务是根据推文判断用户年龄段。分类问题。
the Yelp dataset:一个用于情感分类任务的数据集,包含2.7M个评论,分类任务是根据输入的评论推测出评论对应的星数(从1星到5星)。
the Stanford Natural Language Inference(SNLI) Corpus:一个用于关系推理的数据集,其实也是一个分类任务,根据输入的句子对,推测出对应的关系。
实验结果如下:
推理任务的实验结果:
探索型的实验
在这个模块主要对penalization term和r的参数设置进行了探索,不多说直接上图。
1. penalization term系数的影响
2. r的大小(1-30)选择
另外,这篇论文有开源的代码,明天学习一下。
我的开源实现:A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING
2017.10.25 上海。
- [NLP论文阅读] A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING
- 论文引介 | A Structured Self-attentive Sentence Embedding
- [ICLR2017]A Structured Self-attentive Sentence Embedding
- [NLP论文阅读]A simple but tough-to-beat baseline for sentence embedding
- [NLP论文阅读]Siamese CBOW: OptimizingWord Embeddings for Sentence Representations
- 《论文阅读笔记》Deep Metric Learning via Lifted Structured Feature Embedding
- [NLP论文阅读] Discourse-Based Objectives for Fast Unsupervised Sentence Representation Learning
- [NLP论文阅读] Supervised Learning of Universal Sentence Representations from NLI data
- [NLP论文阅读] Learning Paraphrastic Sentence Embeddings from Back-Translated Bitext
- 论文阅读笔记 - Bigtable: A Distributed Storage Systemfor Structured Data
- [NLP论文阅读] Word Embedding based on Fixed-Size Ordinally Forgetting Encoding
- [NLP]论文笔记-A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS
- [NLP论文阅读]A Neural Knowledge Language Model(一)
- 阅读小结Deep Metric Learning via Lifted Structured Feature Embedding
- 论文阅读:CVPR 2015 FaceNet: A Unified Embedding for Face Recognition and Clustering
- 【论文阅读二】FaceNet:A Unified Embedding for Face Recognition and Clustering
- A simple but tough-to-beat baseline for sentence embedding
- 【nlp论文阅读】Adversal Neural Machine Translation
- 【特征工程】特征选择与特征学习
- codeforces 546B Soldier and Badges
- 我对 js的深复制与浅复制 的理解
- 归并排序
- 2017中国企业互联网CEO峰会暨崔牛会年会即将震撼来袭!
- [NLP论文阅读] A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING
- Android 购物车 高仿淘宝
- 加密算法概述
- 关于跨域的问题详解-cors
- 【好文】成为一个高效的web开发者
- wsdl文件标签的描述
- Generator
- mybatis详解-(1)简介
- 非线数据结构