***CA-RNN: Using Context-Aligned Recurrent Neural Networks for Modeling Sentence Similarity(CA-RNN:使用上下文对齐的递归神经网络建模句子相似度)***
**论文通读:**
## 1. 概要:
 大多数RNN专注于基于当前句子对隐藏状态进行建模,而在隐藏状态生成过程中,其他句子的上下文信息却没有得到很好的研究。在本文中,我们提出了**一种上下文对齐的RNN(CA-RNN)模型**,该模型在句子对中**合并了对齐单词的上下文信息**,以生成内部隐藏状态。具体来说,我们首先执行单词对齐检测,以识别两个句子中对齐的单词。然后,我们提出一种**上下文对齐门控机制**,并将其嵌入到我们的模型中,以自动吸收对齐单词的上下文以进行隐藏状态更新
## 2. 具体工作:
 
 1. 提出了一个新的上下文对齐RNN模型,其中两个句子中对齐单词的上下文被很好地利用以更好地产生隐藏状态;
 2. 提出了一种上下文对齐选通机制,并将其很好地嵌入到我们的模型中,该机制可以自动吸收相关上下文并减少生成特定隐藏状态的噪声;
 3. 我们对两个句子相似性任务进行了实验结果的详尽分析,从而更好地理解了模型的有效性相关工作
 
 
## 3. 模型分解:
 - 神经网络:
  其模型如下:
  
  输入特征项:x1,x2,x3,最后h(x)为输出。
layer2为隐藏层,这里面的值我们不知道。所有输出层和输入层都是隐藏层。
上述的神经元,计算过程如下:

每个输入值,在一个节点中,有不同的权值,根据不同的权值来计算输出。
其中为矩阵相乘的相关知识,g为sigmode函数:

 - 损失函数,反向传播
  损失函数:
  反向传播:(具体算式略):即采用正向传播得出的结果与真实值进行比较,得出误差,然后通过代价函数和误差推导输出前一层的神经网络的误差,然后通过得出的误差一直向前推导,直到输入层的下一层,然后再通过调整权值,调整误差,尽量使得误差较小。
 - RNN:递归神经网络,其模型如下:

我们在处理文字等问题的时候,我们的输入会把上一个时间输出的数据作为下一个时间的输入数据进行处理。
例如:我们有一段话,我们将其分词,得到t个数据,我们分别将每一个词传入到x0,x1…xt里面,当x0传入后,会得到一个结果h0,同时我们会将处理后的数据传入到下个时间,到下个时间的时候,我们会再传入一个数据x1,同时还有上一个时间处理后的数据,将这两个数据进行整合计算,然后再向下传输,一直到结束。
rnn本质来说还是一个bp回路,不过他只是比bp网络多一个环节,即它可以反馈上一时间点处理后的数据。
 - LSTM(长短期记忆网络)

上图有三个门:输入门 忘记门 输出门
1.输入门:通过input * g 来判断是否输入,如果不输入就为0,输入就是0,以此判断信号是否输入
2.忘记门:这个信号是否需要衰减多少,可能为50%,衰减是根据信号来判断。
3.输入门:通过判断是否输出,或者输出多少,例如输出50%。
所以通过上述神经网络和RNN模型以及LSTM我们可以通读此论文。
按照上述要求:
**上下文对齐选通机制:**
 - 1.基于单词重叠
 单词重叠即相同单词,获取相同单词的上下文信息即可。
 - 2.基于语义相似度
 基于语义,即为相似词,例如:爸爸也叫老爸,通过词或字的相似性来进行选择上下文。(基于Stanford Core NLP工具2的单语单词aligner1算法(语义算法))
**上下文对齐门控机制**
 - 1.相关性度量
 - 2.上下文吸收
1.测量对齐的单词所在的句子(HX)的表示与当前单词对应的隐藏状态(hy j)之间的相关性,这是确定多少上下文信息的良好标准另一个句子中对齐的单词中要吸收的部分。(即为激励函数求概率)
2.由RNN获得的原始隐藏状态(hy j)将根据所测量的相关性直接吸收其他句子中对齐单词的上下文信息(hx i)。结果,将生成新的隐藏状态,其公式为:hyj = g hx i +(1- g)hy j(3)其中,g是通过公式(2)获得的内插相关参数,表示逐元素相乘,并且hyj是新生成的隐藏状态

综上,ca-rnn即为其流程

