- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-12-09來源:不懂勝者為王瀏覽數:468次
在情境化長序列檢索中,往往存在單路檢索信息較少,整體檢索線上性能差的問題,我們考慮探索新的多屬性檢索機制將多路檢索合并為單路檢索,在提高檢索速度的同時擴充檢索信息的豐富程度來進一步提升模型效果;在稀疏專家網絡上,我們發現推薦模型存在嚴重的參數飽和現象:當稠密參數增加到一定程度時,模型效果提升會快速衰減。

1. 引言
2. 問題與挑戰
3. 情境化智能流量分發
3.1 情境化長序列檢索
3.2 情境化多專家網絡
4. 總結和展望
美團外賣推薦服務了數億用戶,通過持續優化用戶體驗和流量分發精準性,為用戶提供品質生活,“幫大家吃得更好,生活更好”。對于“用戶”,大家可能會有不同的理解,通常的理解是用戶即是自然人。業界主要的推薦場景,如淘寶首頁猜你喜歡、抖音快手 Feeds 流推薦等大部分也是這么認為的,在這些電商、短視頻等業務中,用戶無論何時何地使用推薦服務,他們的需求是大體統一的,商品、信息、視頻等供給也是一致的。
但實際上,在美團外賣場景下,用戶不僅是自然人,更是需求的集合。需求是與情境依存的,也就是有情境就有需求。美團外賣在不同的時間、空間以及其他更廣義的環境下,用戶需求、商家供給等都有顯著區別。因此,本地化、餐飲習慣、即時履約共同構建了美團外賣多種多樣的情境,進而衍生出用戶多種多樣的需求集合,推薦算法情境化可以幫助算法更好地理解并滿足不同情境下用戶需求。外賣場景具有很強的地理位置和就餐文化約束,用戶在不同地點(如公司、住所)的需求有較大差異。而且,所處時間也是決定用戶下單的一個關鍵因素。以北京某地區高消費用戶為例,工作日和周末在成單品類、成單價格、成單商家配送距離上有著明顯的不同。如下圖 1 所示,工作日與周末用戶在口味、心態上有明顯變化,工作日多為單人餐,以飯類套餐、輕食、米線為主,更加適應工作時的快節奏;而在周末,用戶會適當犒勞自己、兼顧家人,傾向于選擇更適合多人就餐的燒烤、韓國料理、火鍋。從圖 1 也可以發現,從工作日到周末時,用戶的成單價格中位數由 30 元提高至 50 元,能夠接受的配送距離也在變長。
圖1?
某地區高消費用戶在工作日和周末的差異性就餐習慣美團外賣推薦需要滿足“用戶 X 時間 X 地點”等情境下的需求總和,應對需求的不斷拓展和演化。為了更好的理解我們所面對的用戶需求,如下圖 2 所示,將其定義到一個魔方內(Magic Cube),用戶、時間和地點是魔方的三個維度。其中,魔方中的每個點,如圖 2 中黃色點,代表一個用戶在一個特定情境下的需求;魔方中的每個小立方體,如圖 2 中黃色立方體,代表一組相似用戶在一組相近情境下的需求。此外,在問題定義上,為了支持情境維度的進一步擴展,我們使用超立方體(Hyper Cube)來定義更多維度的用戶需求。
圖2 “用戶X時間X地點”等情境下的需求總和
面對以上這種三維模式,模型設計是非常棘手的。以往的模型設計,比如用戶興趣建模,或者樸素的多層神經網絡無法應對這些復雜的用戶、時間和地理環境糾纏在一起的情況。用戶興趣建模通常采用連續建模方法,通過注意力機制提取重要行為偏好信息。但是在用戶行為豐富的情況下,模型很難對所有行為進行學習,并且在外賣場景只有一部分歷史行為與用戶的當次訪問高度相關,連續的行為建模會削弱相關部分的信號。
此外,樸素的多層神經網絡基于全部情境下的數據和標簽進行訓練,只能學習到整體的數據分布表現,在每個情境下很難達到最佳效果。針對這一問題,阿里 SIM4首先考慮了把行為中的重要相關信息搜索出來進行建模的方式,但他們所要解決的問題在于降低用戶超長序列建模的離在線資源消耗,并沒有在模型中引入情境特點;螞蟻 ASEM216、騰訊 CSRec17等通過模型自動化選擇不同場景專家網絡進行共享或獨立學習提升全場景或者多任務模型表現,但是這些工作都只專注于單一維度情境,并沒有做更廣泛的拓展。
針對無限細分的用戶情境以及情境的不斷拓展和演化,為解決以上挑戰,我們提出“情境細分+統一模型”(Segmented and Unified Model)的建模思路。情境細分針對用戶特定情境進行針對性建模提升推薦精準度,統一模型將多個相近用戶情境進行知識共享和遷移解決情境拓展和演化的問題。
具體來說,依據 Cube 中的每個情境,可以從用戶歷史行為中檢索出與當次訪問最相關的行為,精確刻畫當前情境下的用戶偏好。此外,我們設計多個專家網絡,讓各個專家專注于學習細分情境下的數據分布,然后基于用戶、城市、時段、是否周末等情境強相關特征來進行專家的挑選,不同情境可以學習到是否共享某個專家或者學習到與眾不同的專家選擇分布。對于新用戶或者行為不夠豐富的用戶,借鑒 Cube 的概念,可以考慮從 Cube 中檢索出近似情境,并根據近似情境檢索出的行為作為用戶在當前情境下的興趣補充,同時對于情境化專家網絡,通過模型設計讓不同專家專注于自己情境的同時,針對本情境,利用其他情境知識進行知識遷移,這樣緩解了新用戶冷啟動問題以及可能存在的數據稀疏問題。
除了依據時間、地點進行情境細分之外,還可以將不同的流量入口(首頁、金剛位、活動頁)、業務類型(外賣、閃購、醫藥)都當成一種特殊的“情境”,這樣“用戶 X 時間 X 地點”可以自然拓展成“用戶 X 時間 X 地點 X 入口 X 業務”的高維情境,通過對信息獨有性的刻畫和信息共性的相互傳遞,實現全部流量的效率提升。“情境細分+統一模型”的實現思路主要分為用戶行為序列建模與專家網絡結構兩個組成部分,模型整體架構如圖 3 所示:
圖3 情境化智能流量分發模型
該模型通過 Cube 檢索出特定細分情境下的用戶行為進行序列建模,并且通過專家網絡模型自動化對不同情境參數進行學習,保持了模型統一,既能刻畫情境的獨特性,也能實現不同情境間的知識共享和遷移。具體的,在用戶行為序列建模上,首先仔細考慮了細粒度行為特征對于外賣商家推薦的重要作用,并以此為基礎,根據時間、空間場景對用戶序列進行長序列多路情境檢索;對于專家網絡結構,則先針對不同入口情境建立基于 Attention 機制的多入口情境建模,隨后探索了情境化稠密 MMOE 和稀疏 MMOE 模型,發現在外賣場景中,專家網絡可以學習到不同情境、不同任務的差別,進而提升模型精度。
基于該方案,對于 CTR、CXR(CTCVR)任務,模型在離線指標 AUC、GAUC(perSessionAUC)上均取得了顯著提升,并在線上也取得了 UV_RPM、UV_CXR、PV_CTR、曝光新穎性、首購訂單占比等指標收益。線上指標計算口徑如下: UV_RPM = 實付交易額(GMV)/曝光人數*1000 UV_CXR = 交易用戶數/曝光人數 PV_CTR = 點擊次數/曝光次數 曝光新穎性 = (A -(A∩B))/ A,該用戶當前 session 內曝光的商家集合為 A,該用戶 7 天內所有 session 中曝光過的商家集合為 B 首購訂單占比 = 商家新用戶的訂單數/總訂單數 3.1 情境化長序列檢索基于深度學習的方法在 CTR 預估任務中取得了巨大成功。早期,大多數工作使用深度神經網絡來捕獲來自不同領域的特征之間的交互,以便工程師可以擺脫枯燥的特征工程工作。最近,我們稱之為用戶興趣模型的一系列工作,專注于從歷史行為中學習潛在用戶興趣的表示,使用不同的神經網絡架構,如 CNN、RNN、Transformer 和 Capsule 等。DIN1強調用戶興趣是多樣的,并引入了注意力機制來捕捉用戶對不同目標商品的不同興趣。DIEN2指出,歷史行為之間的時間關系對于建模用戶的興趣漂移很重要,并設計了一個帶有輔助損失的 GRU 興趣提取層。
但是,對于美團外賣,基于以上連續建模的方法,難以從用戶歷史行為中提取出與用戶的當次訪問情境高度相關的有效信息。MIMN3表明在用戶興趣模型中考慮長期歷史行為序列可以顯著提高模型的性能。但是較長的用戶行為序列包含大量噪聲,同時極大地增加了在線服務系統的延遲和存儲負擔。針對上述問題,SIM4提出把行為中的重要相關信息搜索出來。具體來說,在拿到需要被預估的商品信息后,可以像信息檢索一樣,對用戶行為商品構建一個快速查詢的索引。待預估商品的信息可以當做是一個 Query,從用戶的所有行為中,查詢與其相關的行為子序列。
因此,受啟發于 MIMN 的超長序列和 SIM 的檢索思路,我們設計出情境化序列檢索方法,依據 Cube 內的情境,從用戶超長的歷史行為序列中檢索出的與當次訪問情境最相關性的用戶行為,進而捕獲更為精準的用戶興趣。不同于電商中的商品推薦形式,美團外賣推薦是以商家為主體,用戶從進入商家到最終下單過程中具有更加豐富的細粒度行為,通過捕捉用戶在商家中的細粒度行為,可以精細感知到用戶差異化偏好,如注重品質商家的用戶會更多查看商家/商品描述和評論,而折扣敏感度高的用戶則會查看折扣信息、領取優惠券等。
工業實踐中,用戶行為序列特征往往包含商家/商品 ID、品類、價格等商家/商品表示特征,而在行為表示上除了用戶到商家的點擊之外,用戶通過什么頁面進入到商家點菜頁、用戶在商家點菜頁中的細粒度行為,同樣可以反映用戶的偏好。因此,可以對用戶從瀏覽商家到最終下單整個流程進行歸納分析,捕捉用戶最細膩的行為并納入模型,充分學習用戶在外賣場景中重要的、最細粒度的行為及其所代表的意圖偏好。
我們將用戶從瀏覽商家到成單商品的全流程抽取出 70 種不同的 Micro-Behavior,總結歸納出四大步驟:定位商家、考察商家、挑選商品、結算提單。在歸納不同意圖的 Micro-Behavior 時,綜合考慮了該意圖下 Micro-Behavior 的日均 PV、當日轉化率、行為跳轉路徑以及頁面展示信息,并剔除了日均 PV 覆蓋率小于 1%的 Micro-Behavior,將相同意圖的行為聚合到一起作為特征表示(比如評價 Tab 點擊、評價標簽點擊和用戶評價縮略圖點擊聚合成“查看評論”意圖表示),最終抽象出 12 種不同意圖的 Micro-Behavior,用來捕捉用戶更深層次、更細粒度的興趣。基于用戶 Micro-Behavior 提煉出從進入商家到最終下單流程如下圖 4 所示:

圖4 ?
用戶點外賣過程接下來,我們詳細介紹下圖 4 中用戶點外賣過程的 4 類 12 種 Micro-Behavior。?
定位商家是指用戶進入商家的入口標識,它可以反映出用戶對該商家感興趣的原因;比如從搜索結果頁進入代表用戶是有較強的購買意愿,相比推薦結果頁進店用戶有更加清晰的意圖。?
考察商家的行為則包括點擊了解商家詳情、查看商品評論和查看商家折扣,它可以幫助更好的理解用戶的關注點,學生群體可能更注重折扣,而家庭用戶可能更加關注商家質量。?
挑選商品意味著用戶對商家的滿意度達標了,其中,點擊商品和加購商品能夠體現出用戶對商家不同的感興趣程度。?
結算提單則表示該商家能滿足用戶當前狀況下的需求,既包含了對商家的認可,也包含對商家中商品的滿意,收藏與分享更是表示出用戶對商家的高度欣賞。
如下圖 5 左所示,9 種不同意圖的 Micro-Behavior 的當日轉化率存在著明顯差異(當日轉化定義:用戶在商家發生某一 Micro-Behavior 后的自然日內有成單;結算提單意圖下 3 種行為由于轉化率很高,因此不做展示)。
圖5 Micro-Behavior和轉化率關系
分別在用戶實時(短周期行為)、歷史(長周期行為)商家序列中引入 Micro-Behavior 信息。如下表所示,離線實驗數據表明,引入的 Micro-Behavior 信息取得了比較明顯的提升。最終,細粒度行為特征在線取得了 UV_RPM+1.77%,PV_CTR+1.05%的收益。

