在實際業務里,在工作中有什麼用得到深度學習的例子么?用到 GPU 了么?

想請教一下知友,在不涉密的前提下,能不能分享一下你們在工作上用到深度學習的例子。你們用深度學習解決了什麼實際問題?為什麼非要用深度神經網路而不是其他的模型?深度神經網路比其他模型效果好很多麼?

我拋磚引玉說一下自己的業務。我們是諮詢公司,作為乙方給客戶解決問題。有時候用深度學習有「噱頭」的效果。具體來說,甲方需要一份市場上潛在的能買甲方產品的user的名單,我們說我們用機器學習幫甲方從數據里找到了這份名單,他們會很高興,但如果我們說用的是深度神經網路,有的甲方會非常高興。

實際上用隨機森林以及xgb和fine tune之後的深度學習的效果差不多,因為畢竟沒有在做圖片和語音。

我聽說在訊飛有很多深度學習的應用,阿里,百度騰訊應該也有不少吧?

請知乎大神點撥點撥我。


圖像、語音、自然語言處理這三個領域,已經被深度學習席捲了。深度學習的性能就是比傳統方法好得多,無可辯駁。

深度學習在這些領域內大放異彩的主要原因,在於圖像、語音、文本數據中都是有 pattern 的,這種 pattern 人腦比較容易識別,但難以明確說出識別的規則。這正是深度學習適合的問題。另外還有一個重要原因就是這些領域有足夠多的數據來訓練神經網路。

而一般的預測問題,可能本身不夠複雜,也可能數據不夠多。面對這些問題,一般是先試驗簡單的、傳統的機器學習模型,當它們明顯表現出瓶頸的時候,再去試深度學習模型。


@孤雲獨去閑 提出的這個問題我很感興趣,也邀請了不少朋友來答。但拋開大部分答主(比如 @王贇 Maigo大佬 )提到的圖像語音自然語言處理以外,其他更加傳統領域深度學習的使用場景是否普遍,希望更多朋友能來回答:)

我也有相同的困惑,因為曾供職於一家金融服務類公司。我們的大量業務和客戶都有兩個特徵:

  • 數據不成熟,很多還是紙質的,電子化還遙遙無期。即使已經是電子化數據,結構性也很差。
  • 客戶不成熟,對傳統的統計模型也存在疑慮,且存在較大的疑慮。

在我們做過的業務中,包括風控、預測欺詐、價格預測、預測交易併購中,數據量都比較有限,極端例子的中只有幾百個數據點。在這種比較尷尬的情況下,我們往往採取的思路是集成學習,甚至是比較複雜的方式,如改進的stacking。

深度學習的有效性來自於分散式表示以及良好的表示學習能力。退而求其次,我們也常常使用「人工的表示學習」,這和孤雲獨去閑提到的用深度學習提取表示特性有異曲同工之妙,只不過一般使用多個無監督學習來集成學習數據的表示。我們馬上要投的一篇論文思路就是「Using unsupervised representation learning to boost supervised prediction」。

一開始想到這種演算法的原因就是因為:在很多傳統行業,數據量太少了。我映像中做過的唯一一個用了LSTM的項目大概是做一個chatbot的後端模型。但項目最終也流產了,因為數據量不夠。

說了這麼多,其實想提出幾個觀點與疑問:

  1. 很多傳統行業似乎還不具備應用深度學習的場景、以及數據成熟度。這不僅出現在中小企業,很多大型企業也有相同的情況。雖然深度學習可以作為不錯的「噱頭」,但對於這類企業的現實意義主要是什麼?
  2. 在這種情況下,集成學習是否是一個較優的選項?是否可以借鑒深度學習的表示學習進一步提升現有集成學習的能力?如果模型提升的代價是進一步犧牲可解釋度與易用性,傳統行業的管理者是否可以接受?
  3. 如果拋開結合領域(如深度學習+圖片識別),但看深度學習的更純粹或者小眾的應用,比如大家津津樂道的在交易中的應用,效果如何?前景怎麼樣?
  4. 最後從實際角度來看,對於一般求職者來說,大部分機器學習相關的崗位更貼近於傳統機器/統計學習,還是深度學習?

