導讀:個性化投放的"無人駕駛"平臺何以自動化支援上千個場景的千人千面投放?商家、運營、小二,我們如何做到極致賦能和提效?面對旅行場景下使用者需求低頻、行為稀疏,特別是在營銷活動大促期間,使用者量迅速增長,使用者的冷啟動問題更加嚴峻,如何提高冷啟動使用者的推薦效果成為關鍵。另外,面對旅行場景下的豐富多樣的的貨品需求依賴關係,我們如何來組織和呈現給使用者?阿里飛豬個性化推薦團隊將透過本文,為大家帶來旅行場景下的個性化營銷平臺揭秘。
主要分享內容包括:
- 背景
- 個性化營銷平臺架構
- 個性化營銷平臺演算法
01
背景介紹
飛豬專注於在旅行場景。個性化營銷團隊承接飛豬日常場景和會場場景,我們會給使用者呈現千人千面的個性化投放。
1. 日常場景
飛豬App上有眾多頁面。上圖最左的首頁介面中,上方是Banner,下方是猜你喜歡。由首頁的入口可以進入各頻道頁,包括周邊遊、飛豬門票、旅遊度假等。各頻道頁有不同的投放模組,這些全都由個性化營銷平臺承接。
2. 會場場景
每年的雙十一、六一八、五一、春運、暑促等會場中,個性化營銷團隊承接各場景模組,包括主會場、全部會場、目的地會場、一些榜單會場等。
3. 挑戰和難點
面對眾多頁面和眾多模組,個性化營銷存在如下幾點挑戰和難點:
- 投放頁面和模組多樣化;
- 投放物料多種異構資料來源;
- 運營幹預配置多樣化;
- 如何統一個性化投放模型來賦能提效。
02
個性化營銷平臺架構
個性化營銷平臺架構的設計主要包括以下內容:
1. 場景抽象
我們首先對上節講到的日常場景和會場場景進行場景抽象,抽象出的場景包括:入口、單Tab場景、多Tab場景、膠囊、主題榜單、單物料投放、多物料混投、LBS推薦、周邊推薦和實時熱榜等。
- 入口:點選後可直接進入商品詳情頁,我們認為不是入口,否則我們定義為入口;
- 單物料投放:只投放一種物料,如只投放商品或只投放酒店;
- 多物料混投:投放頁面可能有出現商品、酒店、門票、POI等多種物料;
- LBS推薦:基於使用者定位的推薦。
2. 功能抽象
個性化營銷平臺可以投放的物料包括:商品、酒店、內容、玩法、目的地、商圈、主題、榜單、店鋪、優惠券、景點、POI等。
投放的功能包括:召回、排序、加權、打散、定坑。
- 召回:常規的個性化召回、弱個性化召回、冷啟動召回、熱門召回、觸發式召回;
- 排序:綜合考慮多個維度,如點選率CTR、成交量GMV、人氣、銷量、距離等;
- 加權:為賦能運營,對爆款或者新品給予一定的扶持;
- 打散:保證呈現結果多樣化;
- 定坑:基於某些營銷目的,針對爆款、熱品給使用者進行定向的前置推送。
3. 鏈路抽象
我們將鏈路抽象為6個模組:產品執行端、選品平臺、場景管理平臺、個性化投放平臺、前端、使用者。
- 產品運營端:運營端基於自身的行業理解,根據規則選品,為選品平臺篩選出商品池 、酒店池等,並配置場景管理平臺的投放規則;
- 選品平臺:生成選品ID後提供給場景管理平臺,將物料採取實時加離線的方式同步到個性化投放平臺;
- 場景管理平臺:將投放規則和選品資料同步到個性化投放平臺,接收個性化投放平臺返回的個性化結果;
- 個性化投放平臺:基於選品池和投放規則,給出千人千面的個性化結果返回場景管理平臺;
- 前端:接收場景管理平臺的結果,將內容呈現給使用者。
4. 個性化投放
本節我們將介紹個性化投放平臺如何構建人貨匹配的個性化方案。圖中從下向上依次是離線和線上處理過程。
- 離線處理會基於使用者歷史行為資料,對使用者和物料進行建模。
- 線上處理首先進行使用者理解和實時的上下文分析,目的是更精準的人貨實時匹配,即個性化召回。物料召回後平臺會進行匹配和排序,匹配和排序之間會有流量調控,目的是對新品 、爆款、尖貨等給予一定的扶持。排序結果會結合運營的投放規則進行更加精準的重排序最終呈現給使用者。
4. 使用者建模
使用者建模過程如圖所示,從最底層往上依次是:實時公共層、實時特徵層、使用者表達層和實時服務層,其中使用者表達層是我們的核心工作。
- 實時公共層:收集使用者行為資料並落盤;
- 實時特徵層:進行特徵預處理,對使用者行為資料進行結構化、標準化和聚合化,對寶貝建立關聯,生成模型需要的特徵表達,如使用者LBS狀態特徵、商品認知標籤特徵、頁面模組統計特徵等;
- 使用者表達層:基於實時特徵層的原始特徵進行加工、提純、聚合,生產使用者的特徵表達,包括:使用者長短期偏好、使用者實時意圖、使用者需求預測、使用者行程、層次主題興趣;
- 實時服務層:平臺在該層對外輸出服務,輸出的功能主要包括:使用者狀態查詢、實時trigger查詢、使用者意圖向量、使用者興趣向量、使用者行程向量、使用者畫像標籤,其中向量為隱式表達,使用者畫像標籤為顯式表達。
5. 全域流量調控
全域流量調控過程如圖所示,從最底層往上依次是:實時流計算中心、調控商品配置中心、 PID調控中臺 。
- 實時流計算中心:監控飛豬、手淘、支付寶三端的實時行為,根據實時日誌流獲取不同物料不同粒度下的實時PV,不同物料包括:不同item 、不同類目、不同目的地、不同賣家;
- 調控商品配置中心:主要由運營來參與,運營在日常或會場中需 要對一些爆款商品做一定的流量扶持,如熱門的目的地,熱門的行業,運營基於曝光流量和實時PV決策 是否給予更多的流量,演算法方也會給予一個相應的建議,比如有的買家銷量高人氣高,演算法會相應的提高權重,運營結合演算法的策略在平臺進行配置;
- PID調控中臺:使用一個改進的PID演算法,透過小時任務更新、分鐘任務更新和誤差計算更新生成能夠影響個性化流量推薦的調控因子,該調控因子作用在個性化場景上,具體來說作用在匹配階段和排序階段,最終影響頁面上物料投放的流量。
整體的流量調控結果反應在實時調控看板上,可以及時做到自適應的反饋和流量調整。
6. 整體方案
整體方案整合如圖所示,從最底層往上依次是:資料後臺、個性化營銷中臺、業務前臺。
- 資料後臺:使用者分層、商品分層、玩法標籤體系、使用者標籤體系、人貨場匹配;
- 個性化營銷中臺:營銷能力矩陣、營銷演算法技術、數字化營銷、全域流量調控
- 業務前臺:基於營銷中臺,提供運營平臺、營銷觸達、平臺導購。
03
個性化營銷平臺演算法
下面我們將介紹飛豬個性化營銷平臺演算法:
- 使用者session理解
- 使用者冷啟動技術
- 旅遊玩法標籤體系建設
1. 使用者session理解
① 背景
旅行場景下,使用者興趣可能來源於多方面:使用者基礎屬性、使用者群體屬性、使用者實時興趣、使用者週期興趣、使用者長期興趣。
- 使用者基礎屬性:年齡、性別、購買力、地理屬性等,其中地理屬性包括使用者所在地是幾線城市,使用者是在老家還是新的工作地等。
- 使用者群體:使用者是白領或學生,使用者朋友圈的組成等。
本次我們會重點介紹使用者實時興趣的挖掘,也就是使用者session理解。
使用者session 中會有以下行為:首頁、搜尋、商品頁、收藏、加購、購買。完整的session從進入首頁直到完成購買,期間可能發生若干次搜尋、商品頁、收藏、加購行為。但是常見session並不完整,往往未完成購買就會退出APP。針對不同的session,我們會進行session理解。
② 使用者行為網路抽象
使用者行為session中產生一次點選Item的行為,有很多附加關係可以利用,這種附加關係可以用異構圖的形式表現[1]。
- 使用者側可以構成一張關係圖:提交Query 、加購商品,收藏景點等,使用者還會有一些自身的屬性 ,如年齡性別等。
- Item側也可以構成關係圖:以門票為例,門票即一個景點,景點旁可能有酒店、景點本身有一些玩法元素,景點可能有專車接送之類的服務元素。
③ 使用者行為構建圖網路
我們根據上節的抽象,構建了使用者行為網路。具體來說,我們將使用者到商品的行為抽象為一個網路結構圖,採取了GraphSAGE[2]的做法,訓練主要節點的Embedding。主要節點有使用者、商品、POI。使用者本身有一些屬性,如年齡、LBS、購買力等也會作為附加節點和主要節點建立邊。
- 訓練評測:MRR接近0.96,loss低於0.15。
- 離線評測:取HIT@20這個指標,User命中率不高,可能因為User鏈特別大,整體資料稀疏導致。對Item和POI的命中率都較高,Item約為 0.88,POI約為0.65。
④ 使用者行為session表達
基於上節介紹的使用者行為session中的節點向量表達,我們進而構建使用者行為session的表達[3]。我們首先檢索與當前session有協同資訊的鄰居session。鄰居檢索:根據當前session有哪些item,粗篩出有相同item的session,再根據最大覆蓋原則選出自身有多個item和當前session相同的鄰居session。
當前session的透過long-term加short-term方式學習到當前表達:
- long-term:attention機制
- short-term:當前session最近一次行為過的item的節點的embedding
- 由long-term和short-term一起經過一個全連線生成當前表達
鄰居session透過global encoder加local encoder方式學習鄰居表達:
- global encoder:每個鄰居session透過GRU生成表達
- local encoder:所有鄰居session做一個聚合
鄰居表達透過Guided Attention with Time-aware機制經當前表達指導提出取協同表達後,當前表達和協同表達透過Co Attention機制學習到最終表達。離線在item集上評測,HIT@20 約為0.6,POI上約為0.49。
2. 使用者冷啟動技術
① 背景
我們將近最近3月沒有任何行為的使用者劃分為冷啟動使用者 ,冷啟動使用者在飛豬、淘寶、支付寶三端佔比都很高。使用者的行為稀疏或者無任何行為,使得推薦系統無法有效捕捉到使用者的真實興趣,特別是在大促期間,使用者量迅速增長,使用者的冷啟動問題更加嚴峻。
② 基於層次主題知識的召回
營銷場景上沉澱了⼤量運營根據行業知識精⼼選品後的資料域,這些資料域劃分的topic涉及多個維度 ( 類⽬、玩法、POI、⽬的地、銷量、熱度等 ) 且具有層次性,不同層次代表了⽤戶不同的購買心智。
以圖中右側為例,從level 1中可以獲得使用者對於類目的偏好,從level2中可以獲得使用者對於不同玩法的偏好。我們在不同層次學習使用者不同的購買心智,透過不同資料域的偏好去對映得到使用者可能偏好的一些寶貝。
航旅背景下,目的地是重點考慮的維度。同一區域的使用者,朋友、親屬關係往往比較集中,分佈比較一致,同⼀區域的⽤戶偏好具有⼀定相似性這一現象更加明顯。
我們據此提出U2Htopic2I:
- 選取一批飛豬的活躍使用者 ,根據活躍使用者的點選、收藏、加購行為得出一個使用者對層次主題的偏好打分,考慮到航旅背景的特點,我們對使用者的行為加入了時間衰減因子,最終得到一個偏好主題庫;
- 將冷啟動使用者的區域性對映到偏好主題庫上,從而召回使用者可能偏好的主題,以及偏好主題下對應的寶貝資訊。
U2Htopic2I存在的問題:
- 時間衰減過於嚴格,導致近期⾏為的topic權重過⼤,並且該權重很難人工去調節;
- 對於冷啟動⽤戶的topic挖掘維度過於單 ⼀,沒有充分利⽤到⽤戶的屬性資訊。
我們據此提出Attr2Htopic2I:透過模型去學習⽤戶屬性到topic偏好的對映關係,對⾏為稀疏的⽤戶或⽆⾏為⽤戶, 根據⽤戶的屬性資訊關聯到⽤戶的偏好。
Attr2Htopic2I同樣是選取一批飛豬活躍使用者,與U2Htopic2I不同在於,透過模型去預測歷史活躍使用者對層次主題的偏好。透過冷啟動使用者的屬性集,將其對映到偏好主題庫上,從而召回使用者可能感興趣的寶貝。
使用者側我們提取使用者的靜態資訊,因為對冷啟動使用者而言,我們只能利用到使用者的基本屬性,如年齡、性別、區域資訊、購買力等。層次主題一側我們提取層次主題的標籤資訊,如人群、品牌、目的地區域、玩法等。
使用者歷史行為過的層次主題的資料量極大,為使模型更好地學習使用者的層次主題偏好我們採取如下方式構造樣本空間,增大正負樣本的差異性:
- 正樣本:使用者最近行為過,且點選率比較高的層次主題;
- 負樣本:最近曝光較多,但使用者沒有產生點選的樣本。
線上測試結果顯示,U2Htopic2I在淘寶端帶來了2個點的提升,Attr2Htopic2I在U2Htopic2I的基礎上,在淘寶端帶來4個點的提升,效果明顯。
③ 基於使用者跨域對映的召回
背景:三端稀疏⾏為⽤戶佔⽐33.9% ( fliggy )、69.0% ( taobao )、65.8% ( alipay ),僅採⽤飛豬本場景資料難以覆蓋這麼⼤⽐例的冷啟動⽤戶。
思想:跨領域特徵對映,將⽤戶在淘寶的⾏為特徵向量對映到飛豬⾏為特徵向量。
資料有效性和想法可行性:
- 飛豬使用者和手淘使用者的交集比例很高;
- 手淘端的部分寶貝行為和航旅寶貝具有一定的關聯性,如一個使用者近期在手淘端有沙灘鞋、沙灘褲、泳裝等行為,我們認為該使用者可能有海濱度假的需求,當他來到飛豬端時,我們就給他投放相應的寶貝。
模型構造:
透過在淘寶和飛豬兩端⾏為都豐富的⽤戶,學習⼀個user embedding對映函式,將三個領域間的知識遷移[4]。使用者在淘寶端的使用者畫像,除了使用者的點選收藏加購外,我們引入了對於航旅場景下非常重要的使用者LBS行為序列資訊。使用者飛豬端行為序列生成飛豬側向量表達,使用者在手淘端的行為序列、LBS屬性和使用者屬性資訊生成手淘端向量表達。上述兩個表達共同輸入一個兩層的全連線網路,學習到user的embedding。
訓練時,我們選取在飛豬端和淘寶端都有行為的交集使用者。線上召回時,我們把冷啟動使用者在手淘端的行為序列、使用者屬性和LBS資訊輸入網路,得到一個隱藏層的embedding,作為使用者在飛豬端的使用者畫像。根據隱藏層的embedding,計算其與寶貝embedding向量的相似度,召回飛豬端與其相似度最高的top@N的寶貝。
上面的方法在飛豬端帶來1到2個百分點的uctr提升,在淘寶端帶來了2個百分點的uctr提升。但是同時也存在以下幾個問題:
- 淘寶域知識使⽤不充分:忽視了⽤戶的群體特性對⽤戶的影響,以及商品之間的共性;
- 遷移過程粗糙:淘寶域的⽤戶特徵與⻜飛豬域⽤戶特徵空間不⼀致,直接對映帶來的gap較⼤;
- 建模侷限性:訓練損失與線上召回⽅式⼀致性較低;
- ⽤戶侷限性:⽤戶必須在淘寶端有⾏為。
④ 基於異構關係的冷啟動建模
我們將使用者與使用者、使用者與寶貝、寶貝與寶貝之間這種不同的關係稱為異構關係[5]。
旅行具有群體性:
- 群體⽤戶與⽬標⽤戶具有⼀定的相似性,群體⾏為代表了⽬標⽤戶的興趣⽅向;
- 群體⽤戶最近⾏為過的商品⼀定程度上反應了最近商品的熱度趨勢,防⽌為冷啟動⽤戶召回⼤量冷⻔商品。
訓練階段:
篩選出一批淘寶和飛豬雙端的活躍使用者,將活躍使用者在淘寶端的使用者行為序列和LBS資訊透過聚類得到user group;將user group最近行為過的歷史寶貝和目標寶貝組成一個item group,透過這種方式引入了使用者與使用者、使用者與寶貝以及寶貝與寶貝之間的異構關係;分別將這兩個group輸入attention網路中,學習目標使用者和user group之間的相似度,目標寶貝和item group之間的相似度,再分別加上使用者側的side information以及寶貝側的side information;再分別經過一個全連線網路,得到user embedding和item embedding;最後計算embedding向量之間的相似度。
生成階段:
將冷啟動使用者在淘寶端的行為序列、LBS資訊及user側的屬性資訊輸入網路;得到模型⽬標輸出隱層user embedding以及item embedding;利用user embedding和item embedding對冷啟動使用者進行召回,返回top@N的寶貝推薦。
我們進一步介紹user group和item group的構建。
user group:
- 關聯性:根據⽤戶的淘寶⾏為及lbs資訊聚類得到user group,判斷user group最近行為過的寶貝是否與目標寶貝是同一主題,或者看user group行為過的寶貝是否在目標寶貝i2i可召回列表中;
- 實效性:優先使⽤⽤戶的近期⾏為。
item group:
- 由user group內的⾏為商品構成,增加item group與⽬標商品的關聯性
離線評估,我們從真實點選資料對比中看出,葉子類目及目的地相同的比例達到69%,完全命中的比例達到1%。上圖右側我們列舉了幾個線上真實召回的案例,如使用者在淘寶端行為過潛水鏡、沙灘鞋,我們則召回了關於海島、潛水方面的寶貝,使用者在淘寶端行為過防滑鞋套,我們據此召回了雪鄉相關的寶貝。
3. 旅遊玩法標籤體系建設
我們將分為4個方面介紹玩法標籤體系建設:玩法標籤生產與挖掘、玩法標籤樹建設、玩法標籤樹掛載、玩法標籤的應用。
① 玩法標籤挖掘與生產
難點和挑戰:資料覆蓋更全面、更準確,同時精細化地繫結到寶貝上。
玩法標籤的挖掘與生產的迭代過程:
- 基於⽂本內容分析的TF-IDF演算法抽取關鍵詞
- 基於⽂本⽹絡結構TextRank演算法抽取核⼼詞
- 基於深度⽹絡模型TextCNN 意圖關鍵詞⽣成
主要思想:基於⽂本分類的思想,基於商品⽂本資訊,預測商品的關鍵詞興趣點
主要⼯作:
- 樣本構建:對商品的⽂本資訊預處理,提取候選詞序列,label為⽤戶搜尋詞
- 模型選擇:TextCNN分類模型
- ⽹絡結構:詞embedding->卷積層->池化層->…..->全聯接->softmax層->輸出
- 資料⼈⼯評測
② 統一的玩法標籤樹體系
在挖掘和生產了大量符合使用者感知的玩法標籤後,我們需要構建全⾯的,層級的,有旅⾏特⾊的統⼀玩法標籤樹體系。我們藉助行業運營的經驗與知識,構建了自由的航旅玩法標籤樹,其中涉及了美食、⼈⽂、交通、住宿等16個⼀級標籤,葉子結點則包括衝浪、滑雪等具體玩法。
③ 玩法標籤的掛載
在構建好玩法標籤樹之後,我們需要將標籤準確的掛載到寶貝之上。一個寶貝可以擁有多個玩法標籤,玩法標籤掛載本質上是一個多標籤問題,我們將其拆解為多個二分類問題。飛豬團隊最初採取傳統的機器學習方法。我們取得了玩法標覆蓋佔⽐90.21%、 商品覆蓋佔⽐92.12%、 商品⼈⼯評測準確率88%的結果。傳統方法存在標籤資訊利用不充分的問題,人工評測準確率依然有可提高的空間。
傳統方法將掛載過程拆成3個部分,f0是學習文字關鍵詞的embedding,f1是抽象出整個文字的embedding,f2是一個掛載模型,全程都沒有利用到標籤資訊。
我們採用LEAM[6] 演算法:學習word和label在同⼀空間內的embedding,利⽤text和label的相關性構建⽂本表示,提高掛載準確率。
我們將玩法標籤準確掛載在寶貝上後,可以有如下應用:
- 將飛豬常⽤的場景資料結構化沉澱出玩法標籤
- 將這些結構化資料之間透過玩法標籤建⽴關聯匹配關係
- 玩法標籤圈⼈、圈品投放
- 玩法主題⽣產、按場景玩法主題組織的投放
在實際的搜尋介面,我們的標籤會作為market-in set展示。
進一步,我們希望在時空的場景下,結合玩法進行更深層次的應用。我們會基於使用者歷史行為資料,得到寶貝每一天的點選、收藏、加購,寶貝的目的地等資訊,並且寶貝已掛載相應的玩法標籤。我們進一步藉助時序分析的方法,得到該寶貝在什麼時間、什麼地點、什麼玩法是最熱門的,從而更好的服務使用者在時間、空間、玩法三個維度輔助使用者出行。
04
參考文獻
[1]. Zhao, Jun, et al. "IntentGC: a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation." Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2019.
[2]. Hamilton, Will, Zhitao Ying, and Jure Leskovec. "Inductive representation learning on large graphs." Advances in neural information processing systems. 2017.
[3]. Lv, Yang, Liangsheng Zhuang, and Pengyu Luo. "Neighborhood-Enhanced and Time-Aware Model for Session-based Recommendation." arXiv preprint arXiv:1909.11252 (2019).
[4]. Wang, Xinghua, et al. "Cross-domain recommendation for cold-start users via neighborhood based feature mapping." International Conference on Database Systems for Advanced Applications. Springer, Cham, 2018.
[5]. Hu, Liang, et al. "Hers: Modeling influential contexts with heterogeneous relations for sparse and cold-start recommendation." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 33. 2019.
[6]. Wang, Guoyin, et al. "Joint embedding of words and labels for text classification." arXiv preprint arXiv:1805.04174 (2018).
今天的分享就到這裡,謝謝大家。
在文末分享、點贊、在看,給個三連擊唄~~
分享嘉賓:
弘軼
阿里飛豬 | 演算法專家
於2015年4月加入阿里巴巴,曾負責手淘多個核心業務場景的個性化推薦演算法研發和最佳化工作,自2018年7月轉崗到飛豬個性化團隊後,在旅行特色化的個性化推薦場景中持續迭代和升級平臺化推薦能力,打磨並沉澱出了一套通用的個性化營銷平臺工具,全面賦能運營小二,目前平臺自動化支援飛豬上千個業務場景的個性化推薦。
尋瀟
阿里飛豬 | 演算法工程師
研究生學歷,畢業於電子科技大學計算機科學與工程學院。2018年7月加入阿里巴巴,負責飛豬通用個性化推薦平臺的搭建與最佳化,平臺承接飛豬所有營銷大促,為飛豬整體GMV的提升產生深遠影響;在使用者冷啟動方面有著長期與深入的研究,結合最新研究技術並加以改進,極大改善了冷啟動使用者的推薦效果。
溪懷
阿里飛豬 | 演算法工程師
於2019年7月入職阿里巴巴,參與建設飛豬個性化標籤體系建設,和流量調控等個性化營銷平臺工具,全面賦能運營小二,以及個性化推薦。
分享嘉賓:弘軼、尋瀟、溪懷@飛豬
編輯整理:郭嘉偉
內容來源:DataFunTalk