最近,神经网络逐渐成为许多计算机科学难题的解决工具:Facebook用神经网络做照片人脸识别,Google用它对照片内容做 各种 识别。苹果公司通过它来识别Siri听到的内容,IBM用它做业务部门协同实施。

这些工作都让人印象深刻。但神经网络能否应对现实中的问题?它能过在需要的时候帮你找到 �� 表情符吗?

为什么不能?当然可以。��

这篇文章会概述Dango背后的设计。从真实世界中上亿次的表情符使用中自动学习,提取成为一个小巧快速的工具,预测你在手机上可能使用的表情符。�� �� �� �� ��

Dango是什么?

Dango是一个运行在手机上的浮动助手,可以在任何APP编辑时根据你输入的内容推测你可能用到的表情符、贴纸和GIF动画。它让你在所有地方都可以使用同样丰富的表情,无论是Messenger、Kik、Whatsapp或是Snapchat。(要在所有APP中都能使用对Dango本身是一个巨大的挑战,但这不是本文要关注的内容)

提示表情符非常难:也就是说,Dango需要理解你正在编辑的内容,然后才能建议你可能需要用到的表情符。Dango依赖的其核心功能,就是基于神经网络进行预测。神经网络受到人类大脑中神经元的启发,对上百万个可设置参数的计算结构的一种松散连接。

神经网络通过随机的初始化参数开始训练,然后为Web上实际使用表情符的地方给出建议,比如“嘿,最近怎么样��”,“晚上想来点��吗?”,“啊呸��”诸如此类。一开始,神经网络给出的建议只是随机猜测,但是随着实际训练的进行会逐渐调整那上百万个参数,在实际场景下表现得越来越好。在顶级GPU上运行了一段时间后,这个网络开始能够给出一些看起来更有意义的提示:

晚上想喝点什么?�� �� �� �� ��

从表情符学到的

这种数据驱动的表情符预测方法让Dango的表现超出了我们的预料。Dango会教我们新的俚语,让我们知道世界各地的人们如何使用表情符交流。

例如:如果你输入”Kanye is the“,Dango会提示��。这只山羊表示史上最伟大的(Greatest of All Time G.O.A.T),Kanye在今年早些时候被授予的头衔:

意识到他是在世的最伟大的艺术家,以及最伟大的艺术家之一。
— KANYE WEST(@kanyewest)2016年2月14日

Dango能够表示所有单个表情符无法表达的内容。例如,如果你来自B.C.或者科罗拉多并且喜欢“放松”,那么Dango会用你的方式表达。

今晚420?�� �� �� ��

如果你觉得某人很扯淡,想要让他们滚蛋。Dango会这么说:

你走开 ������。

Dango还掌握了很多互联网文化,能够理解文化和潮流。例如,如果你看过喝茶的青蛙Kermit,“但这不关我的事”这幅图:

但这不关我的事 �� ☕

当然,还有很多Dango能够理解的笑话,但你得保持与时俱进

Beyonce �� �� (she’s the Queen Bee).
Pizza rat �� ��
ayy lmao ��

当然,还有很多用法我们还不了解。

不仅是表情符

考虑到Dango是通过表情符进行训练,一开始会感觉它能够理解的概念范围很小——在Unicode编码中表情符是有标准的1624 emoji。这个数量对前端设计者来说显得相对较小,是一个令人头痛的问题。

然而,者并不意味着只有1624种含义。当你使用表情符时,他们的含义会由使用的上下文环境决定,含义会变得千差万别。��可能表示“击掌”、“感谢”或者“求求你”。 ��……当然只能表示茄子。表情符组合能够表示一些新的含义。��表示亲亲,但是���� 就表示吹口哨,而 ���� 表示抽烟。这些表情组合会变得非常复杂:

看牙医 �� �� ��
堵在路上了 �� �� �� ��

这些用法表明,Dango能够表示的概念远比单个的表情符丰富。这就厉害了,因为这样Dango就能够超越Unicode标准的定义理解更多的概念。

Dango因此还能够提示贴纸和GIF。Dango能够知道滚出去�� �� ��,当然也就可以给出GIF:

滚出去

更进一步

让我们更进一步了解背后的机制。

最原始的提示方法(也是Dango一开始使用的方法),直接把一些单词与表情符对应:披萨��,狗狗��,等等。但是这种方法非常有限,并且不能够表达表情符(语言)实际的用法。有很多实际的例子可以说明,单词的组合根本无法通过简单的对应来表示:

我的女朋友离开了我 ��
你懂了 ��✊
你知道的 ��
他就是我的另一半 ❤ ��
她答应了! �� �� ��

要处理这些用法,Dango采用了递归神经网络(RNN)。与自然语言处理、语音处理和金融时间序列分析不同,RNN是一个特殊的神经网络架构,能够很好地处理顺序输入。下面我们会快速地了解一下RNN是什么,要深入了解请阅读Andrej Karpathy对RNN很棒的介绍。

