Self-Attention Guided Copy Mechanism for Abstractive Summarization---ACL 2020

该论文提出了一种自注意力引导的复制机制,用于文本摘要。通过Transformer模型计算源句单词的中心度,改进复制分布,提升摘要效果。在CNN/DM数据集上达到SOTA。

仅仅是记录一下最近阅读的论文,前段时间也没怎么记录,有些论文看过也忘记了!

这篇论文是文本摘要CNN/DM数据集上达到了SOTA的效果,发表于ACL 2020.

按照文章整体脉络整理信息,细节内容后面看有时间在仔细阅读整理一下吧。

论文链接:Self-Attention Guided Copy Mechanism for Abstractive Summarization

ps. 没找到论文源码,所以具体实现细节还有待了解,顺便蹲个论文源码链接。

1. 论文提出背景

复制模块是最近抽象式摘要模型里面广泛使用的模块,这个模块使得decoder可以从源文档中提取单词作为摘要。通常来说,encoder-decoder注意力分数作为复制分布,然而如何保证源句中的重要单词被复制仍然是一个主要的挑战。

本文主要需要解决的问题就是如何更加合理的确定源句中单词的copy distribution。复制分布就是源句中每个单词每个时间刻的概率分布大小。本文采用的基础模型还是指向生成器网络,看论文后面的内容也可以看出来,文中也计算了Pgen和Pvocab的概率。

2. 本文主要贡献

  • 本文提出了基于文本摘要源句单词的中心度为指向的复制机制,中心度的获取通过入度和出度计算来度量。
  • 本文提出了中心度感知( centrality-aware)的注意力,并且提出了一个以损失为导向的模型,使得模型可以对源句中重要的单词有更多的关注。
  • 本文在公开的文本摘要数据集上达到了S
基于门控融合的部分引导注意力机制在车辆重识别(Part - Guided Attention with Gated Fusion in Vehicle Re - Identification)是车辆重识别领域的一种技术。 在车辆重识别任务中,需要准确地判断不同图像中的车辆是否为同一辆车。部分引导注意力机制可以聚焦于车辆的不同关键部分,例如车头、车身、车尾等。通过这种方式,模型能够更好地捕捉车辆各个部分的特征,避免被一些无关信息干扰。 而门控融合则是一种将不同特征或信息进行有效整合的技术。在车辆重识别中,可能会有来自不同部分的特征,门控融合机制可以根据不同部分特征的重要性,动态地决定如何将这些特征融合在一起,从而提高最终特征表示的质量和区分度。 以下是一个简单的伪代码示例,展示这种机制的大致实现思路: ```python import torch import torch.nn as nn # 定义部分引导注意力模块 class PartGuidedAttention(nn.Module): def __init__(self, in_channels): super(PartGuidedAttention, self).__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.fc = nn.Sequential( nn.Linear(in_channels, in_channels // 16, bias=False), nn.ReLU(inplace=True), nn.Linear(in_channels // 16, in_channels, bias=False), nn.Sigmoid() ) def forward(self, x): b, c, _, _ = x.size() y = self.avg_pool(x).view(b, c) y = self.fc(y).view(b, c, 1, 1) return x * y.expand_as(x) # 定义门控融合模块 class GatedFusion(nn.Module): def __init__(self, in_channels): super(GatedFusion, self).__init__() self.gate = nn.Sigmoid() def forward(self, part_features): # 假设 part_features 是一个包含多个部分特征的列表 num_parts = len(part_features) gates = [] for i in range(num_parts): gate = self.gate(part_features[i]) gates.append(gate) fused_feature = sum([gate * part_features[i] for i, gate in enumerate(gates)]) return fused_feature # 示例使用 in_channels = 256 part_guided_attention = PartGuidedAttention(in_channels) gated_fusion = GatedFusion(in_channels) # 模拟输入 x = torch.randn(16, in_channels, 32, 32) part_features = [part_guided_attention(x) for _ in range(3)] # 假设有3个部分 fused_feature = gated_fusion(part_features) print(fused_feature.shape) ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值