文档章节

Expander-基于Graph的机器学习软件

openthings
 openthings
发布于 2016/10/08 14:35
字数 2464
阅读 76
收藏 0

      近来机器学习突飞猛进使计算机系统能够解决现实世界中的复杂问题。其中之一便是谷歌的大规模、基于图的机器学习平台。这一技术使用了半监督式学习方法,目前已经在谷歌大量的产品中得到应用,其中就包括内置在谷歌最新手机Pixel中的聊天应用Allo。谷歌研究团队最近发表了两篇论文介绍这一技术。

  近来机器学习突飞猛进使计算机系统能够解决现实世界中的复杂问题。其中之一便是谷歌的大规模、基于图的机器学习平台,这是由 Google Research 的 Expander 团队制作的。很多你日常使用的谷歌产品及功能背后,都有基于图的机器学习,这是一种强大的工具,能够用于收件箱提醒、Allo 智能信息回复等功能,基于图的机器学习和深度神经网络一起,为 Google Photos 最新的图像识别系统提供动力。

  

  在最低的监督下学习

  深度学习和机器学习近来的成功主要可以归功于这样一些模型,它们在经过大规模(通常几百万的)带标签的数据训练以后,展现出了极高的预测能力。我们把这种机器学习模型叫做“监督学习”,因为它需要监督,也就是由人加了标签的数据进行训练。(相对的,直接在原始数据上运作,不需要任何监督的机器学习方法则被称为无监督学习。)

  但是,任务越是困难,越是难以找到足够多的带有标签的高质量数据。实际上,对于每个新的任务都采集带标签数据是一件不可能的事情,需要花费超出想象的时间和精力。由此,Expander 团队才有了开发新技术,用最少的监督支持大规模机器学习应用的想法。

  Expander 团队的技术受人类如何在已有知识(带标签数据)和全新、未知的观察结果(不带标签的数据)之间架起理解的桥梁的启发。被称为“半监督”学习的这种方法,使系统能够在稀疏数据集上训练。基于图的半监督学习方法重要的优势在于,系统在学习的时候同时吸收带有标签的和不带标签的数据,这样有助于改善数据的底层结构,此外,多种不同的信号能很轻松地混合在一起(比如带有原始特征的知识图谱相关信息),用单一的图表示,系统可以一次性学习。相比之下,神经网络方法一般是先使用带标签的数据训练,然后再向系统输入不带标签的数据。

  图学习:它是如何工作的? 

  在其核心,Expander的平台结合了半监督机器学习和大规模基于图的学习, 通过建立一个多图数据表征,这些数据表征上的节点分别对应于某个物体或者概念以及边,连接着具有相似性的概念。

  图一般包含标签数据(带有已知输出种类或者标签的节点)以及非标签数据(没有标签的节点)。Expander的框架随后执行的是半监督学习,通过在图中传播标签信息,来联合性地标注所有节点。

  说起来容易做起来难。研究者必须要1)在最少的监督下(比如,只用少量的标签数据),进行大规模的高效学习,2)在多模式的数据中进行操作(比如,异构表征或者多源数据)以及3)解决难度较高的预测任务(比如,大型的、复杂的输出空间),涉及到高维数据,这些数据可能会是噪声数据。

  在整个学习进程中,其中一个最要的要素是图以及连接的选择。图有各种各样的大小和形状,能与多种来源进行结合。研究者观察发现,从结合来自多种类表征数据(比如,图像像素、物体种类 和聊天反应信息,例如Allo中的PhotoReply)的信息进行多图学习,会带来很好的效果。Expander 团队的图学习平台可以直接从数据中自动地生成图,这些数据都是基于推断或者已知的数据要素间关系的。数据可以是结构的(比如,推理数据)或者非结构的(比如,从原始数据中提取的稀疏或者密集特征表示)。

  为了理解Expander的系统是如何学习的,可以思考下面的图像例子:

  

  在图中,有两种类型的节点:“灰色”代表非标签数据,同时彩色节点代表的是标签数据。节点数据间的关系通过边进行表示,每一个边的粗细程度代表的是连接的强度。在这一个图表上,我们能明确地表示出半监督学习的难题:预测图表中每一个节点的颜色(红或者蓝)。需要说明的是,图的结构和颜色选择是根据任务作出的。比如,在研究团队最近发表的论文中,研究者开发了一个收件箱智能回复功能,邮件信息就被表示为节点,而颜色则代表着用户回复的语义类型,(比如 对,太好了,很有趣)。

  Expander 图学习框架把这一任务当成一种优化问题进行解决。在最简单的层次,它学习图像中每一个节点的颜色标签,这样,相邻的标签就能基于相互之间连接的强度来分配相似的颜色。一个较为幼稚的办法是尝试一次性全部学完标签分配,这种方法并不能扩展到大型的图上。另一个方法是,通过把标签节点的颜色传递给相邻节点,然后重复这一过程,这一问题可以得到正式的优化。在每一步中,通过观察其相邻的节点颜色,一个非标签的节点可以被分配一个标签。研究者可以通过这个方法升级每一个节点,反复操作,一直到整个图都变成彩色。这一过程在优化相似的难题时非常有效,并且,循环的次序也被转化为一个独特的解决方案。在图传播最后的解决方案看起来像这样:

  实际上,我们使用了复杂的优化函数来定义整个图的结构,其中包含了半监督图学习的额外信息和限制条件,最终导向难度更大的非凸问题。

  为了解决这一挑战,在去年发表的论文“ Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation”(使用流近似的大规模分布式半监督学习)中,研究者描述了一种全新的方法。论文介绍了一种流算法( streaming algorithm),以分布式的方法,处理相邻的节点中传播的信息,这使得在大规模的图中进行工作成为可能。此外,它还解决了另一个实际的问题,特别是,它保证了空间的复杂性或者系统的内存要求保持在一个稳定的状态,不管任务有多难。比如,不管预测标签的数量是2(正如上面的例子 )或者100万或者10亿,整个系统使用的都是相同数量的内存。这让大范围的采用成为可能,比如自然语言理解、机器感知、用户建模,甚至是涉及多模型的学习任务,例如文字、图片和视频的输入。基于图的语言学习能通过剩余词汇发现情感类型(比入, ROTFL的标签是“有趣”,因为这个多次反射的词与“笑”这个词有关)。

  学会幽默的语言图(Language Graph)

  

  基于图的机器学习的一个使用样例是情绪标记(emotion labeling),邮箱智能回复(Smart Reply for Inbox)里也有这项语言理解任务,目标是要将自然语言文本根据细微的情绪分类。首先,一个神经网络被用于一个语料库,学会词嵌入(word embeddings),也就是一个对每个词含义的数学向量表征。然后,用稠密嵌入向量构建一个稀疏图,节点代表单词,连接(边)代表词与词之间的语义关系。用类似的嵌入向量计算出边的强度,忽略掉其中相似度很低的边。

  基于图的机器学习的应用

  Expander 团队的机器学习系统如今被用于超大规模的图(含有几十亿个节点和几万亿条边),进行识别和概念理解,对象包括自然语言、图像、视频和问询(queries),驱动了提醒、问题回答、语言翻译、视觉物体识别、对话理解等应用。

  Allo 发布以后,千千万万用户都体验到了 Expander 团队开发的系统提供的智能消息技术。此外,这种技术不仅仅用于云当中的大规模模型,比如 Android Wear 上周开放的 on-device 智能回复功能,在今后我们还希望将其用于解决互联网规模的问题。

