搜狗大数据总监、Polarr 联合创始人关于深度学习的分享交流

2017-03-10 10:43

架构师小组交流会:每期选择一个时下最热门的技术话题进行实践经验分享。

邀请到了 Polarr 联合创始人宫恩浩、搜狗大数据总监高君、七牛云 AI 实验室负责人彭�,对深度学习框架选型、未来趋势展开了交流。

自由交流

Polarr 宫恩浩

我是宫恩浩,现在在斯坦福在读,主要做深度学习研究,特别是医学影像相关的研究。同时也在一家创业公司,国内叫泼辣修图,在美国是 Polarr,做图片的大数据,有云端的,也有手机端的,PC 端的。我们的 App 收集数据,建立优化的算法,我们在云端提供图片整理、图片选择、图片信息的识别,把识别的模型通过压缩手段,把整个深度学习放在手机的 App,实现图片裁定、识别、选择、渲染,国内可能叫霹雳相册吧。我主要负责所有的 AI 的部分。


搜狗高君

我是高君, 目前在搜狗负责精准广告的算法研究和大数据相关的技术研发工作。搜狗从用户端的产品来讲,有两个产品与深度学习有较强关系,一个是语音识别,应用在输入法,用于语音输入转文本,另一个是图像搜索。在我的团队中,深度学习主要是用在广告领域中,如 CTR 预估、广告检索,广告相关性的评估上。未来,我们希望在 NLU 上面做一些有价值的工作,也希望在网络压缩方向取得一些成绩。


七牛彭�

我是七牛云 AI 实验室的负责人彭�,七牛是一个以云存储起家的公司,在我们云平台上面有广泛的图像、视频、音频的数据,富媒体客户非常多,所以我们 AI 实验室的主要职责是对大量的富媒体数据去做分析,并做一些内容审核,识别等相关领域的应用,以服务我们平台上面的客户。


话题交流

Q

关于网络压缩方面的分享一下?

Polarr 宫恩浩:网络压缩有几部分。


一部分首先找一个最适合的架构,这部分我个人觉得还得根据具体的应用、性能要求来定。


第二个部分是网络压缩,在不改变模型效果前提下尽量减少模型参数。我一个同学在做这方面工作叫 Deep Compression,然后我也和这个同学一起参与一些新的深度学习算法研究,基于在 Deep Compression 来进一步优化模型。最近一些研究发现一个深度模型可以压缩甚至压缩到几十倍几百倍,那说明整个有很大的冗余性,基于这个我们能不能选择一些适当的模型 trade off,在保持模型体积基础上性能比原来显著提升,比如它本身网络是 Dense Network,压缩到 Sparse Network,然后再长成 Dense  Network 可以一步步进行优化。可以想像这个 Network 一会胖,一会瘦,最终达到一个体积和性能更好的状态,我个人主要在做的是这个方法的统计分析。


第三个部分是模型编码。我们公司有在做想把图像识别的 Network 放在手机上,那么首先基于模型压缩。具体实现的方法是:每步迭代的时候,一部分把小的部分变成零,然后不断迭代优化,最终模型还有一些优化,会小很多。然后同时还可以在手机上 Network 优化编码,我实验的时候权重也可以从原来的 32 位 float,变成 16 位,就是少了一半,或者是变成 8 位的话做了 encoding 就会小很多,基于这些(优化模型结构,阈值让模型稀疏,编码来减少存储)就可以不断进行压缩。但是主要还是看需求,比如在云端的话可能就不一定非要压特别深,但我们迁往移动端就需要压得比较大,要不可能 App 就太大,同时你压缩完了,还得做解压的工作,需要花费一定的时间。

搜狗高君:今年看到有 paper 在说 teach student 这种网络,然后我有这么一个假设,因为广告领域涉及到的特征空间非常大,用 teach student 的这种思路,能否把一个千万量级以上的网络,想办法让它降到百万量级,同时让它的 performance 还是能维持在不错的性能。

Polarr 宫恩浩:我说一下,首先我觉得并不是模型越小它就越快,这可能跟架构有关。我觉得可以拿一些简单的例子试一下。可以先看一下别人已经被验证过更小更快的模型。看一下基于那个做会不会合理,是否能达到你的需求。然后不行的话,牺牲一些精度,还得看你的具体精度各方面性能大概多少可以用。

Q

