突发奇想,突然想把自己阅读后的paper整理下来,整理自己思路的同时也可以方便有需要的读者阅读,感觉这应该是个好习惯hhh…
今天要讲解的是谷歌在17年发表的关于复述生成的一篇论文:
Dictionary-Guided Editing Networks for Paraphrase Generation
什么是复述生成呢?简单来说就是一个句子经过复述后,跟原来的句子在表达形式上有所区别,但是表达的是相同的意思,而且复述的句子还要保证语法通顺。
举个例子:
原句子:“你很漂亮”;
复述句子:“你长得好好看”。
这篇论文的主要贡献为:在encoder-decoder框架中加入字典指导的编辑网络,如下图,右边的词或短语的复述对就是作者引入的外部信息:

第一步:检索
- 作者引入外部数据库:Paraphrase Database (PPDB)来获取词或短语的复述对;
- 使用Lucene工具在PPDB中检索原句子中词或短语的复述对(10倍复述对),然后对这些复述对进行排序,排序算法如下:

这里作者先使用Lucene工具默认的排序工具检索出10倍复述对,然后再使用自己的排序算法取出top M个复述对,排序算法第一项为原始词或短语的tfidf值,表征该短语的整个句子中的重要程度;第二项为复述对的得分函数,可以理解为两个复述短语的语义相似程度。
第二步:字典编码
得到原始句子x的复述对
ε
=
{
(
o
i
,
p
i
)
}
i
=
1
M
\varepsilon=\{(o_i,p_i)\}_{i=1}^M
ε={(oi,pi)}i=1M之后,使用字典编码网络将
ε
\varepsilon
ε转换为表示向量:

第三步:字典指导的编辑模型
- 对于原始输入句子,作者使用BiRNN和标准的attention模型提取有效信息:

- 对于表示向量,作者使用soft attention来判断词是否删除或插入:

具体的soft attention模型如下:

通过 c t c_t ct向量来判断词是否删除或插入。
以上,就是整篇文章的大致流程,paper中的结构图如下:

但其实这个图作者是省略了一些步骤的,具体为隐藏层省略了一层,更具体的应该为:

画的有点丑,将就着看吧…
以上内容,若理解或表达有误,请不吝赐教!
本文深入解析了谷歌于2017年发布的复述生成技术论文,介绍了一种在encoder-decoder框架中加入字典指导编辑网络的方法,用于生成语法正确且意义保持不变的复述句子。文章详细阐述了检索、字典编码及字典指导编辑模型的实现过程。
2634

被折叠的 条评论
为什么被折叠?



