想不到,那些让我半夜偷偷收藏的沙雕表情包,竟是出自AI之手

全世界只有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。

转自:机器之心,转载仅供学习交流,如有侵权请联系删除。

万水千山总是情,点个 “在看” 行不行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript中的arguments,callee,caller

2019独角兽企业重金招聘Python工程师标准>>> arguments: arguments 该对象代表正在执行的函数和调用它的函数的参数。 [function.]arguments[n]参数 function:选项。当前正在执行的 Function 对象的名字。 n :选项。要传递给 Function 对象的…

python总结函数图像_PIL使用小结(crop和paste函数)

PIL(Python Imaging Library)是python语言中对图像处理方面的一个开源库,其主要功能模块为Image,对于Image模块,可以使用from PIL import Image或者import Image由于使用了试用版的chartdir库,在生成图片的时候下面会出现一行提示…

js中apply和join

join 分隔符分隔指定数组中的数据,不仅可以分割&#xff0c;还可以考虑用join("")合并&#xff0c;可以将一个array对象数据进行合并 1 <script>2 vark["2","3",4,5];3 alert(k.join(""));4 vars["s",":",,…

12333新农合网上查询_新农合医保查询缴费平台|新农村医疗保险网上缴费平台

这个智慧新农合新农合患者就诊从挂号到缴费&#xff0c;不用再拿着各种票据在报销处和收费处之间奔走&#xff0c;也不用担心票据不完整造成无法正常报销的情况&#xff0c;只需携带本人有效身份证和农合本&#xff0c;凭身份证号码或新农合号码即可实时报销所有费用&#xff0…

晚上我们一起去白码会所玩啊!

1 白学公主和白码王子真般配晚上一起去白码会所玩啊▼2 看完这些图我觉得要重新考虑要不要让男人陪产了▼3 乒乓球拍好难吃啊▼4 论朋友圈美食照片是怎么来的▼5 论推广普通话的重要性▼6 关键是&#xff0c;你吃完一身味忘不掉而且大多数人吃一次还想吃▼7 想知道一天1…

System.Linq捉虫记 | 论变量命名的重要性

前言下面这段代码&#xff0c;你能发现什么问题吗&#xff1f;List<int> a new List<int>{ 1, 2, 3, 4, 5 };var last2 a.TakeLast(2);foreach (var item in last2) { Console.WriteLine(item); }a.AddRange(new[] { 11, 12, 13, 14, 15 });foreach (var item in…

ASP.NET的SEO:HTTP报头状态码---内容重定向

本系列目录 我们经常说“404错误”&#xff0c;你知道他指的是什么意思么&#xff1f; 404其实是Http报头所包含的一个“状态码”&#xff0c;表明该Http请求失败。那么除此之外&#xff0c;还有哪些常用的状态码呢&#xff1f;这些状态码和SEO又有什么关系呢&#xff1f;每次当…

java 双向链表_java集合类之LinkedList

LinkedList简介LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口&#xff0c;能对它进行队列操作。LinkedList 实现 Deque 接口&#xff0c;即能将LinkedList当作双端队列使用。LinkedList 实…

疯狂福利 | 美剧《天赋异禀》1-2季免费送!播放超12亿!刷了整整一晚上,太上头!...

全世界只有3.14 % 的人关注了爆炸吧知识蹬&#xff0c;蹬&#xff0c;蹬&#xff01;爆炸吧知识的好朋友【知英语】来撒福利啦……超火美剧《天赋异禀》1-2季&#xff0c;一次性打包免费送给你喽&#xff01;注意在“知英语”公众号回复【天赋】即可获取&#xff0c;记得收好哦…

.Net之SoapCore简单使用

最近在工作中&#xff0c;需要同时放出来WebAPI接口和支持Soap协议的WebService接口&#xff0c;在dotNetFramework时候玩过WebService&#xff0c;这可是好久没再碰过了&#xff0c;没想到现在居然遇到了。只好迎难而上。介绍本来是在ASP.NetCore中使用了组件SoapCore来使用So…

