整理 | 夕顏
出品 | AI科技大本營(ID:rgznai100)
個性化推薦演算法濫觴於網際網路的急速發展,隨著國內外網際網路公司,如 Netflix 在電影領域,亞馬遜、淘寶、京東等在電商領域,今日頭條在內容領域的採用和推動,個性化推薦如今已成為網際網路公司背後的無形“推手”,可以說,如今我們開啟任意一款聯網的產品,使用者看到的內容,接收到的資訊,絕大部分取決於提供這些商品和服務背後企業的推薦演算法團隊。
在效率至上的時代,推薦系統將資訊生產者與資訊受眾有效地連線起來,前者可以將資訊精準傳達給後者,後者也能接收到自己最感興趣的內容。
然而,推薦系統並非完美無缺。比如,再完美的個性化推薦系統都逃不過“資訊繭房”的桎梏,因為人的興趣會隨著時間的變化而改變,甚至自己都無法意識到自己感興趣的話題和領域有哪些,在何時悄然發生變化,推薦系統更是無法精準“揣度”人的心思,這導致僅憑推薦演算法已無法滿足使用者越來越高的要求。因此,基於推薦演算法,結合知識圖譜、深度學習、AutoML 等技術的新方法隨之誕生,讓推薦系統變得更加可信賴。
推薦系統與深度學習、強化學習、AutoML 等新技術將碰撞出什麼樣的火花?推薦系統用上這些技術之後便“如虎添翼”還是會被其所累?新技術與推薦演算法的結合還有哪些新的可能和方向?在2019 AI開發者大會上,來自華為諾亞方舟實驗室推薦與搜尋專案組資深研究員唐睿明在推薦系統技術分論壇上,為觀眾分享了華為在這些新技術與推薦系統結合探索中的最新成果。
2019 AI開發者大會是由中國IT社群 CSDN 主辦的 AI 技術與產業年度盛會,2019 年 9 月 6-7 日,近百位中美頂尖 AI 專家、知名企業代表以及千餘名 AI 開發者齊聚北京,進行技術解讀和產業論證。
以下為唐睿明的演講實錄整理,AI 科技大本營整理(ID:rgznai100):
我所在的華為諾亞方舟實驗室是偏演算法研究的團隊。今天我將主要從三個方面來向大家介紹一下我們的研究進展,其中強化學習目前偏探索,而深度學習和 AutoML已經落地。深度學習的一些新模型,我們已落地兩年左右;AutoML 是最近較新的進展,可以和大家分享。
深度學習在推薦系統中的研究與應用
推薦系統的三個功能模組
工業界推薦系統基本上都遵循這樣的框架,我們稱之為候選集生成、排序和重排序。
推薦技術發展歷程及技術趨勢
我們總結出,推薦模型的技術發展的演進路線基本上經過了協同過濾、廣義線性模型,到 2015 年,業界比較流行深度學習模型,之後又出現強化學習模型,以及 AutoML 推薦模型。但是業界的網際網路公司真正使用這些技術的時間點遠遠早於圖片中我標註的時間點,因為這些時間點是我根據網上公開的部落格、論文資料找到的,資料往往比業界商用來的晚。
深度學習推薦演算法挑戰:高維稀疏特徵+海量樣本
深度學習模型在推薦系統中的應用面對兩個比較重要的挑戰,一是如何合理地表達特徵,即把一個高維稀疏的向量表達成低維稠密的表示。第二是如何學習特徵之間的互動關係。
2016 年 YouTube 提出 DNN 框架。這是一個 Embe dding+MLP 的演算法框架。
2018 年,谷歌發表一篇論文,提出推薦系統的互動方式,有內部互動的資料中,如果用傳統的非常簡潔的 MLP結構來學習,理論上可以學出來,但是這需要非常寬的網路結構。這在實際應用中非常難以實現,因為需要用到的神經網路寬度遠遠大於 Embe dding SIZE。這篇文章同時提出,我們需要一些非線性的網路結構來學習特徵之間的互動關係,而非MLP中的簡單加法。
之後,業界很多工作把一些模型創新點轉向了特徵互動,實際上特徵互動的設計非常合理,因為在深度學習引用到推薦系統之前,推薦系統的這類演算法核心技術就是在建模特徵之間的關係。在深度學習中,我們為何不把低階模型(淺層模型)中一些特徵互動的設計經驗引入到深度學習模型中呢?這樣做的優勢是可以顯示建模與特徵之間互動的關係。
業界有幾類特徵互動設計:第一種是 Product Operation,用點選操作建模特徵互動(從 2016 年開始是 PNN,我們諾亞連續發了兩篇論文,分別是 DeepFM 和 PIN);第二種是用attention operation(比如AFM,阿里的DIN,DIEN等);第三種是RNN/CNN(例如谷歌的LatentCross,諾亞的FGCNN等);第四種是Memory-based,因為之前的這些網路結構都沒法捕捉到超長序列中的關係。
我們先來介紹一下諾亞的兩個深度學習模型DeepFM和PIN。
DeepFM 的思想比較簡單,在工業界中應用也較為容易,完全沒有操練過深度學習的人可以把這個模型當作入門級演練。該模型的思路其實和谷歌的Wide & Deep模型比較類似。當時,學術界對是否將深度學習引入到推薦模型還沒有得出定論,到底是淺層模型還是深度模型好,兩個學派還在爭論。因此谷歌的研究員把這兩個模型結合起來,提出了有名、實用的Wide & Deep模型。
在復現Wide & Deep模型的訓練過程中我們發現一個問題,即做一個公開資料集(Criteo資料集)時經過匿名化處理,那麼如何在這樣的特徵資料集上做人工的特徵互動(以輸入Wide & Deep模型中的Wide部分)?在這種情況下,如果無法做特徵互動,是否能有一個端到端自動提取低階特徵的模型?在這種思路下,我們提出了DeepFM模型,用FM模型來自動地學習低階特徵互動。
第二個模型是 PIN,思路同樣聚焦於建模特徵之間的相互關係。不同特徵互動關係是不同的,有的資訊量較大的特徵域進行互動應該用較複雜的操作進行建模,而資訊量較少的特徵域之間的互動可以用相對簡單的模型建模。基於這個想法,我們用子神經網路來學習不同特徵域之間的互動關係,每一對域之間的互動由一個子神經網路來表達並學習,而具體的引數通過訓練資料訓練得到。如果深度學習中域的數量為幾十,我們可以把所有兩個域之間的組合羅列出來,這樣的結果是子神經網路的數量非常巨大,在這種情況下神經網路規模必須非常小。由於子神經網路數量較大,我們現在假設所有的神經網路架構一模一樣,否則非常難以為數量如此龐大的子神經網路來設計它們的結構(我們用一層或者兩層的網路進行原始輸入)。今年,我們提出來用AutoML 來解決這個問題,後面會進行詳解。
我們團隊直接服務於華為應用市場,把DeepFM和PIN用在應用市場遊戲推薦的場景,當時連續做了 12 天的 AB 測試之後,深度學習模型在更新頻次不佔優勢的情況下,精度大幅度超過了線性模型。而PIN 以複雜的建模輕而易舉地擊敗了 DeepFM。但由於複雜度的原因,PIN 模型最終沒有大規模上線,所以在我們內部,主流模型還是 DeepFM。
現在我介紹一個個人覺得工業界非常感興趣的問題,那就是位置偏差問題。很多推薦場景往往不是推薦一個商品,而是一組商品。推薦一組商品時,擺放位置不同會影響推薦的效果,比如某個商品擺放在位置 1 時下載量較高,那是因為使用者喜歡它,還是放在了好的位置?這兩個影響因子融合起來,產生的影響不容忽視。據我瞭解,工業界通常處理這個問題時會把位置當做一般特徵輸入到神經網路進行訓練;而在預測時,位置特徵的值是無法獲取的,則會輸入一個預設值做為位置特徵。
經過實驗,我們團隊認為這個方法並不好,因為不同的位置特徵的值輸入神經網路後,會造成 CTR 預估數值不同。我們對這一點進行了改進,把神經網路分為兩部分,一部分只用來建模 Position,另外一部分建模除 Position 之外的所有特徵,兩部分合在一起得到最後的 CTR。我們希望右邊的神經網路能夠完全把 Position 的影響去除,這樣做 預測時,用右邊的神經網路即可。我們選取了 Position1、Position5、Psition9這三個值做為baseline的位置特徵值,而我們的模型在預測時不需要 Position。通過三週的線上AB測試發現,我們的模型比固定位置特徵值的baseline方法在下載率上有大幅度提升。現在,我們都是用這個模型進行處理位置特徵。
AutoML在推薦系統中的研究與應用
前面介紹的是過去深度學習模型部分的工作,下一步介紹我們目前正在進行,或者計劃進行的工作,那就是 AutoML。大家都在提 AutoML,目前 AutoML 80%-90% 的工作聚焦於CV領域,搜尋 CNN 網路架構。
在推薦系統裡,我們如何用 AutoML 技術解決模型上之前無法解決的一些問題呢?
基於深度學習的推薦演算法主要包括三個模組,第一個是 Embe dding,第二個是特徵互動,第三層是 MLP,我們現在想做的是 Embe dding 和特徵互動。我們先來看看業界一些公開工作。
第一個工作是第四正規化的 AutoCross。對於傳統的淺層模型,專家一般只設計二階特徵互動,而用 AutoCross 可以自動地搜尋出一階、二階或更高階的特徵加入到特徵中,精度可以媲美深度學習,甚至用AutoCross搜尋出來的特徵組合可以用到深度學習模型中。
谷歌今年 7 月份公開了一個具有開創性的工作——NIS。基於深度學習的推薦系統模型,絕大部分引數都在Embe dding層。現在,很多商用的深度學習模型中不同特徵的Embe dding Size相同,其中的原因是讓矩陣算得更快,或者是為了調參方便。但是這不是合理的做法,舉例來說,城市和性別這兩個特徵相比較,城市的數量有成百上千,但是性別只有兩類,男或者女,我們應用使用更多的引數去表達城市這個特徵;在城市這個特徵內部,也有著不同的特點,如北上廣深這些城市,有著很大的樣本量,而拉薩、呼和浩特這些城市樣本量較小,我們可以用更大的引數去描述北上廣深這些城市,而用較少的引數去表達其他城市。總結來說,在引數量給定,資源有限的情況下,如何合理分配 Embe dding 引數非常關鍵。
基於深度學習的推薦系統當中,絕大引數聚焦於 Embe dding,這部分引數如何合理分配,可能使得深度學習效果得到大幅提升。這是初步的嘗試,把整個搜尋空間劃分成矩陣的形式進行搜尋。我們認為,該工作指出了一個正確的方向,我們也在推薦系統中進行相關工作,這個方向是我們的目標之一。
下面介紹三個我們團隊已經基本上完成的工作。
第一個工作叫做 AutoGroup,高階特徵互動自動化探索。深度學習止步於二級特徵互動,沒有向三階、四階邁進。AutoGroup 的思想是讓特徵互動有意義。對於不同的階數(二階,三階,…,P階),AutoGroup會自動地找到一些特徵子集,以生成對應階數的特徵互動。AutoGroup 訓練複雜度是 DeepFM的兩到三倍,在現有計算資源下比較容易實現。8 月份,我們上線測試了三週, AutoGroup 相比於基線在 AB 測試上平均提升 8%。
在該工作過程中,我們還得到另外一個方向:特徵互動的自動化選擇。現在有很多模型中的二階特徵互動時沒有權重的(或者是權重都是1),也有一些工作嘗試用加權重的方式來學習不同特徵互動的重要性。我們用類似的方法給二階特徵互動加上權重來探索權重到底能學習到什麼。我們隨機對神經網路進行初始化,把最終學習到的權重進行排序,得到比較重要的特徵互動。但通過這種方式學出來的權重極其不穩定,表現為不同的神經網路初始化下,得到的重要的特徵互動有著很大的區別。這種不穩定性導致這種權重的定義和學習方法在工業界基本不可用。我們用另外一種方式進行改造(正在申請專利不便公佈),發現特徵選取的穩定性達 96%。
我們選取兩個模型,一個是 FM、一個是 DeepFM,經過改造之後的模型比原始的版本相比效能有了大幅提升。如果有更多計算資源,我們還可以把三階特徵互動羅列出來,效能還會繼續提升。我們選取了20%有用的特徵互動,相比於基線,AB 測試線上平均提升 10%。
第三個工作是基於 PIN 模型的改造。PIN 模型有成百上千個子網路,我們現在的做法是不同的子網路有著相同的網路結構,而這些子網路的權重則是由訓練資料學習出來的。我們用AutoML方法來決定不同子網路的網路結構,對於一些無用的特徵域的互動,可以不用子網路建模,一些非常重要的特徵域互動,可以使用複雜的網路結構。初步的實驗表明,用AutoML的方法來精細化、自動化地設計不同子網路的網路結構可以帶來精度的提升(相比於PIN模型)。
以上是我們在 AutoML 上的一些工作。
強化學習在推薦系統中的研究與應用
因為更加偏向於探索,強化學習在推薦系統中的應用這部分我做簡單的介紹。
我總結了近幾年基於強化學習的推薦演算法的工作,大致分為三類模型:第一類模型是 Policy-Based,直接決定推薦的策略;第二類模型是 Value-Based,算出每一個候選動作的價值,然後進行推薦;第三類模型是 Policy & Value-Based,是前兩種模型的結合。
谷歌在2019年提出了兩個模型,其中一個應用在YouTube的視訊推薦中。
另外一個比較有意思的工作與淘寶相關,這是南京大學俞揚老師在搜尋場景中做的一個模擬器。一般這種模擬器都用在遊戲場景中,因為沒什麼損失,而推薦系統就不能這麼做。虛擬淘寶的作用是建立一個與淘寶類似的虛擬場景。在這個虛擬場景下,強化學習可以得到充分的訓練,從而安全、有效的上線。
我們在去年提出了一個工作,TPGR。我們想要解決在將強化學習模型應用推薦系統中時,推薦商品侯選集較大的問題。首先,TPGR模型基於商品候選集建出一棵平衡聚類樹,樹的葉子節點代表待推薦的商品,非葉子節點代表聚類的一些資訊。推薦商品其實就是在這棵樹中從根節點走到一個葉子節點的過程,走到哪個葉子節點就推薦哪一個商品。每一個非葉子節點上都有一個小的策略網路,用來決定接下來走向該非葉子節點的哪一個孩子節點。多個策略網路聯合決策,共同決定了推薦哪個商品。而推薦商品的使用者反饋可以反向傳播,更新這條路徑上的這些策略網路。
總結與回顧
最後總結一下,深度學習演算法已成為業界主流,平臺+算力+演算法+資料是深度學習推薦系統能力的核心競爭力。強化學習加快探索,實現動態自適應的推薦能力。AutoML技術在推薦中的研究也成為熱點,不久會有大量的成功應用案例湧現。
演講嘉賓:
唐睿明,華為諾亞方舟實驗室推薦與搜尋專案組資深研究員。他於 2009 年在中國東北大學獲得學士學位,專業為電腦科學與技術;並在 2014 年從新加坡國立大學計算機專業獲得博士學位。2014 年底,他加入華為諾亞方舟實驗室。他的研究方向包括機器學習、推薦系統、深度學習、強化學習、AutoML等。在基於深度學習和強化學習的推薦系統領域,他的多篇論文發表於國際頂級會議和期刊,如 WWW,IJCAI,TOIS,AAAI,RecSys,SIGIR等。