離在線實驗效果表明引入 Micro-Behavior 信息增加了模型的精準推薦能力。此外,我們進一步對模型是否正確的學習了細粒度行為進行驗證。隨機選取一個用戶的成單商家及其商家序列引入 Micro-Behavior 后 Attention 權重變化,如下圖 6 所示,圖左上部分表示用戶行為序列中的商家以及相應 Micro-Behavior 信息,圖右上部分是序列中商家引入 Micro-Behavior 信息后所對應的 Attention 權重可視化,方塊顏色越深則表示 Attention 權重越大,圖下部分是用戶的最終成單商家“鴻鵠一品蹺腳牛肉”在引入不同 Micro-Behavior 信息后的商家排名。通過對比序列中商家引入 Micro-Behavior 觀察 Attention 權重的變化:
圖6 引入 Micro-Behavior 和 Attention 權重關系的 Case 商家序列輸入只有第一列商家信息時,Attention 權重主要由商家 ID、商家 Tag、商家名等信息決定,“一膳牛蹺腳牛肉”和“鴻鵠一品蹺腳牛肉”商家名、商家 Tag 都較為相似因而權重最大。 商家序列輸入在商家信息基礎上分別增加定位商家、考察商家、挑選商品的豐富行為后,根據右側相應每個 Micro-Behavior 的 Attention 權重大小可以看到,定位商家這列中搜索進入商家權重最大,而列表頁進入(首頁 Feed 進入)權重相對較小,符合業務認知;考察商家這列行為中,查看折扣(折扣點擊)和查看評論(評論標簽點擊)表示用戶在篩選商家,其 Attention 權重遠大于了解商家(店鋪摘要下拉)等泛意圖點擊;挑選商品中的加購點擊(加購商品)、搜索商品(搜索商品點擊)行為能展現出用戶的成單意圖,由于該部分信息的豐富,候選商家排名提升至第 6 位。 從以上過程中可以看到,引入 Micro-Behavior 的信息越完善,模型對于用戶興趣的理解越是充分,用戶最終成單的商家也是能夠得以排名靠前。
美團外賣上線至今,已經積累了豐富的用戶行為數據。將如此豐富的行為信息引入到模型中,是近期工業界和學術界的熱門方向,我們在該方向上也進行了一系列探索。
最初,我們直接將近三年的點擊行為直接引入到模型中來,發現離線效果提升顯著,但是帶來的訓練和推理的壓力不可承受。在此基礎上,借鑒了 SIM4,將候選商家的品類 ID 當作 Query,先從用戶的行為序列中檢索出相同品類的商家,再進行興趣建模,離線取得了不錯的收益。
具體的,嘗試過使用二級品類和葉子品類來分別做檢索,在檢索后根據分位點進行最大長度截斷的情況下,二級品類檢索出來的序列平均長度大約為 X,而葉子品類因為品類劃分過細,檢索出來的序列平均長度大幅減少。根據離線實驗評估,最終選擇了使用二級品類進行檢索,在離線取得了 CXR GAUC+0.30pp 的效果。對于檢索條件中,像二級品類和葉子品類這種泛化性與精確性之間的 trade off,我們目前正在進行更進一步的探索。
為了進一步提升模型的效果,考慮到用戶興趣建模從 DIN 發展到 SIM,都是根據候選商家、商品的屬性,從用戶的行為歷史中提取對該候選商家、商品的興趣,這在傳統電商場景下是行的通的,因為用戶對某一商家、商品的興趣基本不會隨著他所處位置、所處時段改變(用戶要買手機殼,不會因為他在家還是在公司有改變,也不會因為他的購物時段是在早上還是晚上而改變)。但是餐飲外賣相較于傳統電商,正如前面的問題與挑戰中提到的,其鮮明的 LBS 和餐飲文化特色構成多種多樣的情境,用戶在不同的情境下對于不同的商家、商品的偏好是不一樣的,是會變化的。因此,除了建模品類偏好外,還要進一步建模用戶的地理位置偏好和時段偏好。
對于地理位置偏好的建模,嘗試了使用用戶當前所處地理位置的 geohash(一種地理位置編碼,詳見維基百科)/aor_id(蜂窩 ID)作為 Query 來檢索用戶歷史行為中相同 geohash/aor_id 的商家,也根據業務經驗,直接從用戶的歷史行為中將到用戶當前請求位置的距離小于 C 公里的商家全部檢索出來,檢索后序列的平均長度如下表所示,根據離線實驗評估,最終選擇 distance<C km 檢索來建模用戶的地理位置偏好。公里數 C 這個參數是根據業務經驗統計得到的超參,考慮到不同的用戶對于距離的容忍度可能是不一樣的,如何對不同的用戶在不同的情境下對該超參進行調整,還在積極探索中。對于時段偏好的建模嘗試了兩種檢索方式:從用戶的歷史行為中,將與當前請求的 meal_time(根據業務將一天劃分為早餐、午餐、下午茶、晚餐和夜宵)或 hour_of_day(行為小時時段)相同的商家檢索出來。meal_time 劃分的粒度更粗,檢索出來的商家更多,從下表中也可以看到其離線結果更好,成為了建模時段偏好的最終選擇。很明顯,meal_time 檢索和 hour_of_day 檢索也存在泛化性與精確性之間的 trade off 問題。