CA-RNN论文读取的更多相关文章

  1. 序列模型(2)-----循环神经网络RNN

    一.RNN的作用和粗略介绍: RNN可解决的问题: 训练样本输入是连续的序列,且序列的长短不一,比如基于时间的序列:一段段连续的语音,一段段连续的手写文字.这些序列比较长,且长度不一,比较难直接的拆分 ...

  2. RNN,LSTM

    RNN: Vanilla Neural Network :对单一固定的输入给出单一固定输出 Recurrent Neural Network:对单一固定的输入给出一系列输出(如:可边长序列),例:图片 ...

  3. 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 背景及问题 背景: 翻译: 翻译模型学习条件分布 ...

  4. deep learning新征程

    deep learning新征程(一) zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan  2015-11-26   声明: 1 ...

  5. 软工结对项目之词频统计update

    队友 胡展瑞 031602215 作业页面 GitHub 具体分工 111500206 赵畅:负责WordCount的升级,添加新的命令行参数支持(自定义输入输出文件,权重词频统计,词组统计等所有新功 ...

  6. Fabric-Ca使用

    Fabric-Ca的概念不再解释了,这里只说明使用方法: 前置条件 Go语言1.10+版本 GOPATH环境变量正确设置 已安装libtool和libtdhl-dev包 Ubuntu系统 通过以下命令 ...

  7. Tensorflow Probability Distributions 简介

    摘要:Tensorflow Distributions提供了两类抽象:distributions和bijectors.distributions提供了一系列具备快速.数值稳定的采样.对数概率计算以及其 ...

  8. 一篇提及如何通过串口读取并提取GPS信号的论文

    一篇提及如何通过串口读取并提取GPS信号的论文 作者:崔杰 梁计春 王国军 目前,在用计算机进行数据传输时,常用的是串行通信方式.在Visual C++的编程中,既可以用Windows API函数进行 ...

  9. RNN(2) ------ “《A Critical Review of Recurrent Neural Networks for Sequence Learning》RNN综述性论文讲解”(转载)

    原文链接:http://blog.csdn.net/xizero00/article/details/51225065 一.论文所解决的问题 现有的关于RNN这一类网络的综述太少了,并且论文之间的符号 ...

随机推荐

  1. [tesseract-ocr]OCR图像识别Ubuntu下环境包安装

    问题: ImportError: libSM.so.6: cannot open shared object file: No such file or directory 解决: sudo apt- ...

  2. Java 实现一个 能够 进行简单的增删改查的 超市管理系统

    1. 首先编写一个 Fruitltem 的商品类, 描述 商品的基本信息. 代码如下: 保证详细, 运行的起来, 有什么 问题也可以评论留言. /* * 自定义类, 描述商品信息 * * 商品的属性: ...

  3. nginx篇最初级用法之lnmp环境搭建

    这里m使用mariadb 需要下列软件列表: nginx mariadb 数据库客户端软件   mariadb-server   数据库服务器软件   mariadb-devel  其他客户端软件的依 ...

  4. STL库学习笔记(一)——什么是STL?

    小明是一个很牛逼的程序员,在国际标准化组织工作. 他现在正在设计新一代的C++标准,标准中有一个待实现的函数:findMax(),这个函数要求使用者输入任何类型的数据,他都能找到最大的一个. 于是他想 ...

  5. P2114 [NOI2014]起床困难综合症

    #include<iostream> #include<cstdio> using namespace std; ; ]; long long n,m; long long t ...

  6. python习题——随机整数生成类

    随机整数生成类 可以先设定一批生成数字的个数,可设定指定生成的数值的范围 1.普通类实现 import random import random class RandomGen: def __init ...

  7. JVM原理速记复习Java虚拟机总结思维导图面试必备

    良心制作,右键另存为保存 喜欢可以点个赞哦 Java虚拟机 一.运行时数据区域 线程私有 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是Native方法则为空),是唯一一个没有规定 ...

  8. Linux下rpm仓库搭建

    一.概念 1.rpm是什么?在帮助文档里我们可以看到,rpm的名字是rpm package manage 的缩写, 从名字上看就可以知道rpm就是一个包管理工具.简单说rpm包就是把一些程序编译成二进 ...

  9. .NET Core3.0 EF 连接 MySql

    一:创建项目 添加 csproj (或者直接NuGet 引用) <ItemGroup> <PackageReference Include="Microsoft.Entit ...

  10. celery 启用worker ValueError: not enough values to unpack

    [2018-01-12 19:08:15,545: INFO/MainProcess] Received task: tasks.add[5d387722-5389-441b-9b01-a619b93 ...