《Convolutional Sequence to Sequence Learning》 阅读笔记

论文地址:Convolutional Sequence to SequenceLearning
代码地址:facebookresearch/fairseq

1. 为什么要选择 CNN 做机器翻译?

 相比 RNN:

  • CNN 能够并行处理数据,计算更高效;
  • CNN 是层级结构,底层的CNN捕捉相聚较近的词之间的依赖关系,高层CNN捕捉较远词之间的依赖关系。

2. 模型

1. Position Embedding

  输入为:  x = ( x 1 , . . . , x m x_1, ..., x_m x1,...,xm)

  词向量表示输入:  w = ( w 1 , . . . , w m w_1, ..., w_m w1,...,wm) 其中 w j ∈ R f w_j \in R^f wjRf, 词汇表为 D ∈ R V × f D \in R^{V \times f} DRV×f

  位置信息: p = ( p 1 , . . . , p m p_1, ..., p_m p1,...,pm) 其中 p j ∈ R f p_j \in R^f pjRf

  输入最终表示向量:  e = ( w 1 + p 1 , . . . , w m + p m w_1 + p_1, ..., w_m + p_m w1+p1,...,wm+pm) 其中 e j ∈ R f e_j \in R^f ejRf

2. Convolutional Block Structure
encoder:

假设词向量的维数为 d 维

先把 e 做线性映射:
h i 0 = W e i + b ∈ R h h_i^0 = We_i + b \in R^h hi0=Wei+bRh

把一次"卷积计算 + 非线性计算" 看做一个单元 Convolutional Block.

卷积计算: 对原输入进行卷积窗口大小为 k 的 2h个卷积核做卷积运算, 则每次卷积生成两列 h维的向量,以 k = 3 k=3 k=3为例 f i 1 = C o n v ( h i − 1 0 , h i 0 , h i − 1 0 ) ∈ R 2 h f_i^1 = C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值