Word打不开,如何修复word文档?

2019独角兽企业重金招聘Python工程师标准>>> 亲爱的你有没有遇到过写了好久的一篇文档突然打不开的惨剧&#xff1f;有没有为一篇重要的文件被损坏而苦恼几天的情形&#xff1f;遇到这种情况怎么办&#xff1f;不要急&#xff0c;不要急&#xff01;我将会给你带来一…

面试了57位数据分析师,我发现牛逼的人都有这4个特质

全世界只有3.14 % 的人关注了爆炸吧知识现在的职场竞争越来越激烈&#xff0c;不学上一两门新技能&#xff0c;保持自己知识更新&#xff0c;很容易被年轻后辈超越。有些人选择学一门外语&#xff0c;有些人选择学习职场上为人处事的能力。如果你的工作需要和数据打交道&#x…

iNeuOS工业互联网,增加一批PLC、核工业、数字模块、传感器等设备驱动

增加流量计、AI/AO/DI/DO模块、质谱、色谱、加热炉及其他行业专用设备等&#xff0c;不同的通讯协议和通讯机制整体集成到iNeuOS系统中。数据采集&#xff0c;涉及到领域的专业设备、通用设备和PLC&#xff0c;有国内传感器和国外传感器&#xff0c;通讯协议和数据格式多种多样…

SpringMVC异常处理流程

2019独角兽企业重金招聘Python工程师标准>>> Controller中的方法执行出现异常ex.ex在DispatchServlet中被捕获,交给默认的ExceptionHandlerExceptionResolver进行处理.ExceptionHandlerExceptionResolver先在Controller中找标有ExceptionHandler的方法.没有找到. go…

为什么盯一个字看久了,反而感觉不认识了?

全世界只有3.14 % 的人关注了爆炸吧知识你肯定有过这样一种体验——长时间盯着某个字看&#xff0c;或者重复写一个字&#xff0c;就会觉得这个字越写越不认识想想你被老师罚抄作业的时候……盯着这张图看1分钟▼你是不是就不认识“哈”了神经活动被你“玩累”了盯着一个字看久…

自建PicGo图床

介绍图床工具&#xff0c;就是自动把本地图片转成连接的一款工具&#xff0c;网络上有很多图床工具&#xff0c;PicGo就是一款比较优秀的图床工具&#xff0c;可以支持微博&#xff0c;七牛云&#xff0c;腾讯云COS&#xff0c;又拍云&#xff0c;GitHub&#xff0c;阿里云OSS&…

【心情】今天买了ZÈRTZ!

转载于:https://www.cnblogs.com/boringlamb/archive/2010/04/27/1721772.html

当代人的恋爱步骤

1 耳朵连线了&#xff1f;2 有时候我们更需要做一个稳重的吃货3 你大爷果然是你大爷… 4 我竟然下意识的吹了一口5 这也太孤独了6 当代人的恋爱步骤7 据说这张图上有10个人&#xff0c;你能找到几个&#xff1f;你点的每个赞&#xff0c;我都认真当成了喜欢

使用EF Core操作层次结构数据

前言以前我们存储层次结构常用IdParentId的方式&#xff0c;例如&#xff1a;IdParentIdName1null总公司21分公司131分公司242部门A54小组X64小组Y这种方式查询效率不高&#xff0c;比如查询分公司1下的所有小组&#xff0c;必须使用递归。针对这个问题&#xff0c;如果你是使用…

仿UC菜单的实现

http://blog.csdn.net/hellogv/archive/2011/01/28/6168439.aspx &#xff08;另&#xff09;http://www.cnblogs.com/lichien/archive/2010/09/07/1820453.html 先来看看本文程序运行的效果&#xff1a; TabMenu 本身就是一个PopupWindow&#xff0c;PopupWindow上面放了两个G…