全世界只有3.14 % 的人关注了
爆炸吧知识
转自:机器之心
参与:蛋酱
要是收藏夹里没几个独家沙雕表情包,当代网民都无法在朋友圈立足。但有一些「妙不可言」的图片,也许是 AI 生成的结果。
一般人很难读出「meme」这个词,它通常译为「模因」,起源于 1976 年,本意为「模仿传递行为」。
但读音和来源或许没那么重要,重要的是每个网上冲浪的人都见过它,甚至沉迷于它。在中文里,它大概被称为「网络梗图」、「沙雕图片」、「表情包」等等……
比如这个:
还有这个:
这个金发蓝衣的快乐男孩,你难道不眼熟吗?
作为机器学习研究者,你可能还偷偷在收藏夹里保存了这些:
这是一张在深度学习社区流传很广的图,表达的是新的预训练方法如何比之前的 SOTA 方法更优越。当然,新 SOTA 方法是层出不穷的,这样的图片收集起来甚至能形成一个完整的系列。
图的创建通常只有两步:选一张时兴的 meme 模版(即图像),然后配上「精妙绝伦」的说明文字,制造出一种别有韵味的幽默感。
.
这种图像、文字和幽默感的奇妙组合,在信息传递方面极具穿透力和感染力,比如当你看到这张图时:
虽然这只是一张静态图片,句子也不成句子,但你的眼前已经浮现出了七人共舞的场景。
当代网友人人都用表情包,甚至还会自制。比如:
然而,表情包除了自制,还可以由 AI 生成。你可能想不到,某个平平无奇的表情包背后竟然隐藏着「神秘力量」。
今天,我们就来了解一下 meme 自动生成。
meme 自动生成一直是深度学习领域的课题之一。以往的生成方法要么是从一堆 meme 字幕中选择最适合的一个,要么是基于给定图片和模版来生成 meme 字幕,似乎有点不够「便捷」。
近日,来自美国亚利桑那州立大学的研究者对 meme 图生成方法进行了改进提升。在这篇论文中,研究者提出了一种根据给定的输入语句来生成匹配图片的方法。这是一项很有挑战性但有趣的 NLP 任务。
论文地址:https://arxiv.org/abs/2004.14571v1
通过对 meme 图生成机制的深入了解,研究者决定将 meme 图生成与自然语言翻译结合起来。
在自然语言翻译工作中,为了将输入的语句转换为目标语言,必须对语句的完整含义进行解码,分析其含义,然后将源语句的含义编码为目标语句。
类似地,此处也可以将源语句的含义编码为图像和字幕对,使之传达与源语句相同的含义或情感,从而将语句翻译成「梗」。
受该方法的启发,研究者提出了一种端到端的编码-解码模型「memeBot」,可面向任意给定的语句生成 meme 图。同时在训练的过程中,研究者创建了首个大型 meme 图字幕数据集。
给出句子「I am curiously waiting for my father to cook supper tonight」,memeBot 使用 meme 模板选择合适的图,然后用字幕生成器生成恰当的字幕,从而生成 meme 表情包。
如何用 memeBot 制作表情包?
「memeBot」是一种端到端的神经与概率架构。该模型共有两个组成部分,如下图所示,首先是使用 meme 模版选择模块,根据输入语句确定用哪张图;然后是 meme 字幕生成器,生成合适的字幕。
meme 模版选择模块
基于 BERT、XLNet、Roberta 等 trans-former 架构的预训练语言表征被广泛用于自然语言理解任务。这些模型在针对相应任务微调之后,均达到了新的 SOTA 水平。
该研究在 meme 模版选择任务上,使用线性神经网络对预训练语言表征模型进行了微调。在训练过程中,通过使用公
将依据给定语句选择正确模版的概率最大化。其中θ_1 表示 meme 模版选择参数,T 表示模版,S 是输入句。
meme 字幕生成
研究者借鉴了降噪编码器的方法,通过破坏输入字幕来训练 meme 字幕生成器,并使用词性标注器(POS Tagger)来提取输入字幕的词性。研究者使用 POS 向量来对输入字幕进行遮罩,仅把名词短语和动词短语作为输入传递给 meme 字幕生成器。
破坏数据的目的是让模型从现有的字幕中学习 meme 生成,并在推断过程中将基于给定输入语句生成 meme 的过程进行泛化。
meme 字幕生成器模型使用了 transformer 架构,通过对选定的 meme 模版和输入语句执行多头缩放点积注意力,来创建给定输入语句的 meme 嵌入。
transformer 解码器首先对预期的字幕执行 masked multi-head attention,然后在编码的 meme 嵌入和 masked multi-head attention 的输出之间执行多头缩放点积注意力(如图 3 所示)。这使得 meme 字幕生成器能够学习输入语句、所选 meme 模版和预期 meme 字幕之间的依赖关系。
此外,该研究还使用公式
来优化 transformer。
其中θ_2 表示 meme 字幕生成器的参数,C 表示 meme 字幕,M 是基于 transformer 编码器获得的 meme 嵌入。
数据集
模型训练所用数据有两个来源,一个是全球最大的 meme 图片生成网站「imgflip」,另一个就是众所周知的 meme 图片集合地「推特」。为了爬取更多的数据,研究者开发了一款网络爬虫工具,尽可能多地收集 meme 图。
该研究最终创建的数据集包含源自 24 个「经典沙雕梗」的 177942 个 meme 字幕。表 1 展示了数据样本的组成部分,附录 A 展示了训练所用的「经典源图」,图 4 为 meme 字幕主题的分布情况。
表 1:meme 字幕数据集中的样本示例,包括模版名称(Template name)、字幕(Caption)、meme 图(Meme Image)三部分。
附录 A:实验所用 meme 字幕数据集中的的模版和图像。
图 4。
此外,研究者收集了推特平台的推文,用以评估 memeBot 在线上社交互动中通过语句生成 meme 的效力。
研究者在关键词「Coronavirus」查询结果中随机抽取 6000 条推文,从中选择了 1000 条非负面情绪的推文。目的是通过输入推文让模型生成 meme 图,并评估生成结果是否与推文内容相关。
memeBot 效果如何
该研究在训练、验证和测试阶段的数据集分别包括 142341、17802 和 17799 个样本,评估内容包括模版选择模块在选择兼容模版时的性能、字幕生成器的生成效力等。
首先,研究者对 BERT、XLNet 和 Roberta 几种预训练语言表征模型进行了微调,并在 meme 字幕测试数据集上测试了模型的 meme 模版选择性能,结果如表 2 所示。
表 2:加粗部分为最佳分数,精确度和 F1 两项指标是越高越好,损失则越低越好。研究者使用了性能表现最佳的 Roberta_base 模型作为 meme 生成 pipeline 中的模版选择模块。
然后,在字幕生成任务中,研究者使用了两个变体「MT2MC」和「SMT2MC」(SMT2MC 也有两个变体),分别代表「基于模版生成字幕」和「基于输入语句及模版生成字幕」。下图是字幕生成器的变体所生成的 meme 示例。
可以看出,MT2MC 根据给定的 meme 模版随机生成字幕,与输入语句无关联,SMT2MC 变体生成的 meme 字幕则与输入语句有语境关联。在 SMT2MC 的变体中,以名词短语和动词短语作为输入生成的字幕能够更好地还原输入语句的本意。
在评估时,研究者使用了 BLEU 分数来评估生成字幕的质量。鉴于 meme 生成没有固定的指标,研究者还引入了一组评估人员进行「主观评价」,评估的维度包括图片与字幕的连贯性和相关性等等,分数在 1-4 分不等。
BLEU 值以及人类评估得分情况。
相关性与连贯性分数的定性比较。
研究者还设计了一个实验,来评估 meme 生成结果在线上社交环境中的效力:
表 5:推特数据中的人类评估分数。相关性和一致性指标满分为 4 分,「User Likes」一项代表喜欢该生成结果的人数占总体的百分比。
图 9:SMT2MC-NP+V 变体生成的 meme 结果。
最后,研究者也提到,meme 的生成效果评价因人而异,很难通过预定义的指标进行评估。接下来他们会将继续拓展这一方面的研究,比如将 meme 引入社交媒体流,并根据 meme 在人群中的传播对其进行评估。meme 传播率和传播人群可用于强化训练,生成更高质量和更具创意的 meme。
转自:机器之心,转载仅供学习交流,如有侵权请联系删除。
万水千山总是情,点个 “在看” 行不行