拋磚引玉,希望能聽到更多大神的觀點:)


圖像、語音、自然語言處理這三個領域確實是強,肉眼可見的強,尤其是圖像上手可見的效果,拍照購,相似推薦,人臉識別,在線試衣等等,我就不說了,案例太多相對挺成熟的。平時也嘗試著在做一些不是那麼熱門方向的東西:

准實時預測

因為不論是GRU還是CNN對於輸入數據的要求都比較簡單,在CUDA上計算速度又很快,所以我就用來做准實時預測了。

比如,分析一個用戶在平台停留的時間內每一刻的下單或者註冊概率變化,高概率點採取主動促單行為。你看著看著垂憐了很久的switch,突然給你發個對應的品牌券,對我這種意志不堅定的人很容易促單的:

相比傳統的機器學習的feature構造和匯總處理,深度學習特徵構造一般就是用戶+點擊流行為:

而且GPU上我完成一個batch下的用戶概率預測的時間也是遠遠小於傳統計算的。

但是,缺點就是精度不高。一定程度上,感覺這麼去用深度學習是犧牲了用戶的信息換取了實時性,我實測下來,相同的目標下普遍要確實弱5pp左右的auc。

特徵信息變換

我能講的稍微清楚點的,有兩種操作場景:

1.流信息的補充

孤雲獨去閑提到了拿dnn學一波feature,然後扔給普通模型比如隨即森里做分類聚類等等

孤雲獨去閑講的我也在用,而且比傳統方法效果真的少許能提高一些。常規操作來講,比如,流失預估,CTR預估,風險預估這些,通常構造特徵就是近x天,近m周,最大,最小等等,然後交叉特徵一下。

我猜想,針對時序問題,這樣做其實就是把傳統方法中對過去某段時間所有行為整合在一起考慮的行為,改用循環神經網路的流動的state,流動的state會分別根據實際對最終結果的影響,改變單次行為上的權重,避免單次行為對因變數的錯誤影響:

2.特徵向量的新方法

我之前做離散特徵向量化的方法要麼是隨機生成,要麼是word2vec。現在多了蠻多新的生成方法:

如果要生成的對象有時序行為,比如登陸平台的ip向量化問題,我就用GRU或者Lstm取生成ip的對應向量,再考慮譜聚類等去識別團伙了;如果要生成的對象空間上有關聯有結構且同質同權的,比如購物車內的商品向量化,我會用卷積或者MLP。

雖然有時候做出來的效果也沒那麼好,但總比word2vec那種根據樣本頻率最大化Huffman樹路徑概率的方法要能說服一些Boss。

其實,講句良心話,深度學習這東西,我每次用了多多少少都能提升一點auc或者ks,但是每次別人問我為什麼這麼做的時候,我也講不清,然後想找找文章支持一下,發現全都是圖像文本語音方向的,就算找到一篇,也只講怎麼去做,沒講為什麼這麼去做,挺尷尬的。


謝 @阿薩姆 邀請。本人做CV的,現在做CV的用深度學習是幾乎是標配了。下面來講講在我工作當中用到DL的案例,以下不涉及任何演算法或代碼細節,但idea應該是可以分享的吧。

人類模特識別

本人在跨境電商工作,日常要看的基本上都是一大波歐美模特的照片,畫風是這樣的:

(找了好久尺度適中的圖......)

有時候我們要在網站上面打廣告的時候,一張廣告圖是由幾個部分拼起來的,比如左邊大圖要有模特,右邊小圖只要衣服不要模特,那麼就要事先把圖片裡面有沒有人類模特的圖片分類出來。演算法也很簡單,一個VGG16解決,準確率98.75%。有人會問為什麼不用ResNet,因為之前伺服器上只有cpu,用ResNet會比VGG16慢很多(雖然都是很慢),GPU機器的話還是ResNet更快更好。