最后,我們將二級品類 ID 檢索序列(品類偏好)、distance<C km 檢索序列(地理位置偏好)以及 meal_time 檢索序列(時段偏好)全部加入到模型中,并根據各自的平均長度等信息對不同子序列分別進行了不同的最大長度調整,模型結構如下圖 7 所示:
圖7 長序列多路情境檢索
最終,在離線取得了 CTR GAUC+0.30pp,CXR GAUC+0.52pp 的收益,在線上取得了 UV_CXR+0.87%,UV_RPM+0.70%,PV_CTR+0.70%,首購訂單占比+1.29%的收益。可以注意到上述長序列的引入,不僅帶來了效率的提升,還帶來了新穎性的提升,分析發現通過建模用戶更長期的興趣,擴展了模型的視野,不再集中于用戶的短期興趣,能更好地滿足用戶口味“短聚集,長多樣”的特性。
在后續的數據探查中,基于樣本維度統計了二級品類 ID 檢索序列、meal_time 檢索序列和 distance<C km 檢索序列的重合度情況。從下表可以看到,三者各自檢索出的商家重合度確實非常的低,符合建模不同偏好的預期,也解釋了為何三個序列疊加后,效果還是有增長的原因。

然而,當前三路檢索合并的版本,雖然可以對用戶的品類偏好、地理位置偏好和時段偏好進行有效的建模,但還是存在兩個比較明顯的缺陷。首先,各路檢索序列中還是存在冗余信息,并且需要分別建模三個序列,帶來的性能壓力較大。其次,將情境割裂成一個個單獨的維度進行建模,無法建模他們之間的聯系,更真實準確的情況應該是對用戶所處情境的不同維度進行統一建模。針對這兩個問題,我們正在情境 Cube 的概念下,開展通過一個序列統一建模用戶所處情境偏好的探索工作。
下文繼續介紹長序列工程優化實踐。長序列模型會為線上服務帶來一系列工程挑戰,序列長度變長極大增加了服務時數據傳輸成本與模型推理成本,需要針對這兩個方面做專門優化。
數據傳輸優化:重復檢索信息壓縮。以 tag_id 檢索為例,由于方案中采用的是較為粗的品類劃分,tag_id 本身數量是非常有限,一次請求 batch 內候選商家所對應的 tag_id 具有非常多的重復。基于以上分析,在同一請求內檢索時,只保留不重復的 tag_id 子序列特征,最終將整體傳輸數據壓縮為之前的 1/7 左右,優化效果十分明顯。
模型推理優化:
1)Embedding 從內存轉移到 GPU 顯存存儲。在模型計算模塊,會根據模型輸入特征在 CPU 哈希表中查詢 Embedding,查詢優化的核心是解決 CPU 哈希表查詢效率低的問題,查詢效率低主要是哈希沖突多,查詢線程少造成的。為從根本上解決以上問題,我們將 CPU 哈希表升級為 GPU 哈希表,將模型 Embedding 從內存轉移到 GPU 顯存存儲,并直接在 GPU 上進行查詢操作。GPU 哈希表做了數據重排等優化,大量降低了哈希沖突時的數據探測次數,且利用 GPU 提供的更多線程,在發生哈希沖突時能夠做到更快查詢。壓測表明,通過以上優化,可以利用更短的時間處理更多的查詢,查詢問題得到有效解決。
2)用戶序列計算圖折疊。長序列模塊的加入,給線上計算帶來了巨大壓力,因此考慮對線上計算圖進行優化。由于一次請求中,在 Batch 內部,用戶部分序列輸入都是一致的,原始計算圖對用戶序列做投影時,會產生大量重復冗余計算。基于這一點,我們在請求模型服務時將用戶側序列的 id 查詢模塊以及投影計算在計算圖中進行折疊,如圖 8 所示,把用戶側特征 batch size 先縮小至 1,只計算一次,然后與候選商家計算 attention 時再進行展開,通過計算圖折疊,極大減小了線上序列部分帶來的巨大計算開銷。 
圖8 用戶序列計算圖折疊3.2 情境化多專家網絡
大部分工業界的 CTR 預估模型遵循傳統 Embedding&MLP 范式,將用戶興趣向量、商家/商品表征和其他特征作為輸入,通過樸素的多層神經網絡學習特征、樣本、標簽之間的關系。另有學術界一些熟知的工作如 PNN5、DeepFM6、xDeepFM7、DCN8等方法,都在努力建模特征間共現關系、特征的特異性、特征的層次結構關系、樣本之間的關系等信息,并且在公開數據集和部分特定工業場景下取得顯著效果。而在 NLP 領域,2018 年 10 月,Google 發布 BERT9模型,刷新了 11 個 NLP 任務的最好水平,由此開啟了 NLP“大煉模型”時代,引爆了業界的研究熱潮。
專家混合(Mixture of Experts, MOE)模型被證明是通往容量更大、性能更強大的機器學習模型的有效途徑。MOE 是基于分而治之的原則建立的,其中問題空間在幾個神經網絡專家之間劃分,由門控網絡進行監督。在 MOE 基礎上,MMOE10提出一種新穎的多任務學習方法,在所有任務中共享專家子模型,使 MOE 結構適應多任務學習,在 Google 的大規模內容推薦系統取得顯著收益。
受啟發于 MOE,我們首先探索不同入口下的多專家網絡模型,然后利用 MMOE 將入口情境拓展到城市、時段等多種復雜情景中去,讓各個專家專注于學習細分情境下的數據分布,學習不同情境下用戶興趣,最后探索稀疏化 MMOE 建模,在保持推理性能不變的前提下進一步提升模型效果。采用情境化多專家網絡還可能導致情境多維叉乘造成 Expert 海量的問題,對于這一位問題,在某些具有明確差異的情境,比如入口,我們會采用一個 Expert 對應一個入口的方案,對于不特別明確的復雜情境,例如時間交叉地點等,我們會采用固定數量 Expert 對海量 Expert 降維,然后利用 Gate 網絡做自動化學習。美團外賣涵蓋多個推薦入口,包括首頁 Feed(主要流量入口),以及美食“金剛”、甜點“金剛”、夜宵“金剛”、下午茶等子頻道。對于不同入口情境建模存在以下挑戰:
各個推薦入口在流量大小、用戶行為豐富程度、商家曝光量存在明顯差異,多個小入口的數據量不足首頁 Feed 的 10%,導致樣本積累量有限,難以使用這些數據訓練出高精度的模型。
用戶在各個入口下的行為存在互斥關系。例如,用戶不會在同一時刻在不同頻道同時下單,因此簡單地將每個入口看作一個任務作為學習目標的傳統多任務建模范式,難以取得較好的模型精度。
為滿足用戶的體驗,不同頻道會有相應的品類規則、時段規則、以及特殊的業務扶持規則,這使得各頻道推薦入口間有不同程度的差異與共性。不同推薦入口在用戶與商家兩方面存在交集的同時,在用戶行為、商家分布等方面也存在不小差異,比如首頁 Feed 會包含全部商家品類,甜點飲品主要包含奶茶、咖啡、甜點等品類商家。因此,模型如何建模出各頻道間的共性與差異性,同時動態地建模各個頻道間的關系變得尤為重要。 
圖9 外賣推薦基于多入口多任務學習網絡結構 AutoAdapt 示意圖我們通過實現多入口統一建模(AutoAdapt)解決以上挑戰。具體的,設計了如圖 9 所示的多入口情境專家模型,在模型結構的特征 Embedding 和多任務 Tower 之間構建了 Share Expert 學習全部入口的信息,該 Expert 將始終處于激活狀態;為了捕捉多入口之間的區別與聯系,構建了 Domain Extract 模塊,為每個入口設置一個由 MLP 組成的專家網絡(Expert)。 為了使每個入口對應的 Expert 可以充分建模私有的表達,在模型訓練和推理時,對于入口 i 的樣本或請求,根據入口 ID 激活其對應 Expert Di,該 Expert 產生的輸出將 Xi 將直接輸入到任務對應的 Tower 當中。 對于一個入口的樣本或請求,在保證該入口的 Expert 一定會被激活的情況下,以一定概率去激活其它入口的 Expert,并對這些 Expert 的輸出做 Pooling 抽取,從而有效地利用到其它入口的知識。很顯然,入口間的相似程度、同一樣本對不同入口知識的依賴程度都是不同的,為此增加了一個 Query-Key Attention 模塊去做動態概率激活。如圖 9 中 Domain Extract 模塊所示,對入口 i 的樣本或請求,將其自身的 Expert 的輸出 Xi 作為 Query,而將其在其它入口 Expert 的輸出作為 Key,Query 和 Key 間的相似性 Attention 得分即為對應 Expert 的激活概率,使用經過 Softmax 歸一化后的激活概率對各個 Expert 的輸出做加權聚合得到表征 Xagg,該表征也將輸入給預估任務對應的 Tower。
離線實驗上,我們采用全入口數據混合訓練+入口 ID 特征的模型作為基線,嘗試了 Multi-Task(為各個入口分別設置一個預估任務)、MMOE、STAR11等方法。由于用戶在外賣各入口的消費行為存在互斥關系,且小入口的行為樣本較為稀疏,因此直接采用多任務的方式效果較差,而引入 MMOE 會有一定的提升。與此同時,對比阿里的 STAR,該方法中各個入口擁有自己的獨立網絡參數,但未能捕獲各個入口間的關系,在外賣推薦場景中提升有限。相比之下,AutoAdapt 在主入口和小的入口上都實現了較大的提升。

