美團外賣推薦情境化智能流量分發的實踐與探索

語言: CN / TW / HK

美團外賣推薦團隊在推薦算法的長期落地實踐中,針對外賣業務情境化特點對排序模型進行深入探索與優化。本文介紹了面向情境化建模的“情境細分+統一模型”建模思路,通過用户行為序列建模以及專家網絡兩個模塊的優化,實現不同場景間對信息獨有性的刻畫和信息共性的相互傳遞,進而提升全部流量效率。

1. 引言

美團外賣推薦服務了數億用户,通過持續優化用户體驗和流量分發精準性,為用户提供品質生活,“幫大家吃得更好,生活更好”。對於“用户”,大家可能會有不同的理解,通常的理解是用户即是自然人。業界主要的推薦場景,如淘寶首頁猜你喜歡、抖音快手 Feeds 流推薦等大部分也是這麼認為的,在這些電商、短視頻等業務中,用户無論何時何地使用推薦服務,他們的需求是大體統一的,商品、信息、視頻等供給也是一致的。

但實際上,在美團外賣場景下,用户不僅是自然人,更是需求的集合。需求是與情境依存的,也就是有情境就有需求。美團外賣在不同的時間、空間以及其他更廣義的環境下,用户需求、商家供給等都有顯著區別。因此,本地化、餐飲習慣、即時履約共同構建了美團外賣多種多樣的情境,進而衍生出用户多種多樣的需求集合,推薦算法情境化可以幫助算法更好地理解並滿足不同情境下用户需求。

2. 問題與挑戰

外賣場景具有很強的地理位置和就餐文化約束,用户在不同地點(如公司、住所)的需求有較大差異。而且,所處時間也是決定用户下單的一個關鍵因素。以北京某地區高消費用户為例,工作日和週末在成單品類、成單價格、成單商家配送距離上有着明顯的不同。如下圖 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 所示:

圖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 內的情境,從用户超長的歷史行為序列中檢索出的與當次訪問情境最相關性的用户行為,進而捕獲更為精準的用户興趣。

3.1.1 細粒度行為特徵

不同於電商中的商品推薦形式,美團外賣推薦是以商家為主體,用户從進入商家到最終下單過程中具有更加豐富的細粒度行為,通過捕捉用户在商家中的細粒度行為,可以精細感知到用户差異化偏好,如注重品質商家的用户會更多查看商家/商品描述和評論,而折扣敏感度高的用户則會查看折扣信息、領取優惠券等。

工業實踐中,用户行為序列特徵往往包含商家/商品 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%的收益。

| 優化方案 | CTR AUC | CXR AUC | CTR GAUC | CXR GAUC | | :--------------------------: | ------: | ------: | -------: | -------: | | 序列引入 Micro-Behavior 信息 | +0.69pp | +0.54pp | +0.10pp | +0.39pp |

離在線實驗效果表明引入 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 的信息越完善,模型對於用户興趣的理解越是充分,用户最終成單的商家也是能夠得以排名靠前。

3.1.2 長序列多路情境檢索

美團外賣上線至今,已經積累了豐富的用户行為數據。將如此豐富的行為信息引入到模型中,是近期工業界和學術界的熱門方向,我們在該方向上也進行了一系列探索。

最初,我們直接將近三年的點擊行為直接引入到模型中來,發現離線效果提升顯著,但是帶來的訓練和推理的壓力不可承受。在此基礎上,借鑑了 SIM4,將候選商家的品類 ID 當作 Query,先從用户的行為序列中檢索出相同品類的商家,再進行興趣建模,離線取得了不錯的收益。

具體的,嘗試過使用二級品類和葉子品類來分別做檢索,在檢索後根據分位點進行最大長度截斷的情況下,二級品類檢索出來的序列平均長度大約為 X,而葉子品類因為品類劃分過細,檢索出來的序列平均長度大幅減少。根據離線實驗評估,最終選擇了使用二級品類進行檢索,在離線取得了 CXR GAUC+0.30pp 的效果。對於檢索條件中,像二級品類和葉子品類這種泛化性與精確性之間的 trade off,我們目前正在進行更進一步的探索。