超解析度

假如在一張圖片里發現一個喜歡的妹子,但是解析度太低怎麼辦?超解析度大法好!其實在電商網站當中,如果你的產品圖是很低解析度的話,相信客戶連看都看不清楚,更不想點進去買吧?所以超分能用於提高產品圖片的解析度,演算法用的是2017CVPR的SRGAN模型,後來自己加入了Wasserstein GAN,訓練更加穩定快速(後來發現有相同想法的人直接發paper占坑了,白白錯失了發頂會paper的機會……)。當然超分是有一定的應用局限的,比如用在png的效果最好,解析度越低,提高的效果(相對)越明顯。當時項目開始的時候已經有GPU機器了,用上了GPU之後速度能提高30倍(從1.5小時一輪變成3分鐘一輪,你說用不用?)。更多細節可參見我的另一個回答:圖像超解析度就業前景如何? - Professor ho的回答 - 知乎

以圖搜圖

作為電商公司當然要向某寶某東們看齊,搞個自家的以圖搜圖引擎啦。不過老外們有個不同於中國人的習慣是,他們買東西不喜歡用以圖搜圖,直接就上去翻,而中國人就比較喜歡這個功能,馬上找到你想要的東西,看來馬爸爸給我們帶來的便利真是大呀~

上圖是之前用的很簡單的VGG16來做的demo,拿來玩玩的。現在演算法方面應用類似FaceNet的Siamese network,文章是這個:Learning global representations for image search 目前已經復現完畢(細節比較複雜),預計將來也應該只用在公司內部使用,現在內部的圖片數量正往億級增長,用來搜索哪些產品我們已經有的,能減少大量的重複開發成本。這些當然也得要有GPU的支持,這個數量級的圖片不是開玩笑的,所以公司最近買了一台新的機器做實驗用:使用超過16G內存的電腦是什麼體驗? - Professor ho的回答 - 知乎

不寫了,調參去了。


如果你不做圖像或者自然語言,我建議你重點學習一下谷歌的widedeep思想,這種框架被大量的應用在傳統領域裡面,基於它的變型模型也是百花齊放。


手淘以圖搜圖。非阿里idst拍立淘團隊的成員來臆測之,就不算泄密了吧。

就是這個小相機入口,身邊朋友很少會用。

這個場景下不用深度學習業務是做不好的。

評價兩種商品是不是同一類產品可以抽象為圖像匹配問題。那這個問題從工程角度來說要涉及兩方面,第一是用什麼特徵表示它;第二是用什麼方法檢索;

題主比較關心第一個問題,我就來聊聊這個問題。

都知道在深度學習之前,SIFT特徵橫行多年。但它僅能應對旋轉,而且是圖片本身的旋轉,對深度方向的旋轉應對能力很差,更別提輕微的形變了。另外,這類描述子關注局部,沒辦法很好的表示一個大的對象。

深度學習則可以對整張圖片產生有區分力的高維度描述。簡潔、表達力很強。

除了表達力,還有另外一個很大的問題,就是如何準確描述目標。

我們平時最愛說的例子連衣裙了。

這兩件連衣裙是同款。我們需要能夠識別主體但不受背景干擾。

