当你打开天猫的那一刻,推荐系统做了哪些工作?
當年打開天貓的那一刻,它為你完成了華麗的變身,成為世上獨一無二的“天貓”,這就是智能推薦的力量。今天,來自阿里巴巴搜索推薦事業部的算法工程師陳啟偉為你介紹天貓如何玩轉首頁個性化推薦,揭開搜索推薦的神秘面紗。
天貓首頁作為用戶打開手機天貓App的第一印象,所推薦的商品極大地決定了用戶接下來的行為,對用戶流量的承接與分發、提升用戶購物體驗和呈現天貓貨品的性價比、品質感及品牌力起到至關重要的作用,成為提升天貓用戶體驗的關鍵環節之一。
1、場景介紹
天貓首頁的場景主要包括大促會場入口和日常頻道兩大類,如圖1所示。其中左圖為大促會場入口,包括主會場入口和行業會場入口;主會場入口通過為用戶推薦7個商品(3個在中間動態輪播)給大促主會場進行引流,引流 UV 達數千萬以上;行業會場入口通過為用戶推薦4個個性化會場和商品為數萬的會場引流。右圖為日常頻道,包括限時搶購、天貓好物、聚劃算、天貓閃降和精選頻道;首頁通過個性化推薦商品為各個特色的頻道引流,通過各個頻道來培養用戶心智,讓用戶在天貓逛起來。
圖1. 天貓首頁場景
過去的首頁推薦更多的是在相關性推薦的單一數據目標上進行優化,如今天貓首頁的推薦系統不僅僅考慮推薦結果的相關性,還在推薦結果的發現性、多樣性等方面上做了更深度的優化,"效率和體驗并重"成為天貓首頁新的優化目標。Graph Embedding、Transformer、深度學習、知識圖譜等新的技術已先后在天貓首頁的推薦系統成功落地,為場景帶來了兩位數的點擊率提升和兩位數的疲勞度下降。
2、推薦框架
天貓首頁的個性化推薦系統可以分為召回、排序和機制三個模塊。其中,召回模塊主要是從全量的商品素材中檢索出用戶感興趣的 TopK 個候選商品,排序模塊專注于用戶對商品的 CTR 預估,機制模塊負責后期的流量調控、體驗優化、策略調控等和最終的商品排序。整個推薦系統采用 Graph Embedding、Transformer、深度學習、知識圖譜、用戶體驗建模等新的技術構建起來,后面章節將介紹這個推薦系統的關鍵技術點。
圖2. 天貓首頁推薦系統框架
3、召回
3.1 Ranki2i
Item-CF 是目前應用最廣泛的召回算法,其原理是根據兩個商品被同時點擊的頻率來計算兩個商品之間的相似度 simScore,得到 i2i 表;然后通過用戶的 trigger 去查詢 i2i 表,擴展用戶感興趣的商品。Item-CF 的基本算法雖然簡單,但是要獲得更好的效果,往往需要根據實際的業務場景進行調優。清除爬蟲、刷單等噪聲數據,合理選擇計算商品之間相似度的數據的時間窗口,引入時間衰減,只考慮同一個類目下商品對,歸一化、截斷、打散等策略對優化 Item-CF 的效果都有很大的幫助。
Ranki2i 是一種改進的 Item-CF 算法,其在 item-CF 得到的兩個商品之間的相似度 simScore 的基礎上再乘以該 trigger item 所召回的該 target item 在過去一段時間內的 ctr (注意 ctr 的計算需要進行適當的平滑),對 i2i 的 simScore 進行修正,使得 i2i 表不僅考慮了兩個商品的點擊共現性,還考慮了召回商品的點擊率。
我們基于全網的點擊數據和天貓首頁場景內的日志來計算 Ranki2i 表,并部署在檢索系統 Basic Engine 上,對每個訪問天貓首頁的用戶,從基礎特征服務系統 ABFS 中獲取用戶的 trigger,并以此查詢 Ranki2i 表來召回用戶感興趣的商品。
經典 Item-CF 類算法直接根據兩個商品被同時點擊的頻率來計算兩個商品之間的相似度,在尋找用戶點擊商品的相似、相關以及搭配商品上都有很大的優勢,且其具有簡單、性能高等特點,已成為目前應用使用最為廣泛的召回算法。然而由于經典 Item-CF 類算法的召回結果的候選集限定在用戶的歷史行為類目中,并且算法難以結合商品的 Side Information,導致其推薦結果存在發現性弱、對長尾商品的效果差等問題,容易導致推薦系統出現“越推越窄”的問題,從而制約了推薦系統的可持續發展。為了跟精準地給用戶推薦心儀的商品,同時維護推薦系統的可持續發展,解決推薦系統的發現性推薦和長尾推薦等問題,我們團隊提出了 S3Graph Embeeding 算法和 MIND 算法。
3.2 S3 Graph Embedding
Graph Embedding 是一種將復雜網絡投影到低維空間的機器學習技術,典型的做法是將網絡中的節點做向量化表達,使節點間的向量相似度接近原始節點間在網絡結構、近鄰關系、Meta信息等多維度上的相似性。
我們團隊提出的 S3 Graph Embeeding 算法利用全網以十億的用戶對十億規模的商品的序列化點擊行為構建千億規模的 Graph,結合深度隨機游走技術對用戶行為進行"虛擬采樣",并引入商品的 Side Information 增加泛化學習能力,將全網的商品進行 embedding,統一成同一維度的向量表示。該向量被直接用在 Item-CF 中商品相似度的計算中,相比經典 Item-CF 以共同點擊次數來衡量商品相似度的做法,該算法不需要兩個商品被同時點擊過也能計算出商品間的相似度,并且引入 Side Information 的使其能更好的處理長尾的商品和冷啟動的商品。
圖3. Graph Embedding
我們基于 Behemoth X2Vec 平臺,利用全網的點擊數據和商品 Side Information 構建全網商品的 embedding,并以此來計算 Graph Embedding i2i 表,部署在Basic Engine 上,對每個訪問天貓首頁的用戶,從 ABFS 中獲取用戶的 trigger,并以此查詢 Graph Embedding i2i 表來召回用戶感興趣的商品。
3.3 MIND
Multi-Interest Network with Dynamic Routing (MIND) 是我們團隊提出的一種向量召回的方法,其通過構建多個和商品向量在統一的向量空間的用戶興趣向量來表示用戶的多個興趣,然后通過這多個興趣向量去檢索出TopK個與其近鄰的商品向量,得到 TopK個 用戶感興趣的商品。
傳統 DeepMatch 方法為每個用戶生成一個興趣向量,但在實際的購物場景中,用戶的興趣是多樣的,不同興趣之間甚至可能是不相關的,比如用戶可能同時期望購買服裝、化妝品、零食,而一個長度有限的向量很難表示用戶這樣的多個興趣。我們的 MIND 模型通過 Dynamic Routing 的方法從用戶行為和用戶屬性信息中動態學習出多個表示用戶興趣的向量,更好的捕捉用戶的多樣興趣,來提升召回的豐富度和準確度。
圖4. MIND模型
我們基于實時排序服務 RTP 和召回引擎 Basic Engine(BE) 開發了一整套 MIND 在線服務體系。對每個訪問場景的用戶,先通過部署在 RTP 中的 MIND 模型的 Multi-interest Extractor Layer 提取出用戶的多個興趣向量,然后利用這些興趣向量在 Basic Engine 中通過 aitheta 檢索引擎召回用戶感興趣的商品。
3.4 Retargeting
Retargering 是一種將用戶點擊、收藏或加購的商品再次推薦給用戶的一種推薦策略。在電商的推薦系統中,用戶的行為包含瀏覽、點擊、收藏、加購和下單等行為,我們當然希望用戶每一個行為流最終都能到達轉化的環節,但是事實并非如此。當用戶產生了下單行為的某些上游行為時,會有相當一部分用戶因為各種原因沒有最終達成交易,但是用戶當時沒有產生下單行為并不代表用戶對當前商品不感興趣,當用戶再次來到天貓時,我們根據用戶之前產生的先驗行為理解并識別用戶的真正意圖,將符合用戶意圖的商品再次推薦給用戶,引導用戶沿著行為流向下游,最終達到下單這個最終的行為。
Retargering 的召回策略更多是在大促促成交的場景下使用,其召回量更需要嚴格控制。
3.5 Crowd-based Filtering
上述的召回策略都能跟著用戶的歷史行為等信息召回用戶感興趣的商品,但是對于未登錄用戶或是冷啟動的用戶,這些召回策略所能召回的商品是有限的。Crowd-based Filtering 是一種替補的召回策略,是一種基于人群屬性來推薦的方法,其通過將用戶按照性別、年齡段、收貨城市等粗粒度的屬性劃分為若干個人群,然后為基于每個人群的行為數據挑選出該人群點擊率高的 TopK 個商品作為該人群感興趣的商品。
3.6 融合與調制
為了結合不同召回策略的優點,同時提高候選集的多樣性和覆蓋率,我們將以上召回策略召回的商品融合在一起。融合的過程中根據各個召回策略召回結果的歷史表現和流量調控的需求,對各個召回算法的召回比例進行適當的調制。
4、 排序
4.1 排序特征
排序特征在排序的效果中起到了非常重要的作用,天貓首頁推薦系統排序模型的特征可以抽象為五類:
- User Profile Features:用戶側的基礎特征,如用戶的性別、年齡、城市、購買力等。
- Item Features:商品側的特征,如商品 ID、類目 ID、店鋪 ID、標簽等。
- Context Features:上下文特征,如 match_type、位置、頁碼等。
- Cross Features:交叉特征,如用戶側特征與商品側特征的交叉等。
- Sequence Item Features:用戶對商品的行為特征,如用戶點擊的商品序列、點擊的類目序列及相應的 Positional Bias。
4.2 排序樣本
排序樣本的選取也會影響排序模型的效果。排序的樣本來自于場景產生的曝光和點擊日志,對場景日志進行有效的清洗去噪,準實時計算場景活躍用戶、黑名單用戶,保留對場景有感知的部分用戶,過濾數據中混雜的刷單爬蟲等作弊行為數據,過濾大促0點下單和紅包雨等異常時段用戶的非正常行為日志等對提升模型效果有一定的幫助。
4.3 排序模型
4.3.1 經典 Deep 排序模型
Google 提出的 WDL 模型奠定了目前 Deep 排序模型的基本框架。
DeepFM/PNN/DCN/DeepResNet 等模型把傳統離散 LR 中特征工程的經驗搬到DL 中來,用人工構建的代數式先驗來幫助模型建立對某種認知模式的預設,幫助模型更好的建模。DIN 等模型引入了用戶行為數據,通過 Attention 來捕捉了用戶興趣的多樣性以及與預測目標的局部相關性,對大規模離散用戶行為數據的進行建模。
4.3.2 BST
類似 DeepFM/PNN/DCN/DeepResNet 等模型更多的在探索如何更好的利用 id features 和 bias features 去逼近 id features 和 bias features 所能達到的模型上限,很少探索如何有效利用 seq features;DIN 等模型在這些模型的基礎上進行 seq features 建模的探索,其用打分 item對seq features 做 attention 后對其進行weighted sum pooling,雖然可以很好地表達打分 item 和用戶行為序列的相關性,但不能抽象用戶行為序列內部的相關性。
為了解決 WDL 和 DIN 等模型存在的上述問題,受 Transformer 在 NLP 任務中有效地處理詞序列的啟發,我們提出了 Behavior Sequence Transformer (BST) 模型,該模型用 Transformer 來建模用戶的行為序列,學習用戶行為序列內部的相關性及其與打分 item 之間的相關性。
圖5. BST模型
BST 模型的結構如圖5所示,模型將用戶行為序列(包括打分 item)、用戶側特征、商品側特征、上下文特征、交叉特征作為輸入;首先通過 Embedding 技術將其 embeds 為低維稠密向量;為了更好的學習用戶行為序列內部的相關性及其與打分item之間的相關性,通過 Transformer 來學習每個用戶行為序列的深度表示;然后將用戶側特征、商品側特征、上下文特征、交叉特征和 Transformer 層的輸出concat 在一起得到樣本的特征表示向量,并利用三層的 MLP 網絡來進一步學習特征表示向量更抽象的表達和特征之間的交叉關系;最后通過 Sigmoid 計算模型的輸出。
模型通過 Transformer 來建模用戶行為序列,首先通過 Self-Attention 學習用戶行為序列內部之間的相關性及其與打分 item 之間的相關性。考慮向量的物理意義,使用內積來計算attention,這樣兩個 item 越相近,內積越大,attention 增益越大。并采用 Mutil-Head Attention 的方式,有效的將序列特征放到多個平行的空間進行計算,提升模型的容錯性與精準度。
其中,為投影矩陣,E 是用戶行為序列與當前打分Q進行拼接后的 Embedding 表示,,h 是 head 數。
為了進一步增強網絡的非線性表示能力,將 Self-Attention 的輸出做一層 Point-wise Feed-Forward Networks (FFN) 。
我們基于實時排序服務 RTP,在 GPU 集群上部署了量化后的 BST 模型,對于每一個打分 item 列表,RTP 將其拆分后并行打分,實時預測用戶對打分 item 列表中每一個item的點擊率。
5、機制
5.1 視覺體驗優化
5.1.1 基于知識圖譜的標準類目擴展
受種種因素制約,淘寶天貓商品類目體系過于細致,不符合推薦場景中用戶對商品的主觀分類。我們與知識圖譜團隊合作,建立了標準類目體系,從語義層面出發,結合場景的特點,將相近的葉子類目進行不同程度的聚合,分別應用在購買類目過濾和類目打散時的類目擴展。
圖6. 標準類目體系
5.1.2 基于圖像指紋的相似圖片檢測系統
淘寶商品素材浩如煙海,相似的展示圖片層出不窮。這種相似經常超越圖片所屬商品本身的屬性,通過商品本身的標題、類目等語義信息已無法識別這種相似,為此我們團隊研發了相似圖片檢測系統,從圖形本身出發來檢測商品素材圖片之間的相似度。
同圖檢測系統以 CNN 作為分類器,識別商品素材圖片所屬的葉子類目,將最后隱藏層向量作為圖像特征向量,并通過向量的相似度來計算商品之間的相似度。為了加速向量相似度的計算,我們使用 SimHash 算法將圖像特征向量進一步轉化成高維圖像指紋,將計算兩個特征向量距離的問題轉化成計算兩個圖像指紋漢明距離的問題, 在精度損失可接受的范圍內極大地降低了計算復雜度。
圖7. 同圖檢測系統
5.1.3 多維度打散
天貓首頁由大促會場入口和日常頻道構成,大促會場入口包括主會場入口和行業會場入口,日常頻道包括限時搶購、天貓好物、聚劃算、天貓閃降和一些精選精選頻道,每一個頻道的商品素材都是獨立的,存在一定的重復,如果不加限制,各個頻道之間容易出現相似的推薦結果,這在“寸土寸金”的首頁,無疑是一種浪費,也會傷害用戶體驗,不利于導購心智的培養。為此,我們設計了多種打散方案,從多個維度(商品/標準類目/品牌/會場/相似圖片等)對首頁各個頻道推薦的素材進行聯合打散,讓推薦的結果更具多樣性。
5.2 模板式實時曝光過濾
由于天貓首頁在手機天貓的首屏,用戶每次打開 APP 都會獲得曝光,其中就包含了很多無效的曝光,如用戶直接進入搜索頻道、進入購物車或者大促期間來搶紅包雨搶券等,這些無效曝光中用戶對該場景是無心智的。常見的將對用戶偽曝光的商品記錄下來并利用其來進行實時曝光過濾的方法對首頁這種無效曝光率很高的場景來說“太嚴格”了,會使得推薦的效果大打折扣。為此,我們設計了一種模板式實時曝光過濾的方法。一次推薦給用戶出多個模板,并記錄用戶上次看到的第 i 個模板,然后在本次給用戶展現第 i+1個模板。如果用戶產生新的行為,模板的推薦內容也會隨之進行更新。
5.3 用戶及類目個性化的購買過濾
”買了還推“是過去推薦系統經常被詬病的吐槽點,要解決該問題就需要對用戶購買的類目進行合理的過濾。然而由于每個葉子類目的購買周期不同,不同用戶對類目的購買周期也不同,因此設計購買過濾時還需要關注不同用戶對不同類目過購買過濾的個性化需求。購買過濾作為所有推薦場景都會面對的基礎問題,我們與工程團隊合作推出了統一的全域購買過濾服務,為每一個類目定制一個購買屏蔽周期,根據用戶最近一段時間內購買的行為為每個用戶維護一個實時的購買過濾類目,同時考慮到如果該用戶在購買屏蔽周期內又主動在該類目上發生了多次點擊行為,說明用戶對該類目仍感興趣,有購買的可能,則該類目會被"解禁"。天貓首頁接入購買過濾服務之后,"買了還推"的問題也得到了大大的改善。
6、總結
本文從算法的角度介紹了天貓首頁的推薦系統,從召回、排序、推薦機制三個方面講解了我們如何利用 Graph Embedding、Transformer、深度學習、知識圖譜、用戶體驗建模等多項技術來構建先進的推薦系統。當然,完整的推薦系統是一個復雜系統,構建一個"懂你"的天貓首頁還離不開產品、工程、運營等同學的合作和幫助。在個性化推薦的道路上,我們將繼續不斷積累和打磨,深耕技術,創造更好的個性化服務,也相信個性化推薦的未來會更好。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的当你打开天猫的那一刻,推荐系统做了哪些工作?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019阿里云618大促主会场全攻略
- 下一篇: RocketMQ消息轨迹-设计篇