當前位置:
首頁 > 科技 > 機器學習技術如何推動工業界發展?看完你就知道了

機器學習技術如何推動工業界發展?看完你就知道了

第一時間獲取技術乾貨

我們都知道隨著內容和數據的爆炸,如何找到用戶真正喜歡的內容,已經成為各大平台的核心要素。本次分享將從機器學習特別是深度學習技術在騰訊內部多年實戰運營經驗出發,以推薦場景為切入點,介紹一下機器學習技術在工業界大數據場景的普適化、普及化進程的推動。

深度學習和人工智慧是當下非常熱的一個概念,甚至經常出現在娛樂板塊。但對工業界和企業界來說,我們更希望讓它真正產生價值,解決我們的實際問題。

我大概會從這幾個方面進行闡述,結合推薦場景,我們要知道大數據深度學習技術的價值,首先是理解推薦,它到底需要什麼,碰到了什麼問題和困難;第二是需要理解深度,對大數據場景而言,僅僅就是把網路深度加深嗎,它有什麼優勢,能夠解決什麼問題,所以我們把這個理解之後,才能更好的讓深度學習為推薦服務;在這個過程中,我會同時介紹一下我們自己的一些技術實踐,具體下來是兩個技術產品神盾推薦系統和DeepR深度學習框架,最後再做個小結。


理解推薦

首先我們理解一下什麼是推薦,大家知道當千人千面的需求碰到海量信息的時候,推薦就產生了。從一般的視角來看,學術通常會把這個問題轉化成評分的問題,即如何評估一個用戶在一個場景下對一個物品的喜好(打分)程度,所以大部分對推薦的理解是圍繞著如何評分去展開。

怎麼去做評分?

一般來說有兩種思路,第一種思路是協同過濾的思想解決推薦問題,通過某個維度,比如一些相似的人群或者物品,找到用戶的傾向性,然後衡量傾向的程度,這種思想在推薦里有非常多的演算法。

第二種思路是在機器學習框架下解決推薦問題,因為在互聯網裡有大量的顯式反饋和隱式反饋。機器學習方法通常會用這些反饋近似用戶的期望,並設法找到一個合適的function去擬合這個期望,要麼求均值,要麼求方差,這是現在的做法。

在我們工業界來看,推薦是否僅僅就是解決評分的問題。

首先學術界經常會把推薦看成是一個評論矩陣去解決它,實際上在真實的場景下,這個矩陣是不存在的,或者說這個矩陣是一個開集。從商業上來講,我更喜歡從類似計算廣告的角度去看推薦問題,如果我們把推薦看成市場的話,會有很多參與者,而每個參與者的訴求是不一樣的,甚至經常是矛盾的,所以工業界的推薦是要做一個Best Match,這個match不是指技術上的檢索匹配,而是指訴求的match。

訴求是一個比較虛的概念,那麼我們如何去衡量和落地這個訴求?

我們一般用目標驅動這個訴求,我們可以把這個訴求拆成很多小的目標,從這個角度看,推薦問題決不是一個簡單的評分問題,所以他會考慮和均衡很多因素。

為了達到這個目的的話,僅僅做一個打分器是遠遠不夠的,它需要一個整體的體系去支撐。經過這麼多年的發展,工業界基本上都會採用Offline-Nearline-Online的架構,實踐證明也比較有效。

這套架構在騰訊內部的一個具體實踐,就是神盾推薦系統,目前已經形成了比較完備的體系,包括經過實際驗證的很多有效的演算法庫。

神盾推薦系統目前支撐了大量的騰訊內部和外部的推薦場景,單日調用峰值達到數百億次,形成了豐富的生態,也取得了比較好的效果。我們也希望能夠讓神盾推薦系統在雲市場上透出更多的能力,更多的支持到B類用戶。


從Recommendation到Deep Recommendation

現在我們再來理解一下深度的問題,大數據的深度和CV或者NLP的深度是否是一個意思?現在講深度學習,如果不搞個網路,把層數堆上去,就不叫深度。但對大數據,比如推薦來說,深度到底指的是什麼,所以我們需要理解一下這個深度。

