基於任意深度學習+樹狀全庫搜索的新一代推薦系統
首先要感謝阿裏,分享了這個美妙的技術。
以下是我結合了阿裏技術對基於任意深度學習+樹狀全庫搜索的新一代推薦系統的一些看法。
Part 0 背景
隨著時代日新月異,推薦技術對各大互聯網公司都起著越來越重要的作用,阿裏針對大規模候選集上的匹配推薦問題,自主創新提出了一套嶄新的、完整的基於樹結構的匹配和推薦算法框架,希望借此賦能任意深度學習模型在推薦匹配中的使用,實現面向全量大規模候選集的精準匹配和推薦。
推薦、搜索、廣告投放是互聯網內容提供商進行流量分配的核心業務,也是大數據和機器學習技術的典型應用場景。無論是推薦,搜索,還是廣告投放問題,都可以描述為從大規模候選中給用戶提供有限的展現結果以獲取用戶的正向反饋(廣告投放還需額外考慮廣告主意願和體驗)。
Part 1 理論及概念
首先我們要明確一點:
推薦=匹配+排序(Recommend=Match+Rank)
從上面公式不難看出,推薦問題可歸納為匹配階段和排序階段的問題。
推薦系統的核心就在於從全量Items中根據Users的behavior,召回TopK候選集的問題。
一、
先從排序來說,排序部分由於候選集較小,故可使用各類復雜模型(例如DL等)來優化TopK的選取,來達到最終效果,例如廣告投放收益等。業界對此方面的研究進展很深,例如阿裏就將排序階段的CTR預估利用了基於Attention結構的深度興趣模型,收益很大。
PS:
Attention模型最初應用於圖像識別,模仿人看圖像時,目光的焦點在不同的物體上移動。當神經網絡對圖像或語言進行識別時,每次集中於部分特征上,識別更加準確。如何衡量特征的重要性呢?最直觀的方法就是權重,因此,Attention模型的結果就是在每次識別時,首先計算每個特征的權值,然後對特征進行加權求和,權值越大,該特征對當前識別的貢獻就大。
二、
再從匹配方面,匹配方面由於問題規模較大,復雜模型在此階段有局限性,所以業界在這方面的研究尚處於發展階段。回到上述關於兩階段的描述,可以看出匹配階段產生的候選集的質量會成為最終效果的天花板,因此如何創新和發展匹配技術是對業務有著重大意義的問題,也一直是業界和學術界關註的重點問題。
三、
以推薦為例,在工業級的推薦系統中,匹配階段往往面臨很多技術挑戰。例如當候選集非常大的時候,要從全量候選集中挑選TopK集合,我們無法接受隨著全量候選集大小而線性增長的時間復雜度,這使得一些學術界研究的需要計算全量{User,Item} 興趣度的方法並不能真正應用於實際推薦系統中的匹配階段。在有限的計算資源下,如何根據用戶信息從全量候選集中快速得到高質量的TopK候選集
其中T表示單次計算的時間消耗,N可以認為是為單個用戶召回TopK需要的總體計算次數。在上述公式的約束下,圍繞如何提升匹配效果,工業界的技術發展也經歷了幾代的演進,從最初的基於統計的啟發式規則方法,逐漸過渡到基於內積模型的向量檢索方法。然而這些方法在技術選型上都在上述計算效率約束下對匹配效果進行了很大的犧牲。如何在匹配階段的計算效率約束下引入更先進的復雜深度學習模型成為了下一代匹配技術發展的重要方向。
Part 2 相關技術
如上文所述,結合工業級推薦系統的約束,匹配技術經歷了從基於統計的啟發式規則方法到基於內積模型的向量檢索方法的轉變,具體描述如下:
I)第一代——基於統計的啟發式規則方法
這一類方法的經典代表就是Item-based Collaborative Filtering(以下簡稱Item-CF)基於物品的協同過濾,也是業界應用最廣的推薦算法之一。Item-CF的算法原理是:首先通過統計計算得到Item to Item(I2I)的相似關系,其次啟發式地獲取用戶近期行為作為Trigger Item集合,用它們進行I2I擴展,最後以某種打分規則對擴展後的Item集合進行排序,截斷得到TopK作為候選集進行後續排序流程。結合公式(1),我們可以知道這種方法有效的控制了總體計算次數N,因為用戶的Trigger Item集合是有限的,相似關系圈定的候選集合也是有限的,從而避免了對全量候選集的計算,同時簡單的打分規則可以有效地控制單次計算時間T,兩者使得最終整體方法的計算量較少,滿足了在線應用的要求。
這類方法簡單有效,應用也比較廣泛,但從算法原理不難看出,這種方法天然存在一大弊端:它限制了嘗試推薦給用戶未曾行為過但可能感興趣的Item的可能性。這種將候選限定在歷史興趣相似範疇內的啟發式規則對推薦效果的提升有限,它降低了用戶體驗(尤其是推薦結果的驚喜度),也制約了系統整體的可持續發展能力。盡管後續的排序環節可以引入復雜的機器學習方法,例如MLR(混合邏輯回歸),FM(因子分解)或者深度學習,但它們都依賴於匹配給出的候選結果,所以無論如何復雜的模型都突破不了匹配給定的上限。
II)第二代——基於內積模型的向量檢索方法
引入機器學習方法來提升匹配能力是業界共識和趨勢。機器學習本質上是一個衡量模型,可以衡量用戶對商品的興趣度。這種基於模型的匹配方法理論上要衡量一個用戶對所有商品的興趣度,從而挑選出最優的推薦結果。這就帶來了問題:對於大規模商品候選集的場景是計算不可行的。
如何化解計算不可行的問題?研究人員提出了以向量距離的方式衡量用戶和商品興趣度的方法,用戶和商品被表示成向量形式,並以此為基礎建立基於向量聚類的索引結構進一步加速衡量效率,於是這個計算問題變成了在有限時間內是可解的(近似求解),具體實現也落到了向量引擎的範疇。結合公式(1),T代表簡單的向量內積計算時間,而N則通過建立向量索引結構從而控制在O(桶候選集規模)的較小範圍內。
所以內積式模型和向量引擎成為了最近幾年匹配領域技術革新的最重要技術(圖像檢索問題最早就是采用的這種方法)。尤其是去年Facebook的Faiss框架開源,極大降低了業界嘗試向量引擎的難度,對行業發展起到了極大的促進作用。至此,基於內積模型的向量檢索方法引領了第二代匹配和推薦技術的潮流,在各類學術會議和工業實踐中大放異彩。
然而問題是,這類方法並未實現充分利用機器學習解決匹配問題的初衷,對機器學習模型的限制太大。高階深度學習大部分都不可劃成內積形式,比如CTR預估裏用戶和商品特征交叉非常有用,大部分不可用內積表示。而在現有深度學習中內積模型的表達能力被證明是有限的,比如將內積模型中最後的內積運算直接換成多層感知機能大幅提升模型能力,而多層PNN內外積神經網絡 ,DIN等對用戶興趣更有洞察力的復雜模型效果被證明能極大的超越內積模型。
與此同時,我們也發現在具體實踐中,向量檢索算法要求User和Item能夠映射到統一的向量空間。User輸入信息和Item輸入信息一般並不同質,如何保證映射到統一目標向量空間下的檢索精度對映射算法提出了嚴格的要求,換言之,統一的向量空間映射對運用向量檢索來解決推薦問題帶來了精度損失的風險。
III)下一代匹配和推薦技術
結合上文的描述,匹配技術發展的核心點在於系統性能限制下盡可能提升興趣的衡量精度(從規則算法到引入先進模型)和覆蓋範圍(從限定候選集到全量候選集)。為此我們嘗試對下一代匹配和推薦技術進行研究,自主提出了一種更通用的匹配和推薦算法框架,它允許容納任意先進模型而非限定內積形式,並且能夠對全量候選集進行更好的匹配。無論在公開數據集還是在阿裏數據集上,新方法的召回率和新穎性對比前兩代技術都有飛躍性的提高。我們的方法以推薦問題為例進行展開,實驗也是在推薦應用的場景下進行的。值得指出的是,匹配問題本身作為推薦、搜索、廣告投放業務中的核心模塊,使得我們的方法具有很強的普適性。
Part 3 技術方案
(I)最大堆樹的提出和構建:
我們需要構建一套全新的方法體系來實現樹結構的構建、基於樹的訓練采樣和TopK檢索、以及節點興趣度計算的統一。回到匹配問題本身,假定全量候選集中的每一個商品都是一個葉子節點,當前用戶對所有葉子節點背後都存在一個真實的興趣度,用Pi(u)表示。我們並不知道其具體值,只有根據概率采樣出來的樣本(用戶真實反饋)。對於一般的模型,我們可以對葉子節點的概率建模,但是要找TopK需要遍歷所有節點,計算量太大。因此我們創新性的提出了興趣最大堆樹(Max-heap like Tree)的概念,其定義樹上節點的概率如下:
圖片2即用戶對第j層父親節點興趣的偏好概率正比於用戶對第j+1層孩子節點興趣的偏好概率最大值,其中a(j)是第j層節點興趣概率的歸一化因子。根據最大堆樹的定義,如果已知這棵樹上的每層節點概率之間的序(同層內),我們可以快速找到全局TopK,即從根節點出發找當前層的TopK,然後在上層TopK節點對應的下層孩子節點集合中繼續找TopK,遞歸向下直至葉子。
然而問題是這棵樹上的節點概率我們現在並不知道,但是我們可以想辦法得到符合樹節點概率的序的樣本,然後用深度學習在這個樣本上進行擬合也即得到了節點概率之間的序。具體地,對於任意一個用戶有行為的葉子節點采樣i,隱含了葉子層的序:
圖片3根據我們的樹節點概率定義(最大堆性質),可以向上遞歸推出每層節點概率的序。根據這個序我們進行負樣本采樣,用深度學習模型基於這個采樣去學習,以逼近最大堆樹上每層的序。
(II)最大堆樹背後的方法論:
最大堆樹結構定義背後描述的直觀意義是用戶興趣的層次結構,如果用戶對具體的商品感興趣,例如iPhone,那麽用戶對更高層的節點,例如iPhone所在的類別--手機,也是感興趣的。用戶的興趣結構具有天然的層次性,最大堆樹結構定義了用戶從細粒度興趣到粗粒度興趣的傳遞過程,也在刻畫用戶的這種興趣的層次結構。當然描繪用戶的興趣層次結構不限於最大堆樹結構,但是阿裏提出的最大堆樹結構在方法上具有獨到之處,其從方法論層面統一了樹結構的構建過程,樹節點的興趣建模和采樣方式,興趣樹背後的TopK檢索流程。
綜上所述,從最大堆樹結構定義出發,阿裏提出了Tree-based Deep Match(以下簡稱TDM)算法框架(圖1)。TDM以淘寶商品體系為初始化依托,自頂向下構造從粗到細的興趣層次樹(Tree),並在此基礎上應用深度學習網絡進行用戶興趣的推薦建模,賦能單點計算上的復雜模型,運用層次檢索方法實現全量候選上的用戶TopK商品興趣推薦。
圖4 Tree-base Deep Match算法框架
基於如上的設計和實現,TDM的貢獻包含以下幾點:
(i)創新的最大堆樹檢索結構使得使用任意高級深度學習模型變得可能,帶來推薦效果的極大提升
TDM采用樹來組織用戶興趣層次,並將之做為興趣推薦的層次檢索結構載體,良好的亞線性O(log(候選集規模))時間復雜度使得TDM的檢索過程非常高效,這種高效為TDM引入先進復雜模型提升檢索精度提供了強大支持。在單獨計算每個興趣節點的偏好時,TDM不局限於特定的模型結構(如內積等),可以引入更加切合數據特性的復雜模型結構來優化預測結果,例如基於用戶歷史行為的Attention結構,樹節點Embedding下沈到輸入層,用戶和樹節點的歷史交叉信息引入等等。無論上述哪種復雜計算的引入,在TDM的對比實驗中都取得了更優的推薦效果。
(ii)全庫檢索能力可以有效提升召回準確度和新穎性
TDM實現了面向全量候選集的檢索能力,通過對用戶興趣進行層次切分和逐層圈選,TDM避免了直接在全量候選集上的超大計算,它采用將大問題切割成多個小問題遞歸求解的方式實現全庫檢索。受益於全庫檢索的實現,TDM可以提升結果的新穎比例並保持了召回效果,而借助於先進模型計算能力的引入TDM可以達到新穎性指標提升的同時進一步優化召回的準確度。
(iii)再創新的樹-模型聯合訓練實現樹結構和模型能力的雙優化,進一步大幅提升效果
在基礎TDM算法框架之上,我們繼續創新性地建立了樹-模型聯合訓練框架,通過初始樹-模型訓練-樹重建-模型再訓練的循環叠代,樹的結構隨著模型的演進不斷得到優化,使得樹更契合用戶的興趣組成和分布,而模型訓練也受益於優化後的樹結構,進一步降低Loss提升測試效果。聯合訓練為TDM帶來了10%以上的測試效果提升。
Part 4 總結與展望
Tree-based Deep Match(TDM)自主創新提出了一套完整的基於樹的復雜深度學習推薦匹配算法框架,它通過建立用戶興趣層次樹結構實現了高效的全庫檢索,並以此為基礎賦能深度模型引入Attention等更先進的計算結構,達到了在精度、召回率以及新穎性等指標上相對於傳統推薦方法的顯著效果提升。進一步的,TDM設計實現了一套完整的初始樹-模型訓練-樹重建-模型再訓練的聯合訓練叠代框架,更加促進了效果的提升。聯合訓練賦予了TDM算法框架較好的通用性,為TDM向新場景、新領域的遷移擴展提供了良好的理論基礎和極大的工程可行性。
由阿裏自主創新提出的這套TDM框架是對學術界和工業界關於匹配和推薦理論技術發展的一次重大促進,它為解決匹配問題提出了一套嶄新的、完整的支持任意深度學習的樹狀全庫檢索方案,取得了算法效果的巨大提升,並為廣泛的行業、領域遷移提供了極大的可行性。
TDM建立了一套完整的基於樹結構的深度學習推薦匹配理論和技術,並在阿裏媽媽廣告業務上取得了初步的成果和進展。但相對來說TDM還處於開端階段,後續還有較多可改進的地方,比如在樹學習方法上暫時采用的是無監督學習的KMeans聚類,未來可以考慮采用有監督的方式對樹進行調枝、剪枝等調整來實現樹結構的進一步優化。
作者:謹慎卑微的野心家
鏈接:https://www.jianshu.com/p/88e3fba82e39
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。
基於任意深度學習+樹狀全庫搜索的新一代推薦系統