RNN通过内部状态记录处理顺序输入。所谓内部状态是一块内存,可以跟踪之前输入的内容。这样就可以很好地知道“我很高兴 �� �� �� ”与“我不是很高兴 �� �� ��”之间的区别。

多个RNN能够彼此堆叠:每个RNN层接收顺序输入并转换成一个新的、更加抽象的表达形式,作为下一层的输入。如此循环。递归神经网络的层次越深,他们能够处理的功能就越复杂。顺便说一句,现在最流行的“深度学习”就是来自这里。像机器视觉这种难题的重大突破,一部分功劳就是由于使用了更深层次的神经网络。

Dango的神经网络最终演变成了数以百计的数字列表。这些列表可以理解为一个高维空间,就像可以用x-、y-、z-的3歌数字表示一个三维空间的点。

在所谓的高维语义空间里,各种语义都对应到空间中不同的点。在这种空间里,意思越相近点的距离也离得越近。深度学习先驱Geoff Hinton把这些点形象地成为“思维向量(thought vector)”。Dango在训练的过程中所作的,就是在这个语义空间里把自然语言和表情符转换为单独的向量。

当Dango处理文本时,就可以将它们在语义空间里进行映射。当要确定提示哪个表情符时,会把每个表情符向量投射(Project)到对应的句子向量。投射(Projection) 是一种对连个向量相似性的简单度量。Dango会选择投射结果最长的表情符——这些就是与输入文本含义最接近的结果。

语义空间的可视化 ������

对于我们这样的视觉动物,空间隐喻(spatial metaphor)是一种非常强大的工具。它能够帮助我们根据直觉谈论神经网络。(在Whirlscape,我们都沉迷于空间隐喻;可以参见之前的帖子Minuum键盘算法)。

为了对Dango的语义空间可视化,我们使用了一种流行的高维空间可视化技术,所谓的 t-distributed stochastic neighbour embedding 简称t-SNE。这项技术试图将高维空间的店映射到二维空间,并确保在原来的空间中接近的两个点在二维空间中也接近。尽管这种映射不够完美,但还是提供了很多信息。让我们使用t-SNE来把语义空间中的表情符可视化:

可以注意到,在这个空间里相似的表情符会自动聚集在一起。例如,大多数面部表情都聚集在“脸部半岛(Face peninsula)”。与高兴相关的面部表情������聚集在一个区域,与愤怒相关的表情 ������ 聚集在另一个区域。所有心形的表情都聚集在“爱情点(Point Love)”的顶峰。

在图形的尾部你可以看到其它有趣的分组:����⚾⚽ 彼此非常接近,带头发的面部表情 �������� 与没有头发的表情相距很远(这就是为什么他们想要出去约会吗?)。图形尾部附近可以看到旗帜和一些很少用到的表情符,比如文件柜和快进指示。

当然,Dango不会区分具体的含义,比如心形、啤酒或农场的动物。Dango是根据Web上数以亿记的真实例子训练结果生成的这个语义地图。那么,这里的训练指的是什么?

在训练前,神经网络处于 初始化 状态,一组随机值。也就是说,基本上可以看做从零开始。输入的句子会随机映射到语义空间,在这个空间里表情符也是随机分布的。

为了训练神经网络,我们定义了一个目标函数。这是一种为给定示例进行网络性能的分级方法,分数越低性能越好。接下来,我们使用了一种非常简单的所谓梯度算法。随着每一次的训练,梯度算法都会修改神经网络数百万个的参数,朝着能够减小目标函数结果的方向调整。

在GPU对这个过程进行若干天的运算后,目标函数已经没有改进的空间——这时Dango已经训练完毕,整装出发!

语言的未来

语言正朝着可视化迈进。尽管Dango是通过密集的劳动让它们朝着高级的方式发展,但表情符、贴纸和GIF正在爆发性增长已成为不争的事实。一些表情符的死忠为每个场景都创建了自己的表情集合,并且熟记每个表情符在键盘上的位置。其余的大多数还是在“常用表情”里选择,有时也会转发一些GIF。

随着科技的发展,可视化语言也在日益成熟。这种共生关系会一直持续,新技术催生新的语言,反过来语言也会促使技术进步。未来的交流会提供最适合你的人工智能工具,帮助你无缝编制图片和文本。Dango自豪地站在潮流的前沿。

希望你不仅仅喜欢我们的产品,更能够受到底层机制的启发。你可以想象,你的每一个句子都漂浮在语义空间的某个地方,周边围绕着数以百计的表情符。也许你会开始自己使用神经网络。请让我们知道!

当然,也请一定尝试一下Dango,期待您的反馈。当你脑中出现这样的问题:我要使用哪个表情符? Dango会给你答案。

求下载! �� �� ��

原文:Teaching Robots to Feel: Emoji & Deep Learning
作者: getdango.com
译者:赖信涛
责编:钱曙光

