点这里 排版好
新年第一天更博 显得很有
仪式感(破音~)
(虽然已经断更一个月了 捂脸)
祝各位NLPer
, 各位dalao
在新的一年里灵感爆棚 投的offer全中 万肆如意 新年玉快
新年第一天 日常网上冲浪 竟然发现MRFN
终于被放出来了 啊 啊 啊~~
这篇论文我从去年十月一直等到现在
在这期间中不乏有Bert这种神器爆出来
但并没有打消我对这篇SOTA的期待
IMN
则是上个月中科院几位博士在arXiv在线发表的一篇论文 主要是被数据吓坏了 有、厉害
粗粗看 可能觉得这两篇文章没什么关系 一个是多粒度fusion 一个是类似于Bert的深层次网络处理
但仔细思考 IMN dot 之后的结构与MRFN
的FLS有异曲同工的作用 不负责的猜测
FLS的设计思路会成为今后一段时间follow的点
PS: 以上两篇paper 都承诺开源code (虽然repository里面都没有code) 之后会跟一下code 看一下具体效果
概括一下 MRFN
- 在原来SMN DAM 两粒度 基础上提出三粒度6种表示
- 提出多表示匹配-合并(Matching-Aggregation)的三种策略
- 使用大量实验验证各个表示的作用,验证context轮次、平均对话长度变化时各个表示的作用情况
- 提出的多表示匹配-合并策略可推广到其他模型 并在SMN中进行试验
- 比DAM快1.9x的训练速度
IMN
- EMbedding层加入character-EMbedding 解决OOV
- EMbedding层后接类似ELMo思路的BiLSTM(paper中 这个结构最work)
- dot之后做两个粒度的分析
MRFN
MRFN = Multi-Representation Fusion Network
MRFN
是严睿老师组里陶重阳博士,小冰组徐粲学长,武威dalao去年的工作 论文发表在WSDM2019
上
全文看下来 包括Motivation,实验设计都给我一种很舒服的感觉 感觉一切都顺理成章 一气呵成
事实上 去年十月底 在EMNLP2018
的tutorial上严老师和武威dalao就已经把MRFN
的结果秀出来了
之后徐学长回来分享的时候也提到这篇论文 但论文一直没放出来
Motivation
这篇文章的Motivation是建立在最近几年多轮检索式对话基于的面向交互的思想
回想一下从Multi-view引入交互,到SMN完全基于交互,再到DAM多层交互
交互的粒度越多越work已经是大家的共识了
但如何更好的设计各个粒度之间的层次关系 减少不必要的性能浪费
作者提出把粒度划分为word
, short-term
, long-term
三个粒度6种表示
Word
character EMbedding
: 利用字符级别的CNN(n-gram)解决typos/OOV的问题
Word2Vec
: 这里很简单的用了word2Vec 很显然用ELMo Bert等会有更好的效果 当然效率上面就不太划算Contextual
Sequential
: 借用GRU
的结构实现句子中间子串信息的获取
sub-sequential
Local
: 利用CNN
获取N-gram的信息
N-gram
的信息Attention-based
self-Attention
cross-Attention
Model
但怎么把这些粒度有效的融合在一起
回想一下SMN在CNN之后才将word
和short-term
两个粒度的信息融合在一起
很自然的想到 如果在之前/之后做fuse效果会怎么样?
这个思路 就很像NIPS14年那篇讨论是应该先dot还是应该先做CNN的paper
作者就提出前中后三种fusion
策略
其中左侧是之前设计的6钟表示
U
->U*
的过程是简单的把多个矩阵拼接成一个矩阵
U i ∗ ∈ R d ∗ × n i ( d ∗ = ∑ d k ) U^*_i \in R^{d^* \times n_i}(d^*=\sum d_k) Ui∗∈Rd∗×ni(d∗=∑dk)
而fusion
则是利用类似CNN
的公式
t i , j = f ( e i , j ^ , e i , j ˉ ) = R e L U ( W p [ ( e i , j ^ − e i , j ˉ ) ⊙ e i , j ^ − e i , j ˉ ) ; e i , j ^ ⊙ e i , j ˉ ] + b p ) t_{i,j}=f(\hat{e_{i,j}},\bar{e_{i,j}})=ReLU(W_p[(\hat{e_{i,j}}-\bar{e_{i,j}}) \odot \hat{e_{i,j}}-\bar{e_{i,j}});\hat{e_{i,j}} \odot \bar{e_{i,j}}]+b_p) ti,j=f(ei,j^,ei,jˉ)=ReLU(Wp[(ei,j^−ei,jˉ)⊙ei,j^−ei,jˉ);ei,j^⊙ei,jˉ]+bp)
其中
w j , k i = V a T t a n h ( W a [ e i , j ⊕ e r , k ^ ] + b a ^ ) w_{j,k}^i=V_a^T tanh(W_a[\hat{e_{i,j}\oplus \hat{e_{r,k}}]+b_a}) wj,ki=VaTtanh(Wa[ei,j⊕er,k^]+ba^)
α j , k i = e x p ( ω j , k i ) ∑ ( e x p ( ω j , k i ) ) \alpha_{j,k}^i=\frac{exp(\omega_{j,k}^i)}{\sum(exp(\omega_{j,k}^i))} αj,ki=∑(exp(ωj,ki))exp(ωj,ki)
e i , j ˉ = ∑ α j , k i e r , k ^ \bar{e_{i,j}}=\sum{\alpha_{j,k}^i}\hat{e_{r,k}} ei,jˉ=∑αj,kier,k^
之后就跟上GRU
和MLR
得到相应的score值
Experiment
本文做了大量的实验 羡慕MSRA有用不完的机器 呜呜呜
可以看出FLS
效果比DAM
提升比较显著 即使是 FIS
在Dubbo数据集上也比DAM略微好一点
可以看出Contextual
两个部分效果略有重叠导致了去除其一掉点不会太多 总的来说Contextual
在模型中提点最大
fusion
三策略移到SMN
也得到了不错的结果全篇看下来 对于一个做系统出身的出身来看 十分舒服 可以说是比较Science
得到的结果也比较significantly
IMN
IMN = Interactive Matching Network
相对而言 IMN
论文写得有点随意 取名字也有、(不是喷 吐槽一下)
同样 IMN的作者也想到了用character
来减缓OOV的问题
创新点在于 EMbedding层之后用了一个类似ELMo
的处理策略 来获取Sentence之间的信息
(当然 如果现在来做 用Bert做同样的事情可能会更好)
除了上述的idea之外 作者还在dot完之后分成两个粒度做处理
仔细一想 这和MRFN的FLS本质上是一种思路 把fusion的过程往后推迟
然后这个result确实厉害 ym dalao
References