從我的觀點來看,深度主要兩層意思,第一個是這個深度相較於傳統的模型,對這個市場,包括用戶、內容、環境等理解的更深,更本質性的東西,更多是往語義空間的一種映射;第二個是需要能夠切實幫助我們解決大數據裡面碰到的一些比較重大而難以解決的問題,在這個地方,我列了大數據的三個非常典型的問題,這三個問題是現在一直都沒有解決好的問題。包括複雜數據形態的問題,個性化精細學習的問題,數據分布動態變化的問題,比如大數據裡面的一個重要特點就是,它是一個動態的過程,它會不停地變化,我們搞大數據的非常頭疼的一個問題就是變數漂移和概念漂移,在線下訓練,模型都很好,放在線上效果就不太好,其中的一個重要原因是數據的分布在不停地遷移。

隨著人工智慧技術的發展,特別是深度學習、強化學習的不斷發展,這三大問題不能說現在已經解決的多麼好,但至少已經提供比較好的思路和願景,讓我們越來越多的看到希望,有很多解決途徑去解決這些問題。我現在大概從感知、學習和決策,就是人工智慧的三大優勢方面大概講一下我們應用的一些實例。

首先感知方面,對推薦來說是非常有價值的一個應用。它是把兩個傳統模型看來不相關的兩個概念映射到同一個空間,使得語義上比較近的概念在空間上的距離比較近,比如特朗普或者奧巴馬,它是兩個完全不同的字元串,但映射以後他們可能靠的比較近,因為他們都是美國總統,而且是表現比較糟糕的美國總統。 當然這個語義可以和場景、業務相關。

這是我們關於數據表徵方面在應用寶推薦上的一個應用,僅僅通過用戶行為學習,就能把一些相同類型的app聚合在一起,提升了推薦的效果。

講到學習,學習實際上就是如何找到一個合適的function,讓它能很好的去擬合我們的數據和目標,這是一個非常重要的環節。整體來說,為什麼深度學習或者大規模的神經網路是比較有優勢的?首先大規模的神經網路實際上能夠把VC維做的非常高,因為我們找function的過程就像尋寶的過程,我們在池塘裡面尋寶和到大海裡面去尋寶,肯定在大海里找到寶藏的概率更大。大規模神經網路把VC維提上來之後,我們有更加機會找到我們最優的function。同時它的缺點是海域太大了,所以整個方差特別大。所以在大數據裡面在應用深度神經網路的時候有一個重點,就是我怎麼通過加入約束條件和設計網路結構限制好這個方差;另一方面,相較於kernel,boosting這樣的方法,NN的方法更加民主化,可以用更低的門檻通過搭積木的方式尋找function。

這是我們用到的其中一個比較有效的網路結構,相較於全交叉,它其實是通過分組交叉的方式引入了人工先驗知識的約束來提升性能。

在決策階段,現在強化學習方面的應用是一個熱點,主要是在這種動態變化的環境當中,我怎麼去做有效的和高效的決策。相較於傳統的在線學習的方式,首先是以長期的收益期望為目標,同時,我們線上獲得的反饋通常是延遲的,強化學習的模式更符合真實場景;另外,強化學習的學習方法可以將動作學習目標和收益目標分開,不要求收益數學形式上可微,非常靈活,這一點非常有吸引力。

在業界,一個非常有價值的應用就是用強化學習做動態的策略選擇。隨著時間軸的推移,很難保證有一個始終最優的模型或策略,我們能不能組合多個時間維度局部最優的模型去獲取更大的收益,這是強化學習很有優勢的地方。這個方面很多大廠都有實際應用。

另外一個應用是在騰訊的微視推薦場景。一般的推薦場景強調精準,微視推薦的特點是發現更有趣,所以它會更強調探索和多樣性。這種特性也很適合強化學習的應用。

另外一個有非常大價值的方向,就是Transfer Learning,我前面提到的用戶興趣漂移或者數據分布漂移的問題,其實就是Transfer Learning的解決方向之一。

這是遷移學習在電商領域多語言市場推薦的一個典型應用,比如在英文市場積累了大量的數據,但是多語言市場存在冷啟動的問題,但用戶的習慣和物品存在關聯性,我們能不能從做的比較好的應用市場遷移,解決啟動的問題,遷移學習也提供了比較好的解決方法。

另外一個例子是我們用遷移學習來解決feeds流產品中的推薦和廣告整體優化的問題,推薦強調用戶體驗,廣告強調營收,它們的目標其實存在比較大的gap,遷移學習的一些思路也可以用來尋找那些能盡量同時滿足這兩個目標的內容。

