paper解读:Dictionary-Guided Editing Networks for Paraphrase Generation

本文深入解析了谷歌于2017年发布的复述生成技术论文,介绍了一种在encoder-decoder框架中加入字典指导编辑网络的方法,用于生成语法正确且意义保持不变的复述句子。文章详细阐述了检索、字典编码及字典指导编辑模型的实现过程。

突发奇想,突然想把自己阅读后的paper整理下来,整理自己思路的同时也可以方便有需要的读者阅读,感觉这应该是个好习惯hhh…

今天要讲解的是谷歌在17年发表的关于复述生成的一篇论文:
Dictionary-Guided Editing Networks for Paraphrase Generation

什么是复述生成呢?简单来说就是一个句子经过复述后,跟原来的句子在表达形式上有所区别,但是表达的是相同的意思,而且复述的句子还要保证语法通顺。
举个例子:
原句子:“你很漂亮”;
复述句子:“你长得好好看”。

这篇论文的主要贡献为:在encoder-decoder框架中加入字典指导的编辑网络,如下图,右边的词或短语的复述对就是作者引入的外部信息:
在这里插入图片描述
第一步:检索

  1. 作者引入外部数据库:Paraphrase Database (PPDB)来获取词或短语的复述对;
  2. 使用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 ε转换为表示向量:
在这里插入图片描述

第三步:字典指导的编辑模型

  1. 对于原始输入句子,作者使用BiRNN和标准的attention模型提取有效信息:
    在这里插入图片描述
  2. 对于表示向量,作者使用soft attention来判断词是否删除或插入:
    在这里插入图片描述
    具体的soft attention模型如下:
    在这里插入图片描述
    通过 c t c_t ct向量来判断词是否删除或插入。

以上,就是整篇文章的大致流程,paper中的结构图如下:
在这里插入图片描述
但其实这个图作者是省略了一些步骤的,具体为隐藏层省略了一层,更具体的应该为:
在这里插入图片描述
画的有点丑,将就着看吧…

以上内容,若理解或表达有误,请不吝赐教!

语言引导去噪网络(Lgdn)用于视频语言建模,是一种将语言信息融入视频处理以提升视频语言建模效果的技术。在视频语言建模任务中,需要处理视频中的视觉信息和与之相关的语言描述信息,而Lgdn通过利用语言信息来引导去噪过程,帮助模型更好地理解视频内容与语言之间的关联。 具体而言,Lgdn可能通过以下方式工作:首先,语言信息被编码成特定的特征表示,这些特征可以反映语言的语义和上下文信息。然后,在视频处理阶段,这些语言特征会被引入到去噪网络中,指导网络去除视频中的噪声,同时保留与语言描述相关的关键视觉信息。这样,模型可以更准确地学习视频和语言之间的对齐关系,从而提高视频语言建模的性能,例如在视频字幕生成、视频问答等任务中表现更优。 ```python # 以下是一个简单的伪代码示例,展示Lgdn可能的工作流程 import torch import torch.nn as nn # 假设这是一个简单的语言编码器 class LanguageEncoder(nn.Module): def __init__(self, input_dim, hidden_dim): super(LanguageEncoder, self).__init__() self.fc = nn.Linear(input_dim, hidden_dim) def forward(self, language_input): return self.fc(language_input) # 假设这是一个简单的视频去噪网络 class VideoDenoisingNetwork(nn.Module): def __init__(self, video_input_dim, language_hidden_dim, output_dim): super(VideoDenoisingNetwork, self).__init__() self.fc1 = nn.Linear(video_input_dim + language_hidden_dim, output_dim) def forward(self, video_input, language_features): combined_input = torch.cat((video_input, language_features), dim=1) return self.fc1(combined_input) # 实例化模型 language_encoder = LanguageEncoder(input_dim=100, hidden_dim=50) video_denoiser = VideoDenoisingNetwork(video_input_dim=200, language_hidden_dim=50, output_dim=200) # 模拟输入 language_input = torch.randn(1, 100) video_input = torch.randn(1, 200) # 编码语言信息 language_features = language_encoder(language_input) # 进行视频去噪 denoised_video = video_denoiser(video_input, language_features) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值