业界现在有哪些比较成熟的基于深度学习(deep learning)的应用?

2016年9月20日 | By News | Filed in: 未分类.

Source: http://www.zhihu.com/question/30237124/answer/121109620?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title

说一下我了解到的一些情况吧。
1. 图像
这个是Deep Learning的经典强势应用领域了,似乎不需要太多介绍。
相关的完整产品应用已经相当之多了,随便举几个例子:
Face++/Sensetime的人脸识别
Google的街景识别
Google/Baidu的OCR翻译识别
主流电商网站的“以图搜图”
深圳码隆科技[1]的服装时尚搭配
等等。

2. 语音
这个也是Deep Learning的强势领域,相关的产品应用也很多了,举几个例子:
科大讯飞的语音平台
阿里/百度的语音识别平台(比如应用在客服场景)
思必驰/云知声这样的start-up推出的语音输入法
出门问问
等等。

3. 文本
这个一直是这两年学术界和工业界的关注热点。也能看到一些use case(不像语音和图像那样跟传统方法引比可以获得巨大的提升,但也会有一定margin的收益),比如
广告CTR预估(百度、京东[2]和Google[4]都已经应用到线上,也不难找到相关的公开作法资料,前不久携程组织的技术meetup上,搜狗无线广告的同学也有一个相关的技术分享[5]比较实在)
广告的召回环节(CIKM16上Yahoo!的技术团队有一篇相关paper[3]里介绍了他们的作法,大抵是基于自已开发的分布式版本的word2vec,对query和广告进行embedding建模,用于改善broad match的质量,跟论文作者之一确认这篇论文的工作已经在production cluster上运行有两个Q了)
搜索相关性语义层面改善(WSDM15上百度有一篇tutorial[6]提到了一些具体的作法,我了解到的360和阿里也在尝试,作法跟百度相似,都是基于微软的DSSM的变种,不过提升并没有百度claim的那么高)。与广告作法有所区分的是,搜索相关性目前我还没有了解到端到端基于Deep Learning,而是由DL生成若干维特征,再使用shallow model根据人工标注数据进行re-train,而广告则已经可以做到基本端到端的训练了。造成这种区别的关键原因还是业务优化目标的差异性。
机器翻译(这个是被业界期望相当高的一个应用领域,我二手了解到的信息是Google在准备全面切换到DL-based的机器翻译系统,百度也在推进类似的事情,阿里的机器翻译因为面向的领域比较特殊,节奏上不会那么激进。去年ACL会议上,大家对DL-based机器翻译所担心的主要问题(可解释性/可干预性)已经随着这一年来的技术进步有了很大的改善,随着技术的演化进步,我个人感觉机器翻译这样的复杂建模场景还是非常有希望被DL主导。

回到这个问题上,我想问这个问题的人,以及关注的人,是期望通过了解到工业界有哪些成熟的应用case,好供自己在实际工作中借鉴参考。我也想沿着这个主题说一下自己的看法。

如果是图像和语音的应用场景,我想没有什么好犹豫的,这是Deep Learning的经典强势场景,而且有大量的成熟的model资源可以复用,再加上这一年来DL平台技术的进步,使用门槛已经低了很多。一个背景稍好的应届master、phd,稍加coach,也就可以跑起一个DL的应用流程了。不过,引用某位同学的话“有很多人可以跑DL model,但只是很少人可以去自己设计新的DL model”,所以工具的便利性减少了试错的门槛,但是也要警惕不要因此就认为现有的DL model真就是一个”turn-key” solution,拿来就准能解决问题了(说这个是因为最近看到一些距离一线已经很远的CEO们在claim DL的入门门槛之低让他自己都可以掌握,于是开始延伸出一系列演绎有感)

至于文本类的应用场景,我的建议还是要谨慎一些。在资源有余量的情况下,可以投入尝试,因为复杂网络确实可以提供shallow网络所没有的数据拟合建模能力,当然这会对数据量以及算力资源提出比较高的要求。否则,先从传统的shallow model+feature engineering做起,会更具ROI一些。

具体到应用的时候,除了模型训练以外,也不可忽略的是线上的布署成本和可解释性。毕竟DL模型的尺寸以及计算复杂性是显著高于shallow model的,不过这一两年来,关于模型压缩,学术界和工业界也有了不少的探索和进展,比如TensorFlow里的8-bit quantization[10],ICLR16里的best paper之一Deep Compression[7],以及DeepScale和Stanford合作的SqueezeNet[8]以及其他一些研究工作[9]都为解决DL模型的线上serving问题提供了非常好的参考借鉴。再有兴趣的,还可以关注一下embedding-vision[11]上的一些资料,因为嵌入式领域是对模型的尺寸、功耗、计算量最为敏感的了。至于可解释性,我的接触范围内能够看到一些相关的工作(比如香港中文大学的王晓刚做过一些相关的有趣工作[12][13]以及其他人做过的一些NN generation&interpretation[14][15][16][17]的工作—-interpretation和generation在我看来往往是一体两面”What I cannot create, I do not understand”),但个人感觉,这些工作给人的感觉是很interesting,但距离工业界所期望的可解释性还有一定的距离。所以在可解释性要求很高的应用场景,要么是将DL以feature的方式融合到shallow model里,要么是需要自己花费相当多的精力去做可解释性所需的r&d工作。

References:
[1]. 码隆科技 – Malong Tech
[2]. 包勇军. 京东电商广告和推荐系统的机器学习系统实践. 2016年第七届中国数据库技术大会.
[3]. Erik Ordentlich. Network–Efficient Distributed Word2vec Training System for Large Vocabularies. CIKM, 2016.
[4]. Jeff Dean. Distributed Machine Learning and Matrix Computations. NIPS workshop, 2014.
[5]. 舒鹏. 深度学习在搜狗无线索广告中的应用. 携程深度学习技术Meetup, 2016.
[6]. 朱凯华. Baidu Search: Challenges we face, Experiences we learned. WSDM, 2015.
[7]. Song Han. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding. ICLR16.
[8]. Forrest N. Iandola. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size. Arxiv, 2016.
[9]. Song Han. Learning both Weights and Connections for Efficient Neural Networks. Arxiv, 2015.
[10]. How to Quantize Neural Networks with TensorFlow
[11]. Embedded Vision Alliance
[12]. Xiaogang Wang. Sparsifying Neural Network Connections for Face Recognition. CVPR, 2016.
[13]. Xiaogang Wang. Deeply learned face representations are sparse, selective, and robust. CVPR, 2015.
[14]. Aravindh Mahendran. Understanding Deep Image Representations by Inverting Them. Arxiv, 2015.
[15]. Jiwei Li. Visualizing and Understanding Neural Models in NLP. Arxiv, 2015.
[16]. Anh Nguyen. Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images. CVPR, 2015.
[17]. Harvard NLP. Visual Analysis of Hidden State Dynamics in Recurrent Neural Networks. Arxiv, 2016.

来源:知乎 www.zhihu.com

作者:杨军

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

此问题还有 8 个回答,查看全部。
延伸阅读:
机器学习有很多关于核函数的说法,核函数的定义和作用是什么?

深度学习目前主要有哪些研究方向?


Comments are closed here.