AAAI 2020 | 北理&阿里最新论文MemCap针对图像、视频可以自动生成生动风格化描述

 

本文对北京理工大学和阿里文娱摩酷实验室合作的论文《MemCap:Memorizing Style Knowledge for Image Captioning》进行解读。

 

该论文提出了一种通过记忆机制对语言风格相关知识进行编码的风格化图像描述方法。由于语言风格无法直接从图像中获取,因此在生成风格化描述时,我们使用存储模块来存储关于语言风格的知识,并根据图片中的内容来检索这些知识。

 

研究背景

 

图像自然字幕的任务涉及到对图像内容的理解和自然语言的生成。这是一个连接计算机视觉和自然语言处理的问题。目前的图像描述方法大多集中在对没有明显语言风格的图像进行准确、客观的描述上。事实上,特定语言的描述更有价值。例如,当用户在社交网络上上传图1(a)所示的图片时,一个通用的图像描述模型可以将其描述为“头上带着袋子的猫坐在沙发上”。虽然精确,但它吸引的力量有限。如果所生成的描述具有语言风格,如“这只淘气的猫想体验窒息的感觉”,将会在社交网络上带来更好的沟通效果,引起更多的关注。另一个例子是图1(b)中推荐的视频标题,具有独特的语言风格。如果能够自动生成具有一定风格的相似描述并作为标题使用,将大大减轻视频推荐平台运营商的负担,提高视频推荐的分发效果。

 

图 1(a) ;图 1(b)。

 

程式化的图像描述既需要对视觉信息的准确理解来反映客观内容,也需要生成恰当的语言风格来表达主观情感。然而,与语言风格相关的内容通常更为抽象,无法直接从视觉内容中感知,这使得很难生成风格化的描述。人们在理解图像内容时,通常可以利用关联能力从先验知识中搜索和提取相应的风格化语料库。当人们看到图2并用积极的情感倾向来描述它的内容时,往往会把“好食物”和“食物”联系起来,本文作者提出了一种模因cap方法来模拟这个过程,并通过程式化的记忆模块来存储与语言风格相关的知识。在生成描述时,从程式化存储模块中提取相关知识,得到程式化句子。

 

图1:事实图像描述和风格化图像描述的示例。 与样式相关的单词以红色显示。

 

考虑到在实际语料库中,与视觉内容相关的词语通常与语言风格相关的词语共存,这使得程式化记忆模块难以学习干净的程式化语料库。在本文中,我们提出了一个句子分解算法,将与视觉内容相关的部分和与语言风格相关的部分分开。

 

方法

方法概述

 

MemCap模型包括样式化存储模块M、样式化图像描述模块C、图片场景图生成器E、句子场景图生成器F和样式化句子分解模块P,如图3所示。样式化存储模块以场景图为输入,检索与场景图相关的样式化知识m。这部分知识和场景图被发送到图像描述模块C来生成最终的描述。

 

由于本文的方法只使用未配对的样式化句子进行微调,因此我们将样式化句子分解为内容相关部分和样式相关部分,并将其转换为场景图作为M和c的输入。同时,使用W嫒s对M中存储的程式化知识进行更新,并对C进行端到端的训练。在测试过程中,图像被转换成场景图,并作为M和C的输入。

 

图2:我们提出的方法概述。 蓝色箭头指示使用不成对的程式化句子的训练过程,红色箭头指示推断过程。 在训练过程中,每个风格化的句子ys被分为内容相关部分Wc和场景相关部分Ws,其中内容相关部分Wc被编码为场景图Gy,后者被用于更新存储模块M。 场景图Gy,并与Gy一起输入字幕器C。 在推理期间,将图像x编码在场景图Gx中,并根据Gx提取样式知识mx。 与训练过程类似,Gx和mx被输入到字幕机C中以生成样式化的字幕。

 

 

  • 程式化句子分解

 

给定一个程式化的句子y^s,句子分解的目的是将与风格无关的部分W^c和语言风格部分W^s分开,考虑到与语言风格相关的部分很少出现在事实描述中,我们首先得到句子的依存分析树,然后去掉引起较高混淆的部分,即与语言风格相关的部分。在依赖树中,每个单词w_i对应于树中的一个节点v_i。让第t次迭代中的剩余句子为y((t))^s。在第t次迭代中,尝试删除节点v_j及其子树,并重新评估剩余句子的混乱程度。如果混淆度最低的句子是y t((t,j))^s,混淆度小于y((t))^s的混淆度,则进入下一个迭代,否则算法终止,y((t))^s作为样式独立部分。

 

  • 场景图的矢量表示

 