這是我們經常碰到的另外一個現實的問題,機器學習的生命周期特別長,會涉及到非常多的環節。每個環節相對割裂,而且它們的優化目標各自不同,比如說我們在建模的時候,我們看loss,離線評測看AUC,等等。所以整體上看,效果是一種漏斗的方式,上線之後綜合效果的收益挺小。所以我們自然會想到能否把中間的過程省掉,直接對最終目標做優化,那麼這就涉及到一個問題,我們現在通常的機器學習演算法,其實都要求你的目標是可導的,但我們在線上很多業務目標不可導,強化學習就提供了一個很好的解決思路和方法,這也是現在強化學習比較有應用價值的一個地方。

關於直接優化業務目標,我們也做了一些嘗試,主要是通過粒子群進化的思路來進化出網路,這種方法取得了一定的效果,主要問題是計算量比較大,收斂性比較差。目前主流的AutoML的方法可能會是更好的一個解決途徑。


DeepR

所以,從機器學習到深度機器學習的轉向是整個業界的一個共識。為了支撐從推薦到深度推薦的轉向,我們自研開發了一個叫DeepR的深度學習框架,它是針對大數據、面向開發人員,打造高效、專業的工業級深度學習一站式解決方案。為什麼要做Deep這個東西?一般通用的深度學習平台對CV和NLP解決的比較好,但是工業級大數據的深度學習有很大差別, 我這裡大致列出了大數據的深度學習比較顯著的一些特點,這是一般框架解決不太好的地方。針對這些特點,現在正在建設DeepR一站式深度學習的解決方案,同時在這個裡面,我們有一些特色化的機制和演算法。

這是DeepR整體的架構圖。其中比較核心的一個組件就是我們自研的深度學習框架RCaffe,由於時間關係,下面就只對RCaffe做一個簡單介紹

這是RCaffe的整體結構圖,我們是基於Caffe骨骼來深度定製開發的,在Caffe清晰簡單的框架設計基礎上,針對大數據特點,在機制和演算法功能組件上做了定製開發

機制方面,RCaffe逐步形成了一些自己的特色機制,第一個是分組的數據輸入機制,帶來的好處是把數據按某種方式分組之後,以組為單位的話,往上走能夠很靈活的接入不同的操作分別處理,這是非常靈活的。這種方式對樣本權重,多目標等常見應用也能更方便的支持;第二個就是BDM機制,主要是解決大規模模型參數的一個問題,它只載入當前處理batch數據所需要的參數,按batch生成動態模型,解決了內存和顯存不足的問題。第三個是多GPU的通訊方式,採用了數據並行和部分的模型並行結合的方式,把輸入層和網路層切開,用不同的並行機制去做。第四個是大規模稀疏數據的存儲和OP。

這是BDM機制的一個示意,採用內外存交互的設計,按batch動態載入模型參數,在內存/顯存的開銷上有巨大優勢,理論上單機可完成大規模的參數訓練

RCaffe在演算法功能組件方面,除基本OP外,以「功能Layer」形式抽象,更加組件化和高效。一期為大數據任務提供了14個定製化功能組件。

以Attion組件為例,Attention組件在搜索、推薦、廣告中起到了很大的作用,Attention的演算法有幾十種。在演算法組件上,我們可以做一個抽象,轉化成一個檢索的過程,通過算和key的相關性,把query映射到key對應的value空間,最後在value空間中做一個組合。Attion組件實現了這個過程,其中算query與key的相關性的過程一般通過一個子網路計算,這個子網路可以通過配置文件來組織網路結構。

這是我們DeepR大致的一個路線圖,計劃在明年上半年能夠使功能更加完備和完善。


小結

最後做一個總結,其實在大數據深度學習中,深度的含義不一樣。我們的深度更多是被用戶、被內容更語義性的一些理解,而不是簡單的記憶。我們隨著深度學習技術的發展和進步,我們應該讓它更多的解決大數據遇到的一些實際的問題,沒有先進和落後的演算法,只有合適的演算法。第二個是數據為王,數據決定效果的上限:模型只是用來擬合數據。第三個是工程的重要性,工程和高效實驗的能力決定人工智慧的應用水平。

關注云加社區,回復3加讀者群


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

關於AutoML和神經結構搜索,你需要知道這些
CynosDB技術詳解——存儲集群管理

TAG:雲加社區 |