宫博士你们现在是做模型压缩,主要是应用在手机上吧。那压缩了以后,在一定的精准度情况下,你的运算能耗能下降吗?

Polarr 宫恩浩:运算能耗的话,如果你直接用它的 Framework 的话,其实是一样的。但是你可以再 hack 一些东西他就能提高。比如可以用低精度的乘法。


我觉得 iOS 的 Metal 很好。比如 AlexNet 大概能手机上,能 30 到 42 fps,然后 inception 模型,大概是 10 fps。同时他们出一些刚刚优化,所以我觉得未来移动端的深度学习,会有很多的公司用移动端解决问题,很有前景。

Q

你们是用的是哪个 framework?

Polarr 宫恩浩:其实用挺多的,iOS 上肯定用它的 Metal Framework。然后其他的就是后端,很多都会去用,Caffe,Tensorflow 都有过一些接触。

Q

搜狗的广告推荐是以推荐结构化数据为主,还是以推荐非结构化数据为主?

搜狗高君:两种都有,有搜索类的广告问题,还有展示类的广告问题,对于搜索广告来讲,它是有一个明确的查询词,你可以理解为是一个结构化。假设把文本理解为结构化,那么对于展示类的广告就很复杂了,为了提高线上的 CTR,你需要明确用户的兴趣,那么处理用户兴趣的过程中,它的数据差异非常大,你肯定会用到搜索,但是你也会用到它站内的一些浏览的行为,比方说我们拿到客户站内所有的数据,它整个数据的来源很复杂。所以对于展示类广告来讲,可以认为所有的处理的数据基本都是异构的,可以理解为是个非结构化的问题。

Q

广告领域,深度学习的应用是什么样的呢?

搜狗高君:其实这个领域里边的工作跟图像差异蛮大的,很大的原因在于学术界是不关注广告的。其中还一个很重要的原因是广告数据也没有那么多,那么很难看到有一些 paper,会专门关注于广告领域里边的深度学习的应用,所以业内的做法都在摸着石头过河。我这边的情况来讲,深度学习,至少在排序问题,会比我们现有的策略基础至少高 10 个点。深度学习,在广告领域,百度用的相对早一点。现在阿里发展很快,在商品推荐领域有不少应用。所以从应用的角度来讲,我感觉是有收益,但是投入跟收益目前不成正比。


在广告领域里边,我们看到的就是 GPU 机器在加速比没有呈现过优势,可能是由于我们在广告领域,不像图像领域会有大量的 CNN。在广告领域,我小范围的比过一些加速比的问题,GPU 的机器没有优势,所以我一直心里边有一个问题,到底为什么在图像和语音,大家都会考虑用 GPU 的机器,难道是由于卷积网络的原因吗?就完全不考虑 CPU 的任何的问题。

主持人:最核心的是里面的这些函数,这些解方程,大量的矩阵计算,所以说矩阵计算 CPU 肯定是没有优势的,GPU 因为可以同时多个核算一个数据,所以它的优势很明显。所以在图像语音,包括 NLP 处理,GPU 优势是很明显的,基本上 CPU 的计算贡献非常小,然后像广告很多不是矩阵计算,所以导致加速比不高是很正常的事情,可能还没有 CPU 运算的快。

七牛彭�:其实我这边也有用过 CPU 跑过一些测试的。之前在有客户也用过我们的鉴黄系统,一开始他们说采购不了 GPU 机器,我就用 CPU 给他们测了一轮,他那个效率就很低,大概单个 GPU 和 CPU 比的话,就 20 倍了。


搜狗高君:我还有一个小问题,不知道大家在多机并行做深度学习会处理到多大的集群问题。至少我们在做一些多机并行的时候,是从 Tensor 迁到了 MXNet 上,然后我们发现 Tensor 的效率似乎有点问题,我不知道业内在多机多卡这件事上,有没有更好的,能有效地提升加速的问题。宫博士,在美国那边,在并行问题上,你了解到有没有一些新的进展?


Polarr 宫恩浩:我之前有看到一个基于 Spark 的在 CPU 集群上的深度学习 caffe franework 变种,但后来没太关注,我觉得有可能是可行的,Spark 在数据处理上用的比较多一点。但是我个人暂时没有涉及到多机多卡。但我觉得既然 Amazon 那么推 mxnet,他们肯定会推出来更好的多机多卡的东西。