為了對 Attention 產生的激活權重做可視化分析,具體的,我們在評估集上中對 Attention 的結果根據不同入口 Query 做分組統計求平均,如下圖 10 所示,縱軸代表作為 Query 的入口、橫軸代表作為 Key 的入口,圖中每個點的值代表某一入口對作為 Query-Key 情況下 Attention score 的平均值。例如,第二行代表著美食金剛(D1)作為 Query 時,對其它入口 Expert 的平均激活概率,發現模型可以學習到符合認知的入口相似關系,例如,當下午茶樣本(D7)作為 Query 時,它和甜點飲品(D2)Expert 的平均激活概率為 0.3,明顯高于對其它入口的激活概率,另外美食金剛(D1)和正餐頻道(D5)同樣有著很高的相關性。
圖10 不同入口 Attention 權重熱力圖該解決方案不僅實現了首頁 Feed、美食“金剛”、甜點飲品等流量入口間模型的統一,同時也為各個入口帶來了顯著的離線指標收益和線上指標的增長。經過聯合建模,小入口可以有效利用到首頁 Feed 的豐富信息,使得線上和離線效果提升顯著,此外,對于首頁 Feed,該方案同樣有顯著的效果提升,不同場景線上收益如下表所示:

3.2.2 情境化稠密 MMOE
專家網絡是情境化建模的主要手段之一,模型可以根據不同情境自動選擇需要激活的參數參與推理達到整體更高的精度水平。我們發現在 Share-Bottom CTR/CXR 多目標結構基礎上,引入 MMOE 結構可以帶來顯著的離線 CTR/CXR AUC 收益(如下表所示),可以發現當 Experts 數量達到 64 時,CTR GAUC 和 CXR GAUC 分別有 0.3pp 與 0.4pp 左右的提升。