对于场景图G=(V,E),其节点集V包含三个不同的节点:对象节点o_i、关系节点r_ij和属性节点a_i^k。对于每个节点,使用其相应类别标签的单词嵌入作为节点的矢量表示。对于对象节点o_i和关系节点r_ij,使用以下公式计算上下文相关表示u_(o_i)和u_(r_ij):

其中 e_(o_i ),e_(r_ij ) 以及 e_(a_i^k ) 分别为o_i,关系 r_ij 以及属性 a_i^k 的向量表示。整个场景图 G 的向量表示为 e_c,它是所有物体节点与关系节点的上下文相关表示的平均:

  • 样式化记忆体模组

 

对于样式s,样式化存储模块包含两个矩阵M_s 以及〖M'〗_s,分别存储与语言样式相关的知识和相应的目标内容。程式化的记忆体模组使用注意机制来更新和撷取程式化的知识。在更新过程中,计算表示整个场景图的向量e_c 为〖M'〗_s的每一列的权重,并基于这些权重,使用e_c 和表示所有程式化词的向量e_s更新〖M'〗_s 中的数据,更新〖M'〗_s 中的每一列和相应列,在提取程式化知识的过程中,以〖M'〗_s 类似的方式计算每一列的权重,并且M_s中的相应列被加权和求和为存储器模块的输出m。

 

  • 生成样式化描述

 

本文提出的样式化描述模型是在Up-Down模型的基础上,利用样式化存储模块的输出m来初始化两层LSTM网络的状态。第一层LSTM网络利用注意机制对场景图中的所有上下文相关表示进行编码,第二层LSTM网络输出词汇表中每个单词的概率。

 

  • 训练策略

 

MemCap训练分为训练前阶段和微调阶段。在训练前阶段,采用图像和相应的目标描述作为训练数据,采用交叉熵损失函数进行训练。在微调阶段,首先使用交叉熵损失函数对模型进行微调,然后使用自临界方法对模型进行更新[1]。在强化学习中,对多个不同的评价指标(包括句子是否有风格、句子是否混淆)进行加权,作为奖励。

 

实验结果

 

本文使用MSCOCO数据集对模型进行预训练,并使用SentiCap数据集中的风格化语料库(包括正面和负面风格)和FlickrStyle10K数据集中的风格化语料库(包括浪漫和幽默风格)对模型进行预训练。进行微调。我们将MemCap方法与许多不同的方法进行了比较,包括使用图片和成对样式化描述的SF-LSTM方法、使用未配对样式化语料库的StyleNet方法和MSCap方法。为了与MSCap进行比较,实验中同时使用了多个风格化的存储模块,并训练了一个能够同时生成多种风格描述的模型。表1和表2显示了单个样式(为每个样式训练模型)和多个样式(训练可以同时生成多个样式描述的模型)实验的结果。此外,还进行了烧蚀实验,验证了模型中不同模块的有效性。

 

 

  • 定量结果

 

本文用Bleu-1、Bleu-3、METEOR、CIDEr等指标来评价生成的句子是否与图片相关,用平均混淆度(ppl)来评价句子是否流畅,用风格准确率(cls)来评价生成的句子是否风格一致。具体地说,使用一个基于风格化文本的语言模型来计算平均混淆度,使用一个能够判断语言风格的分类器来计算风格准确率。需要注意的是,平均混淆度越低越好,其他指标越高越好。

 

 

表 1 :单风格图像描述的实验结果,B-1,B-3,M,C 分别表示 Bleu-1,Bleu-3,METEOR,CIDEr;ppl 表示句子的平均困惑度,cls 表示风格准确率。

表 2 :多风格图像描述的实验结果。

  • 定性结果

 

下图显示了一些样式化图像描述的示例,MemCap生成的句子能够正确描述图片内容,具有明显的语言风格。

 

图3:生成的程式化字幕示例。 每列包含一张图片和相应的风格化句子。 句子的样式以粗体标记,并在反映语言样式的单词或短语下划线。

图4:生成的风格化中文视频字幕的示例。 相应的英文翻译包含在括号中。

结论

论文地址或源码下载地址:关注“图像算法”wx公众号 回复"MemCap",如何生成适当语言风格?由于MemCap能够执行单一样式和多种样式的字幕,并且使用不成对的程式化语料进行训练,因此可以轻松,轻松地将其应用于许多现实情况。在两个风格化数据集上的大量实验证明了我们方法的优越性和有效性。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值