為了進一步提升模型的效果,考慮到用户興趣建模從 DIN 發展到 SIM,都是根據候選商家、商品的屬性,從用户的行為歷史中提取對該候選商家、商品的興趣,這在傳統電商場景下是行的通的,因為用户對某一商家、商品的興趣基本不會隨着他所處位置、所處時段改變(用户要買手機殼,不會因為他在家還是在公司有改變,也不會因為他的購物時段是在早上還是晚上而改變)。但是餐飲外賣相較於傳統電商,正如前面的問題與挑戰中提到的,其鮮明的 LBS 和餐飲文化特色構成多種多樣的情境,用户在不同的情境下對於不同的商家、商品的偏好是不一樣的,是會變化的。因此,除了建模品類偏好外,還要進一步建模用户的地理位置偏好和時段偏好。

  • 對於地理位置偏好的建模,嘗試了使用用户當前所處地理位置的 geohash(一種地理位置編碼,詳見維基百科)/aor_id(蜂窩 ID)作為 Query 來檢索用户歷史行為中相同 geohash/aor_id 的商家,也根據業務經驗,直接從用户的歷史行為中將到用户當前請求位置的距離小於 C 公里的商家全部檢索出來,檢索後序列的平均長度如下表 1 所示,根據離線實驗評估,最終選擇 distance<C km 檢索來建模用户的地理位置偏好。公里數 C 這個參數是根據業務經驗統計得到的超參,考慮到不同的用户對於距離的容忍度可能是不一樣的,如何對不同的用户在不同的情境下對該超參進行調整,還在積極探索中。
  • 對於時段偏好的建模嘗試了兩種檢索方式:從用户的歷史行為中,將與當前請求的 meal_time(根據業務將一天劃分為早餐、午餐、下午茶、晚餐和夜宵)或 hour_of_day(行為小時時段)相同的商家檢索出來。meal_time 劃分的粒度更粗,檢索出來的商家更多,從下表中也可以看到其離線結果更好,成為了建模時段偏好的最終選擇。很明顯,meal_time 檢索和 hour_of_day 檢索也存在泛化性與精確性之間的 trade off 問題。

| 偏好類型 | 説明 | 檢索後序列平均長度 | CTR GAUC | CXR GAUC | | :------: | -----------------: | -----------------: | -------: | -------: | | 品類 | 二級品類 ID 檢索 | X | +0.10pp | +0.30pp | | 品類 | 葉子品類 ID 檢索 | X-65 | +0.05pp | +0.17pp | | 地理位置 | distance<C km 檢索 | Y | +0.08pp | +0.29pp | | 地理位置 | aor_id 檢索 | Y-52 | +0.05pp | +0.21pp | | 地理位置 | geohash 檢索 | Y-43 | +0.07pp | +0.23pp | | 時段 | meal_time 檢索 | Z | +0.12pp | +0.24pp | | 時段 | hour_of_day 檢索 | Z-41 | +0.07pp | +0.19pp |

最後,我們將二級品類 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 檢索序列的重合度情況。從下表可以看到,三者各自檢索出的商家重合度確實非常的低,符合建模不同偏好的預期,也解釋了為何三個序列疊加後,效果還是有增長的原因。

| 比較序列 | 重合度(=重合商家個數佔各自檢索後序列長度的比例) | | :------------------------------------: | :------------------------------------------------: | | distance<C km 檢索 vs 二級品類 ID 檢索 | 9.6%,12.5% | | distance<C km 檢索 vs meal_time 檢索 | 11.5%,20.3% | | 二級品類 ID 檢索 vs meal_time 檢索 | 13.75%,18.6% |

然而,當前三路檢索合並的版本,雖然可以對用户的品類偏好、地理位置偏好和時段偏好進行有效的建模,但還是存在兩個比較明顯的缺陷。首先,各路檢索序列中還是存在宂餘信息,並且需要分別建模三個序列,帶來的性能壓力較大。其次,將情境割裂成一個個單獨的維度進行建模,無法建模他們之間的聯繫,更真實準確的情況應該是對用户所處情境的不同維度進行統一建模。針對這兩個問題,我們正在情境 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 網絡做自動化學習。

3.2.1 多入口情境建模

美團外賣涵蓋多個推薦入口,包括首頁 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 在主入口和小的入口上都實現了較大的提升。

| 方法/不同入口 CXR GAUC 提升 | 首頁 Feed | domain 1 | domain 2 | domain 3 | domain 4 | domain 5 | domain 6 | domain 7 | | :-------------------------: | --------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | | Multi-Task | +0.10pp | +0.01pp | +0.15pp | +0.24pp | +0.55pp | +0.32pp | +0.60pp | +0.79pp | | MMOE | +0.27pp | +0.13pp | +0.22pp | +0.70pp | +0.61pp | +0.41pp | +0.84pp | +0.90pp | | STAR | +0.32pp | +0.11pp | +0.26pp | +0.73pp | +0.66pp | +0.40pp | +0.81pp | +1.05pp | | AutoAdapt | +0.38pp | +0.19pp | +0.33pp | +0.82pp | +0.79pp | +0.50pp | +0.95pp | +1.27pp |

為了對 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,該方案同樣有顯著的效果提升,不同場景線上收益如下表所示:

| 方法/不同入口 UV_RPM 提升 | 首頁 Feed | domain 1 | domain 2 | domain 3 | domain 4 | domain 5 | domain 6 | domain 7 | | :-----------------------: | --------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | | 在線 UV_RPM | +0.97% | +0.62% | +0.77% | +1.61% | +0.99% | +1.06% | +1.28% | +1.43% |

3.2.2 情境化稠密 MMOE

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

| 實驗/對比 Share-Bottom 提升 | CTR AUC | CTR GAUC | CXR AUC | CXR GAUC | | :-------------------------: | ------: | -------: | ------: | -------: | | MMOE(4Experts) | +0.23pp | +0.12pp | +0.14pp | +0.22pp | | MMOE(8Experts) | +0.30pp | +0.24pp | +0.15pp | +0.28pp | | MMOE(16Experts) | +0.37pp | +0.16pp | +0.21pp | +0.37pp | | MMOE(32Experts) | +0.42pp | +0.30pp | +0.25pp | +0.40pp | | MMOE(64Experts) | +0.44pp | +0.41pp | +0.23pp | +0.48pp |