那麼自然容易想到fast-rcnn那套思路。那麼同時做目標檢測外加pair-wise的匹配任務。這件事情必須是multi-task的deep learning。還必須得是end-to-end,這樣好吹kpi呀(逃

雖然是同款,但顏色不一樣。在檢索的時候。要能用黑的搜到紅的。這是很難的事情,以至於現在也還做不到很好。

更不用說現在billion scale的商品規模下,想學好參數得有多少,也就deep model可以承受得起。

以上內容純屬臆測,拍立淘他們是不是這麼做的我不知道,別打我,但我覺得非deep不可,非GPU不可,性能所需。

其實吧,還想吹一下自己。前面說的都是特徵怎麼搞,其實最難的是後面的問題,特徵有了怎麼檢索?

淘寶響應速度要求極高,十億*128維向量,1ms內召回1萬商品,準確度要求在95%以上。有項目經驗的就知道這種規模的檢索有多難。

答豬研究這個方向有兩年了,也算蠻累的,好歹出來些成果。最近感覺學術界滿浮躁的,天天一群新人進來都要搞deep。近似最近鄰檢索快成冷門了.......看想了解的人多不多,多的話就找時間專門寫點東西科普吧……


自己提的問題,拋磚引玉自己先答一下:

我也不怕大家笑話了,實話說吧。我自己有點強行用深度學習(簡稱dnn)的意思。舉幾個例子:

1。拿dnn學一波feature,然後扔給普通模型比如隨即森里做分類聚類等等。

2。普通的分類聚類擬合任務,拿keras tensorflow跑包。

樣本數都不到一百萬個,樣本都是什麼人在什麼時間買了什麼產品這樣的時間序列。簡單說就是三列,用戶id,服務時間,服務類型。

目標是在這些用戶中找到潛在客戶給他們賣東西。算是推薦系統吧。

有個傻辦法是拿時間序列做成一個user一行的這種格式,y變數是歷史上買過幾次的量,x變數是一些feature。然後擬合函數,跑各種包。

當然還有用時間序列的辦法了,做得更細緻一點,但最後也是整理成這種x y的格式,跑包。


跳個坑,換種業務場景,比如計算機視覺,自然語言處理。不用強行,主動Follow都覺得時間不夠用,知識儲備不到位。這些領域沒有GPU還怎麼玩兒?此外,似乎GPU與這些領域沒有強關係吧,lgb和xgb都有GPU支持呀,至於加速效果好壞是另一個話題了。技術服務於業務,如果業務領域所需技術的SOTA不需要DNN,何必強求呢?

人臉識別,商品識別等在各大廠的無界零售是必須要去解決的問題,這其中又涉及活體檢測,Cross Age等問題,都是具體要去解決的問題。作為剛跳坑的小白怒答一發。


這種都是和應用場景有關吧,傳統的IT公司尤其是外包,小型電子商務,基本不需要深度學習,甚至不需要機器學習,對於他們而言既沒有數據也沒有人才,也沒有資金預算,機器學習只是錦上添花的玩意兒。金融公司,用的最多的恐怕就是logistic;xgboost,nn都不敢用,更多的是分析,深度學習不存在的。計算機視覺,這個幾乎必須得用尤其是人臉識別這塊,深度學習,GPU基本是標配,精確度畢竟還是需要拿來吹牛的。

話說忽悠投資人還不容易?他也不會來看你代碼吧?就算看你代碼也看不懂吧?所以忽悠他不用怕,哈哈


我是目前在做一個影像分析平台,有一個對上傳的CT圖像進行感興趣的內臟輪廓顯示的功能。其背後就是用深度學習來實現圖像分割,再對分割的圖像進行輪廓提取。


同意 @王贇 Maigo 的說法,工業界的應用主要集中在圖像、視頻、語音外加一點NLP的玩意兒。這個問題下提到互聯網公司的搜圖、人臉識別、翻譯、無人駕駛等等就不說了。除了這些,我覺得圖像語音NLP在傳統行業倒還有不少領域值得用深度學習嘗試,比如Andrew Ng鼓吹的醫療圖像問題,或是製造業殘次品檢測,以及農業養殖業中的動物植物識別等等。我一個師兄就做過用卷積網檢測農場中飛蛾的數量,效果拔群。在我看來這些實際業務中深度學習還是大有可為的。

不過我感覺題主更想問的是『在圖像語音NLP之外的業界領域還有哪些很成功的應用?』。據我所知目前非常少,我沒有見過像深度學習在vision領域中『碾壓式』的成功應用,而且我對此也持悲觀的態度,原因如下:

  1. 卷積網之類(也許)壓根不適用於很多領域數據的pattern

不嚴謹的來說,圖像語音NLP數據的共同特點是『有複雜又well-structed的pattern,但以人類的能力沒法直觀的描述出來』,而卷積網恰恰可以有效的把pattern抽取出來,所以在這些領域效果出色。

比如看到貓時,人類的視覺系統能夠立即識別出它是一隻貓,但又很難解釋自己是怎麼識別出來的:這些像素之間形成了『貓型』的輪廓?三角形的耳朵?身上有毛茸茸的紋路? --- 你知道像素中有well-structed pattern,但由於太複雜了又沒法很好的描述出來,這時卷積網就能派上用場。

但換個領域,比如最常見的CTR prediction --- 僅僅告訴你一個知乎用戶是男性、碼農、在灣區、年齡三十,讓你去預測他會不會點擊北美華人婚介網站的鏈接,一個人類專家在腦子裡做個『線性加權』就可以知道他點擊的概率是比常人高很多的,而且可以很好的解釋出原因。在類似的數據上深度學習也許就沒啥用。

2. 深度學習在業界領域的研究/宣傳有水分,效果也因此被高估了

不少paper / 公司宣稱自己用深度學習在業界xx領域做到了state-of-art。但其中不乏蹭熱點搞PR的:良心點的至少還拿神經網和其他模型ensemble一下,沒良心的拿著兩三層全連接神經網就打腫臉充胖子宣傳自己搞了『深度學習』;又或是東拼西湊fit出了好結果,但說不清是調參數overfit出來的還是其它trick堆出來的。至少據我了解某公司在頂會發過不止一篇用深度學習做xx系統,但實際產品里壓根沒ship。這波PR下來導致很多公司不分青紅皂白的拿著『深度學習』去扛自己的業務,最後發現不work,白白浪費了資源。

3. 深度學習進產品較為困難

一來是延遲性:這點不用多說,實時系統的要求擺在那。不過隨著硬體設施、基礎架構的改善,這點倒是有可能被解決。

二是online training:對於不斷有新數據的在線學習系統或者需要不斷自動retrain的模型,怎麼保證自己的神經網不會一言不合就爆炸?我目前還沒見過特別好的解決方案。

以上是一些偏題的看法,歡迎大佬指正。


我們是諮詢公司,作為乙方給客戶解決問題。有時候用深度學習有「噱頭」的效果。具體來說,甲方需要一份市場上潛在的能買甲方產品的user的名單,我們說我們用機器學習幫甲方從數據里找到了這份名單,他們會很高興,但如果我們說用的是深度神經網路,有的甲方會非常高興。

題主問題的描述很有意思,不過也難免,近些年深度學習的確是太過於火熱了。其實深度學習(或者狹義地稱之為深度神經網路---因樹形演算法也可以做的很深)也是機器學習的其中一部分。

機器學習任務中,尤其是在計算機視覺(CV)語音識別(Speech)自然語言處理(NLP)這3個 Complete-AI Task幾乎是都已經上了深度學習的了。為啥?因為DNN比傳統hand-crafted features表示性能更好啊!有位著名的Prof在Paper里是這樣說的:

At the end of the day, some machine learning projects succeed and some

fail. What makes the difference? Easily the most important factor is the features used.

大數據+GPU計算+深度學習演算法 三者加持的情況下,Deep Learning-based Method刷新了一個又一個的state-of-the-art,並且不需要複雜的 feature engineering(其實都去設計複雜的Networks Architecture了,逃...)。

對於數據挖掘、推薦系統、計算廣告等這些方向,學術界當然也有在用Deep Learning做的。評判一個模型的好壞與適用性,除了刷新當前的state-of-the-art Performance,即俗稱的「性能黨」;還有一個很重要的就是Interpretability,即模型的「可解釋性」。DL Model目前在這一塊還是比較欠缺的,CV這一塊我知道的有很多工作嘗試從可視化的角度去解決可解釋性問題,但離最終的Interpretability還是尚有距離。

此外,CNN也並不夠robust,試想一下,如果某一天無人駕駛汽車上路了,我用adverserial samples(對抗樣本)去攻擊CNN,它識別錯了咋辦?近兩年的CVPR上也有相關的工作在做了~

但終究是學術界,實際業務場景中,正如題主自己所說,可能很多時候別說深度學習,就連機器學習也不需要,寫SQL做一些基礎的descriptive statistical analysis,然後用可視化工具畫畫圖,故事講得圓滿,以最低的成本解決問題就行了。有時候上DL有一個非常大的好處就是公司形象宣傳!!

前陣子@阿里云云棲社區 發布了技術手冊,在阿里很多業務都是用到了Deep CNN和LSTM的。

下載鏈接在這裡:Ali Tech Part2


寫的好像有點跑題...以上內容不一定對,歡迎指出錯誤~

另:先Mark一下......

數據挖掘任務中,若 DNN 比 傳統機器學習方法+特徵工程 效果要好一些些,但是DNN可解釋性較差。請問大家是如何處理Performance和Interpretability之間的權衡的?希望做過的童鞋告知~


我是做輸入法的 。我說一個問題,傳統的輸入法用的語言模型是bi-gram 或者tri-gram,以鏈式乘法來估算整句話的概率,但是這類語言模型遇到新詞或者生僻的搭配的時候就會GG,它的概率會是接近0的或是等於0,一般的傳統方法是引入各類平滑演算法,比如katz之類,但本質上和瞎猜沒啥區別。

而NNLM在估計整句的概率在定義上會比傳統的模型要更優,至於效果上來說需要對數據集的分布進行精心調整,但是NN模型更為重要的問題是難以mobile化,一個效果的很好的語言模型是十分巨大的

Exploring the Limits of Language Modeling中的結果和參數量


生物醫學工程的也來答一個。

深度學習在生醫這裡主要是用於醫學圖像處理,例如fMRI的超解析度、從超聲圖中判斷腫瘤的惡性良性等。此外這兩年DL在手勢識別上也有應用(有助於假肢控制的研究),浙大有一個組已經在這上面發了三四篇文章了。我仔細看過,雖然湊熱度的嫌疑極大(具體理由如果有人感興趣我再說),但將DL用於手勢識別,相比傳統方法的確有一定優勢。


訊飛的語音識別、機器翻譯、人臉識別、OCR全部都用到了深度學習,並且線上都是GPU。


知上得來終覺淺,絕知此事要躬行


nlp不熟 cv是真的很多

例子是商業模型不能例舉 傳統機器學習如果應用在cv上 會需要hardcode描述對象

而深度學習通過多層偏導可以自動收斂到一個模型認為是合理的描述 這個雖然感覺不科學 但是目前來看的確是遠勝傳統cv

訓練中GPU是肯定的,應用中看場景,嵌入式系統也可能使用各種SIMD的組合


不請自來,推薦無疑是一個非常實際的方向,目前深度學習,類似deepFM之類的混合演算法的準確召回確實比之前的GBDT牛逼,之所以現在還沒有完全替代掉,是因為深度學習的速度和訓練速度還比不上之前的淺層模型,但是可用性已經非常高了


深度學習能和各種任務場景結合,很多東西都用的到,看到過各種奇奇怪怪的問題,結合了CNN什麼的解決了。

gpu只是用來算矩陣相乘,向量相加什麼的,能對於每個元素都並行處理,比cpu快很多,不用非得用gpu,就像從北京去上海不一定非要坐飛機高鐵,走著去也行啊。


推薦閱讀:

TAG:人工智慧 | 機器學習 | 深度學習DeepLearning | 數據科學 | 商業數據分析 |