七牛彭�:之前有去调研过多机多卡,包括 Tensorflow、Caffe。Tensorflow 它本身并没有提供好的 paramter server 设计。框架提供你根据应用情况更好的去设计参数服务器。倒是觉得 Caffe poseidon 提供了一好 Paramter server 的设计,包括它矩阵同步的时候,怎么去传输,把矩阵就是做变换变小,能够更高效的去做同步。


有没有觉得用 Tensorflow 训练的时候,比 MXNet 和 Caffe 慢很多,有没有碰到过这样的问题?


搜狗高君:遇到过,而且在多机上面差距非常大,所以我们还把传统里边一部分,涉及到多级并行策略的做了一小部分修改,改的地方不多,但是在 CPU 的基础上,我们当时看了一下,效果还不错。


七牛彭�:有没有人用过 Torch,因为我听一些朋友说 Torch 在跑同样的数据集和网络情况下,和 Caffe 比,收敛率和准确率都要好一点,可能是他在底层算法上有一些 tricky 的地方。


Polarr 宫恩浩:我之前做 DSD 研究,就用了 Torch,是基于 resnet 的 Torch。对 Torch 的感觉,首先是太麻烦了,因为用的人太少了,有什么问题也不太好问。但是他有一些好处,比如说我想改一些 regularization 和迭代过程中修改 weights,在 Torch上改,它就相对方便很多,因为它很多底层的操作更 expose 一些,比在 Caffe 改更方便一些。比如我们想每一步做一个调整,和获得最新的调整,我们就可以通过 Torch。相对来说和 Python 类似,是比较好实现的,这是一个感受。

Q

大家怎么看深度学习在应用领域的发展?

七牛彭�:内容的审核,就比方说鉴黄,就是鉴别黄色视频这种,大量简化了鉴黄师的工作。有一些内容标签,特别是对社交网站,我们会给社交网站,直播,短视频,打一些标签,帮助客户理解图像视频的内容。


搜狗高君:我问个小问题,您刚才有提到有为社交网站去做一些工作,是做一些视频理解的方向的一些东西吗?


七牛彭�:举个例子,根据客户的需求,我们做了一个人脸检测,审核上传的照片到底有没有头像。如果他上传的照片里一个头像都没有,那这个用户其实是一个 bad user。在比如,我们把某个社交网站的图片收集起来,实际上这些图片是杂乱无章的,那么我们做一个应用,帮所有的图片打上标签,还包括做了人脸的聚类、场景的识别,社交客户就可以根据我们的标签应用做相册归类,这样就可以做一些数据分析,分析网站上每个用户的自拍的数量等。就是从图像方面做一些人群分析。


搜狗高君:我今年听过的一个比较有意思的深度学习应用,就是应用在视频推荐,传统的视频推荐使用文本去处理的。快手里是很少文字信息的,完全是用户上传视频,所以他们今年用了深度学习,去理解视频的内容,然后再做推荐,也做的蛮有意思的。


七牛彭�:我觉得这块就相当于是帮客户的一些非结构化的一些数据,打上标签。然后打上标签以后,其实能做的事情就非常多,就可以做分类、搜索、推荐,能做的事情就很多,我甚至可以对每一个切片,比方说每 10 秒钟的一个视频的切片打标,然后你就能做很多事情了。比方说新闻片的剪辑,就是对新闻片的每个地方,它会去打一些标签。比方说我这一段新闻,我有我的主持人出现,然后他会去检测下面的主题的那个文字,把文字在 OCR 出来,他就会把那些新闻一段一段的打上标签,这样能够方便做剪辑、后期处理等。


搜狗高君:七牛的 AI 是主要是做 to B 服务,就是帮助一些企业去解决他们内部的需求,用机器学习处理问题吗?


七牛彭�:我们最开始是做鉴黄的内容审核系统,后面才去做各种标签系统,和定制化识别应用等。


搜狗高君:七牛 AI 的这种模式下边,你们会把这种商业模式,当做一个长期的商业模式去运作吗,因为我在北京接触过一些公司,甚至是大公司,比如说招行这个量级的公司,我目前还没有看到很强的付费能力,他们内部很难提出这种需要用机器学习的方法去解决问题,他们也很难形成一个估值,就是估价。我一直对这件事挺好奇,这种模式真的是可以做出一个真正的盈利的模式吗?