让机器人懂感情:表情符与深度学习相关推荐

  1. 基于人脸的常见表情识别(1)——深度学习基础知识

    基于人脸的常见表情识别(1)--深度学习基础知识 神经网络 1. 感知机 2. 多层感知机与反向传播 卷积神经网络 1. 全连接神经网络的2大缺陷 2. 卷积神经网络的崛起 卷积神经网络的基本网络层 ...

  2. 从特征描述符到深度学习:计算机视觉发展20年

    转自:http://cs2.swfc.edu.cn/~zyl/ 赵毅力的视觉研究博客 从特征描述符到深度学习:计算机视觉发展20年 Author: Tomasz Malisiewicz 翻译:赵毅力( ...

  3. 地平线机器人_地平线机器人CEO余凯:基于深度学习的自动驾驶之路

    请关注公众号"汽车创新港",获取后续更多论坛实录! 加工作人员微信号:tinydanio,备注"我要入群"直接进入直播群! 今天都是大牛,下面的也是技术大牛,是 ...

  4. 干货丨一文看懂人工智能、机器学习和深度学习的区别与联系

    人工智能的浪潮正在席卷全球,诸多词汇时刻萦绕在我们耳边:人工智能(Artificial Intelligence).机器学习(Machine Learning).深度学习(Deep Learning) ...

  5. 一张图看懂AI、机器学习、深度学习的关系

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. AI(人工智能)是未来,是科幻小说,是我们日常生活的一部分.所有论断都是正确的,只是要看你所谈到的A ...

  6. 看懂人工智能、机器学习、深度学习与神经网络之间的区别与关系

    刚刚接触人工智能的内容时,经常性的会看到人工智能,机器学习,深度学习还有神经网络的不同的术语,一个个都很高冷,以致于傻傻分不清到底它们之间是什么样的关系,很多时候都认为是一个东西的不同表达而已,看了一 ...

  7. 简单读懂人工智能:机器学习与深度学习是什么关系

    从计算机发明之初,人们就希望它能够帮助甚至代替人类完成重复性劳作.利用巨大的存储空间和超高的运算速度,计算机已经可以非常轻易地完成一些对于人类非常困难,但对计算机相对简单的问题.比如,统计一本书中不同 ...

  8. 机器学习_深度学习毕设题目汇总——表情情感

    下面是该类的一些题目: 题目 人脸表情图像识别关键技术的分析与研究 在线学习环境下的表情识别算法及应用研究 基于图卷积网络的方面级情感分析方法研究 基于多特征融合的人脸表情识别研究 基于子空间学习的微 ...

  9. 大话卷积神经网络CNN,小白也能看懂的深度学习算法教程,全程干货建议收藏!...

    来源 | 程序员管小亮 本文创作的主要目的,是对时下最火最流行的深度学习算法的基础知识做一个简介,作者看过许多教程,感觉对小白不是特别友好,尤其是在踩过好多坑之后,于是便有了写这篇文章的想法. 由于文 ...

最新文章

  1. python 下载阿里云mysql的备份文件及binlog到本地
  2. 手机端viewport的设置规范
  3. Linq TO SQL 虽好,但不要滥用
  4. python无实际意义的语句_没有学不会的python--认识简单的数据类型
  5. 欢乐纪中A组周六赛【2019.5.25】
  6. html页面包含头文件,Web前端技术:HTML部分---Head标签中包含的头文件标签,body标签包含的内部标签...
  7. 如何调整HOOK的跳转指令
  8. 2018年NLP技术学习总结
  9. 【Research Paper】
  10. Atitit 微服务实践 艾提拉著 微服务主要解决几个问题负载均很 目录 1. 微服务的模式 http请求层 vs服务层 1 1.1. Http vs 服务层优缺点 1 2. 实现技术 2
  11. 数据库基本操作和常用命令
  12. 三菱plc控制步进电机实例_自动化工程师必掌握的PLC控制步进电机逻辑思路
  13. oracle中insert语句怎,Oracle中Insert语句的总结
  14. python缺失值处理 fillna_python 处理缺失值
  15. 赵小楼《天道》《遥远的救世主》深度解析(55)王庙村扶贫和格律诗事件的关键人物:冯世杰
  16. MUI前端代码生成快捷键
  17. Testin云测平台操作步骤
  18. 京东和区块链的那些事儿
  19. Windows10文件夹打不开提示位置不可用的解决方案
  20. 《MySQL高级篇》八、索引优化与查询优化

热门文章

  1. 【区块链】(2)区块链概念与体系
  2. 做网站需要用到哪些开发软件——心得分享
  3. 安卓_手机卫士_第五天(手机定位,设备管理器,电话归属地)
  4. 干货|最全焊接不良汇总,你知道如何避免吗?
  5. 雅居乐万豪酒店java_“万豪,我心所属之地” | 上海雅居乐万豪酒店Terence Sun的实习故事...
  6. pgAdmin+III的简单操作
  7. SAP S4 FI后台详细配置教程- PART5 (应收帐目和应付帐目配置篇)
  8. react仿微信聊天室|react即时聊天IM系统|react群聊
  9. 01-Docker-介绍与安装(CentOS)
  10. Q50 数组中重复的数字