引入大數量級 Experts 的 MMOE 結構可帶來較顯著的離線收益,但同時也會相應帶來離線訓練以及線上服務成本的增加,需要做效果與效率之間的權衡。我們在保持一定離線訓練時長與在線 Latency 約束下,選擇了 4Experts MMOE 版本作為新的基線模型,并做詳細的探索,進行較為細致的優化,包括:
引入殘差連接:受 Switch Transformer12啟發,引入 embedding layer 與 Experts 輸出層之間的殘差連接,用來緩解梯度消失,離線 CXR GAUC+0.1pp。 MMOE 的 Gate 優化:嘗試在 MMOE 的 Gate 的 embedding layer 中只輸入時段、城市等強情境特征(即基于情境來為每個任務選擇 Expert),并在實驗中發現相較于在 Gate 中使用所有特征,這種只用場景強相關特征來構建 Gate 的方式反而會取得一定離線 GAUC 提升,離線 CXR GAUC+0.1pp。 非線形激活:多項 NLP 工作如 B Zoph13、Chen14等指出,采用非線形激活可以進一步提升大規模模型效果,我們利用 Gelu 替換 leaky relu 激活函數,離線 CXR GAUC+0.11pp。最終,情境化稠密 MMOE 在線取得了 UV_RPM+0.75%,PV_CTR+0.89%,曝光新穎性+1.51%的收益。
在探索得到稠密 MMOE 最優版本之后,我們開始對稀疏 MMOE 模型進行探索。借鑒 Google 提出的 Sparse Expert Model,如 Switch Transformer 等,我們采用 Top K MMOE 方法進行嘗試。其核心思想在于,每條樣本根據 Gate 的計算結果,從所有 N 個 Experts 的輸出中只選取 K 個(K<<N)進行后續計算。下表實驗結果表明,采用 32Experts 對比 4Experts 在不同入口離線指標均有明顯提升,同時 Top K MMOE(32Experts 選 4)與 FLOPs 相同 MMOE 4Experts 相比在不同入口都具有明顯的優勢,效果接近 MMOE 32experts。