七牛彭�:要看客户的群体的,像鉴黄是帮客户节省了很多成本,原来他们需要很多基础的人力,人力成本非常高的,所以它其实是很乐意做这个事情,而且鉴黄师这个事情特别难做,他都要熟练工,然后那种人他又干个半年一年他就不干了,其实用工成本就很高。还有其他应用,我们都致力于大量节省人力成本的应用。

Q

七牛是否有一些 AI 方面的战略?

七牛彭�:我们后期主要会在视频方向做一些文章,包括像视频分析之类的,包括一些视频通用检测的一些事情,我们会致力于解决我们平台上客户的实际问题来投入这方面的研究,主要是视频分析领域,因为我们存储上面视频非常多,视频的细粒度检测也是其中的一个重点方向。

Q

大家对深度学习有何展望?

搜狗高君:我问一个小的开放性的问题,由于深度学习出来以后,亚马逊做了 echo 的那件事情。会不会在五年以后,真的会出现一个像钢铁侠里的家庭秘书一样,就像原来苹果手机把手机全搞了一遍,会不会五年以后也出现这样一件事情?大家是怎么看这件事儿。


亚马逊的 echo 现在提供了非常充分的 API,将家庭的一些设备等等,或者说你一些App 上的功能做对接。那么我自己就是在想,如果未来真是有这样一种趋势的话,那很有可能就会变成家庭必备的设备了。那如果这种场景下,它可以衍生出很多服务,比如说它可以对接摄像头,它本身也有语音,它可以变成无所不能的事。就是我们现在可能做的所有的这个事,都能被它给干掉。因为它能完全改变生活,所以我一直在想这件事会不会发生。

主持人:我觉得这个事情,如果只是一个智能家居,我觉得应该可以。如果你是特别极客,在家里放一些灯,或者机器人在家里,我觉得没有问题。但是很多人可能对隐私保护比较在意,他不一定会乐意放机器人在家里面。这个问题,我觉得小范围推应该没有问题,大范围我觉得还是会有问题。

Polarr 宫恩浩:我觉得 echo 最近比较火,但是我觉得以后每个人手机都可以有这种服务吧,其实就是更直接一些,而现在好像有很多 startup 搞个人助理,他们主打的想法是变成 AI 的助理,比如说帮我叫个车,就不用麻烦再自己打车了,手机助理可以和互联网服务通过 AI 连接。我觉得这都是不久将来可以实现。

搜狗高君:在美国那边做这个方向创业的公司多吗?

Polarr 宫恩浩:最近就看见过一些,包括国内,我之前有同学回国做个人助理,最终肯定是想做,就是语音识别的,就是人工智能,现在可能就一开始都是人手人工实现服务,我觉得还是一个刚开始的方向吧,都想往 AI 上做。

搜狗高君:记得国内也有类似的团队,跟亚马逊 echo 很像。甚至有做车载的后视镜的,好像也在往这个方向打。


我是平常用微软的小冰,有时候会用它来调一些程序,做一点小东西。

主持人:个人习惯吧,从普通大众来说,有多少人会用这些东西,我觉得可能用的也不多。

Polarr 宫恩浩:我觉得主要是有几点问题,这就是识别准确率,另外是说他就和其他的,比如在微信里给发啥,他无法实现这个功能,比如说着目前是很计费一个东西。

主持人:我觉得聊天机器人大家可以探讨一下,现在觉得还没有一个特别好的应用,算法上可能还没有特别成熟。

搜狗高君:之前有朋友跟我说过聊天机器人,他跟我提到语料是一个非常麻烦的事儿,我不知道你们那边怎么处理的。

主持人:最核心的就是知识图谱的构建。在聊天机器人上,技术上不是问题,其实就是生产资料的问题,就是你怎样去构建专业领域的聊天知识图谱,这是目前聊天机器人做的好不好的差异化。怎么样去跟行业深度应用,这是一个未来的趋势。技术是没有门槛的,随便几个人,可以创建一家机器人聊天公司。

搜狗高君:如果做一个垂直领域的自动问答,有一个领域级的知识库,可能对这些问题的解决帮助会很大。那比如说做小冰这种很宽泛的,我一直很好奇有个问题,比如说像电影和电视剧里边有大量的对白,那么在这个场景里边真的用这种对白有没有价值能帮助这个聊天机器人的算法会变得更好?如果只是从这种 QA 的角度来讲,要搜集这种配对关系,这个耗费的人力非常大的。但有的时候聊天机器人可能只是想让大家感觉到它像一个人。所以这样为什么不能从电视剧和电影里边去拿到大量的对白。