本文转载自:http://it.sohu.com/20161007/n469689782.shtml

共有 人打赏支持
openthings
粉丝 256
博文 918
码字总数 473772
作品 1
东城
架构师
论文笔记之:Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation

Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation   Google 2016.10.06   官方 Blog 链接:https://research.googleblog.com/2016/10/graph-powered-m......

wangxiaocvpr
2016/10/09
0
0
Google大规模图学习(Graph Learning)平台简介

Google大规模图学习(Graph Learning)平台简介 摘自:http://mp.weixin.qq.com/s?biz=MzI3MTA0MTk1MA==&mid=2651987743&idx=1&sn=e586f85e2655f75941b6a92343362491&chksm=f1216beec656e2f8f......

geowangsh
2016/10/07
285
0
Tensorflow核心代码解析之计算图篇其一:计算图结构初探

介绍 当今计算机科学给人对未来最大想象的莫过于人工智能的大规模应用前景。它对于人类文明进步所带来的潜在贡献可以被视为与四大发明、蒸汽机、电力、计算机等人类史标杆性工具具有同等的地...

manofmountain
06/18
0
0
国外程序员整理的机器学习资源大全

 英文原文:awesome-machine-learning   本文汇编了一些机器学习领域的框架、库以及软件(按编程语言排序)。   C++   计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的...

chworld
2015/08/07
0
0
怎么在ext.grid.rowexpander里显示另一张表的数据

我使用的是Extjs 3.3.1 版本,我怎么在ext.grid.rowexpander行扩展里显示跟grid里显示的不是一张表的数据?网上找了好多方法都不行,求助各位大神。 想要实现的功能是在位置 1 显示另一张表的...

ubuntuvim
2015/04/09
891
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++ gflags

###定义参数 gflags主要支持的参数类型包括bool,int32, int64, uint64, double, string等,定义参数通过DEFINE_type宏实现, 该宏的三个参数含义分别为命令行参数名,参数默认值,以及参数的...

SibylY
19分钟前
0
0
intellij IDEA Properties中文unicode转码问题

在IDEA中创建了properties文件,发现默认中文不会自动进行unicode转码。如下 在project settings - File Encoding,在标红的选项上打上勾,确定即可 效果图如下: unicode转码后效果...

muzi1994
19分钟前
0
0
Java IO类库之PipedWriter

一、PipedWriter介绍 PipedWriter是字符管道输出流,继承自Writer,功能与PipedOutputStream类似,通过与PipedReader组合使用实现类似管道的功能,在多线程环境下,一个线程使用PipedWriter...

老韭菜
24分钟前
0
0
精简分页组件(手写)

需要引入CSS(没错就是这4行) .pagelist { text-align: center; color: #666; width: 100%; clear: both; margin: 20px 0; padding-top: 20px }.pagelist a { color: #666; margin: 0 2px;......

AK灬
24分钟前
3
0
29 岁成为阿里巴巴 P8,工作前 5 年完成晋升 3 连跳,他如何做到?

泡泡是我的好朋友。今年 31 岁,毕业后就进了阿里巴巴,工作五年内从 P4 晋升至 P6、P7、P8。 和他很少聊到工作,但总觉得他有很棒的职场心得,应该分享出来,于是有了这次采访。希望对职场新...

Java填坑之路
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部