繼續分析稀疏 MMOE 是否能學到各個切片下的共性與差異性,對 MMOE 和 Top K MMOE 的 CTR 任務在各個 domain 上的 Expert Gate 分布進行可視化。可以發現,稀疏 Top-K 方法相比稠密方法,更能學到根據不同入口、不同時段、不同任務來選擇不同的 Expert 進行 serving。例如,針對不同的時段情境,圖 11 中下午茶入口與早餐入口的分布明顯不同、圖 12 中首頁入口的夜宵時段與非夜宵時段的分布明顯不同;針對模型中不同的任務目標,如圖 13 中 CTR/CXR 任務的分布也明顯不同,這些都與實際中的業務認知相符,表明稀疏 MMOE 中不同專家學習到了不同情境、不同任務之間的差異性。
圖11 Top K MMOE中Expert Gate在不同入口上的分布的可視化分析
圖12 Top K MMOE中Expert Gate在首頁不同時段分布的可視化分析
圖13 Top K MMOE中Expert Gate在不同任務上的分布可視化分析
得益于 Cube 概念,我們可以持續探索更多情境,以及優化該情境下的冷啟動問題。例如用戶處于異地時,可以通過比較情景 Cube 的相似性,找到近似情景下有較成熟行為的用戶,并將其興趣偏好及其行為遷移過來(實現中為每個情景建立一個活躍用戶池),達到緩解冷啟動階段用戶體驗差的問題。
此外,在情境化長序列檢索中,往往存在單路檢索信息較少,整體檢索線上性能差的問題,我們考慮探索新的多屬性檢索機制將多路檢索合并為單路檢索,在提高檢索速度的同時擴充檢索信息的豐富程度來進一步提升模型效果;在稀疏專家網絡上,我們發現推薦模型存在嚴重的參數飽和現象:當稠密參數增加到一定程度時,模型效果提升會快速衰減。因此,通過簡單擴充專家數量來提升效果是不可取的,在未來將考慮結合 AutoML、交叉網絡等手段提高參數利用效率,尋求在推薦場景落地稀疏專家網絡的工業級解決方案。