引入大數量級 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% 的收益。

3.2.3 情境化稀疏 MMOE

在探索得到稠密 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。

| 方法/不同入口 CXR GAUC 提升 | 首頁 Feed | domain2 | domain 3 | domain6 | domain 7 | | :--------------------------: | --------: | ------: | -------: | ------: | -------: | | MMOE(4Experts) | +0.18pp | +0.13pp | +0.25pp | +0.41pp | -0.37pp | | MMOE(32Experts) | +0.33pp | +0.29pp | +0.37pp | +0.46pp | -0.03pp | | Top K MMOE(32Experts 選 4) | +0.29pp | +0.26pp | +0.38pp | +0.53pp | +0.19pp |

繼續分析稀疏 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在不同任務上的分佈可視化分析

4. 總結和展望

得益於 Cube 概念,我們可以持續探索更多情境,以及優化該情境下的冷啟動問題。例如用户處於異地時,可以通過比較情景 Cube 的相似性,找到近似情景下有較成熟行為的用户,並將其興趣偏好及其行為遷移過來(實現中為每個情景建立一個活躍用户池),達到緩解冷啟動階段用户體驗差的問題。

此外,在情境化長序列檢索中,往往存在單路檢索信息較少,整體檢索線上性能差的問題,我們考慮探索新的多屬性檢索機制將多路檢索合併為單路檢索,在提高檢索速度的同時擴充檢索信息的豐富程度來進一步提升模型效果;在稀疏專家網絡上,我們發現推薦模型存在嚴重的參數飽和現象:當稠密參數增加到一定程度時,模型效果提升會快速衰減。因此,通過簡單擴充專家數量來提升效果是不可取的,在未來將考慮結合 AutoML、交叉網絡等手段提高參數利用效率,尋求在推薦場景落地稀疏專家網絡的工業級解決方案。

5. 本文作者

瑞東、俊潔、樂然、覃禹、秀峯、王超、張鵬、尹斌、北海等,均來自到家事業羣/到家研發平台/搜索推薦技術部。

6. 參考文獻

  • [1] Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction. SIGKDD 2018.
  • [2] Zhou G, Mou N, Fan Y, et al. Deep interest evolution network for click-through rate prediction. AAAI 2019.
  • [3] Pi Q, Bian W, Zhou G, et al. Practice on long sequential user behavior modeling for click-through rate prediction. SIGKDD 2019.
  • [4] Pi Q, Zhou G, Zhang Y, et al. Search-based user interest modeling with lifelong sequential behavior data for click-through rate prediction. CIKM 2020.
  • [5] Qu Y, Cai H, Ren K, et al. Product-based neural networks for user response prediction. ICDM 2016.
  • [6] Guo H, Tang R, Ye Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction. arXiv:1703.04247, 2017.
  • [7] Jianxun Lian, et al. xdeepfm: Combining explicit and implicit feature interactions for recommender systems. KDD 2018.
  • [8] Wang R, Shivanna R, Cheng D, et al. Dcn v2: Improved deep & cross network and practical lessons for web-scale learning to rank systems. WWW 2021.
  • [9] Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv:1810.04805, 2018.
  • [10] Ma J, Zhao Z, Yi X, et al. Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-experts. KDD 2018.
  • [11] Sheng X R, Zhao L, Zhou G, et al. One model to serve all: Star topology adaptive recommender for multi-domain ctr prediction. CIKM 2021.
  • [12] Fedus W, Zoph B, Shazeer N. Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. arXiv:2101.03961, 2021.
  • [13] Zoph B, Bello I, Kumar S, et al. Designing effective sparse expert models. arXiv 2202.08906, 2022.
  • [14] Chen Z, Deng H Wu Y, Gu Q. Towards Understanding Mixture of Experts in Deep Learning. arXiv:2208.02813, 2022.
  • [15] Zhou M, Ding Z, Tang J, et al. Micro behaviors: A new perspective in e-commerce recommender systems. WSDM 2018.
  • [16] Zou X, Hu Z, Zhao Y, et al. Automatic Expert Selection for Multi-Scenario and Multi-Task Search. SIGIR 2022.
  • [17] Bai T, Xiao Y, Wu B, et al. A Contrastive Sharing Model for Multi-Task Recommendation. WWW 2022

閲讀美團技術團隊更多技術文章合集

前端 | 算法 | 後端 | 數據 | 安全 | 運維 | iOS | Android | 測試

| 在公眾號菜單欄對話框回覆【2021年貨】、【2020年貨】、【2019年貨】、【2018年貨】、【2017年貨】等關鍵詞,可查看美團技術團隊歷年技術文章合集。

| 本文系美團技術團隊出品,著作權歸屬美團。歡迎出於分享和交流等非商業目的轉載或使用本文內容,敬請註明“內容轉載自美團技術團隊”。本文未經許可,不得進行商業性轉載或者使用。任何商用行為,請發送郵件至[email protected]申請授權。