七牛彭�:我觉得其实客服机器人是相对好做的,反而把它做得像人,我觉得是比较难。我之前就接触到一个例子,是让机器人去学习大家平时的聊天内容。比方说“我生病了,我今天不舒服”,然后去做人工去打标,比方说 5 个回答,它这里面就有一个回答就是“怎么了”。结果它搞了好几组人打标,选“怎么了”的人最多,其实“怎么了”这种说法你在任何场景都是通用的,这个机器人它什么都给你回怎么了。实际上,它还是没有到融汇上下文,能够理解所有东西的地步。

Q

大家可以探索一些新的领域。

Polarr 宫恩浩:除了公司这边,我个人科研主要做医学影像,算比较新的一些应用,比如说用深度学习来帮助医生做一些诊断,或者看到一些人看不到的诊断,就是其提供图片的质量,其实就是跟凸显相关,同时我觉得 NLP 也可以用在这种就是医学诊断方面,最近好像有些人来用就用各种这种非结构化的数据来预测,这就是说我个人比较感兴趣,可能在做一些比较小的尝试。

搜狗高君:我读博期间的实验室是一个 cv 的实验室,我很多的师兄师弟在做一些图像相关的创业。刚才宫博士提到的医学影像是我目前在关注的一件事情,确实很感兴趣,因为国内目前也有几个小的创业公司,比如说 deep care,然后他们也貌似在做类似的工作,好像好多人在学的 IBM 那个 Watson,好像是那个方法,国内有这样一批的公司正在做,还有另外一批公司确实有在用 NLP 的方法在做病症判断和分诊的问题,医学上这两个方向。我感觉现在创业公司比较多,但是目前在制药这件事上我没有听到,所以我平常在广告这件事完了以后,关注的最多的就是医学影像,我会找这行的师兄师弟们聊聊天,听听他们的一些想法,因为我觉得这件事似乎商业价值蛮大的。

七牛彭�:这种项目一般都非常大,对于这种,其实是解决一些非常通用性的问题,你只要解决一个科室的一些,比方说医学影像,那其实就解决了这个非常通用的问题。

搜狗高君:不过我目前不看好国内做这件事情,因为我的一个基本判断是,你想让医院把正儿八经有用的数据拎出来就不太靠谱,因为他们跟我说过这么一件事儿,他们拿到过几万份的病例,然后就是相关的数据,删完了以后,大概能用的数据是千条,我当时的感受,就是这个行业别说用深度学习了,你拿个逻辑回归都搞不起来,数据量太小。国内其实很难有这么大的时间,能让你搞这个,所以可能在美国很少做,但我觉得国内应该长期会有一个机会。

Polarr 宫恩浩:国内其实这种病例还是多,主要是医院和学校也可以合作,比如清华就有很多这方面资源,将来如果再想做这事的话,就是从每一个病人开始做起,就现在国内基本上一周多的病人,就跟美国一个月一年的病人的数目差不多那种感觉。

七牛彭�:对,像清华浙大交大这种医学院研究院,有很多附属医院,数据还是非常多。刚才宫博士也说,是给到某些大学,而大学里面这些影像中心可以流出去,所以这一块其实有很多机会的。问题倒是以哪些病为突破口,这个倒是可以再探索。

Polarr 宫恩浩:最近基于 CNN 的 segmentation 发展有一定进展,就可以做一些很多医疗方面的应用。 

搜狗高君:但是有一点像医学影像,即使就目前来看,就算能拿到很好的数据,它也不太可能变成一个主要的手段吧?我是这么想,毕竟它是有错误率的,如果让一个机器去做主要建议的话,一旦出了事故会比较麻烦,我是这样感觉的。所以我觉得这种工具在未来,也仅仅是给医生做一个参考的作用。我不知道大家会对这件事有更大的期待吗?

Polarr 宫恩浩:这些医学伦理和管理方面问题,主要是你不管做的再好,目前你不可能一个机器来给你做这做那,都是最后签字是有人来负责,但是对于医生来说,比如他需要看很多层的图片,很多个不同的层的片,那如果能告诉他,你就看这一层,就是主要的一层,这种减少他的工作量,从实质上来说,非常非常好。前几天我跟一个医学院的老师聊这事,他觉得就需要这方面的东西。