首頁人工智能技術資訊正文

如何實現(xiàn)個性化推薦?

更新時間:2020-09-14 來源:黑馬程序員 瀏覽量:

相關背景

對于一家品牌電商,連接著供應商和用戶,改善供應鏈的同時給用戶提供高品質(zhì)、高質(zhì)量、無大牌溢價的商品。營銷側(cè)業(yè)務場景是在線電商的重中之重,面臨的場景挑戰(zhàn)包括:

·如何優(yōu)化流量分配?

·如何增加 GMV?

·如何提升用戶購物體驗?

互聯(lián)網(wǎng)人口紅利消失殆盡,在存量爭奪用戶時間的戰(zhàn)場上,必須高效充分利用每份流量。使用個性化算法是各家必用技術,在電商的營銷場景提升效果明顯,點擊率預估提升一小步,流水增益一大步。該目前主要采用深度模型應用在搜索、推薦、廣告等場景,具體算法方向有DeepCTR、Embedding、NLP 等。

在轉(zhuǎn)向深度學習的這兩年,該方案個性化場景的用戶體驗、指標數(shù)據(jù)都有較大提升(產(chǎn)品形式、系統(tǒng)能力、算法效果都在持續(xù)優(yōu)化中)。個性化場景最重要的兩個階段是召回和排序,接下來會從這兩方面切入分享一些實踐經(jīng)驗和思路總結(jié)。

個性化推薦


技術方案

能力統(tǒng)一召回體系

這里的召回更準確定義是召回 + 粗排。召回的目的是快速縮小范圍,減輕精排的壓力。當下的挑戰(zhàn)不在數(shù)據(jù)規(guī)模和系統(tǒng)壓力,我們設計系統(tǒng)最看重的是復用性、維護性和擴展性。因此考慮對召回能力做大統(tǒng)一,涉及搜索、推薦、廣告、客服多個業(yè)務場景。


召回抽象

對召回來說,輸入輸出都是信息,只是信息的類別可能不同,同時必須定義信息間關系度量:$ score = f (InputData,OutputData) 。召回階段對時延比較敏感,不能選用太過復雜關系度量算法。對于多個場景,信息可以抽象為:

·搜索(輸入查詢詞,輸出商品列表、專題內(nèi)容列表)

·推薦(輸入用戶,輸出商品列表)

·廣告(輸入用戶,輸出素材列表)

·客服(輸入問題,輸出答案列表、相似問題列表)

信息載體包括文本和向量,兩端信息載體相同的情況下才能計算關系度量值。 顯而易見查詢詞、商品、問題 / 答案、專題內(nèi)容天然包含文本信息,而使用向量必須依靠模型做目標的向量化表征。

類似 Airbnb[1] Sequence Embedding 思路,我們基于實現(xiàn)商品向量化表征,同時引入Batch內(nèi) pairwise loss 和 side info 進一步提升模型的性能和效果?;谏唐废蛄靠梢躁P聯(lián)表征用戶、查詢詞、專題。問題 / 答案的向量化參考 sentence embedding 技術,由專門的 NLP 同學負責。

召回能力

如果信息是文本或向量,召回能力需要支持:

·文字相關性

依靠 ElasticSearch 索引,BM25 算法度量相關性。

·語義相似性

Pre-train 和 fine-tuning 的 BERT 模型推斷相關性。

·向量最近鄰

近似最近鄰搜索(Approximate Nearest Neighbor),余弦距離計算相關性。

作為通用召回體系必須保證低延時、高可用,具體做系統(tǒng)架構時我們將三種能力都用索引來支撐。文字相關性本來就是索引提供的能力;向量最近鄰基于 LSH(Locality-sensitive hashing)投影后再建索引,獲取索引正排數(shù)據(jù)(原始向量)計算匹配得分,實現(xiàn)向量的在線查詢能力。非 GPU 環(huán)境下 BERT 模型比較耗時,可將熱門查詢詞和高頻問題(二八定律)做離線推斷,結(jié)果得分 T+1 同步到索引。

至此三種能力都整合在索引體系下,召回場景可以并行使用。舉個例子: 搜索場景:輸入查詢詞同時使用文字相關性,語義相似性(Query 和 ItemTitle 形成 setence pair),向量最近鄰召回商品(QueryVector 到 ItemVector)。這樣商品總量偏小,擴展召回能力希望用戶能看到更多關聯(lián)商品。

推薦場景:輸入推薦模塊商品池條件和用戶向量,使用文字相關性(多路召回的商品過濾條件,是通用的索引條件查詢),向量最近鄰 (UserVector 到 ItemVector) 召回商品。

各顯神通精排服務

精排場景沒有考慮對能力做抽象統(tǒng)一,每個模塊核心訴求點會不同(有些戰(zhàn)略導向的場景可能只考慮曝光點擊量)。核心指標上綜合考量曝光轉(zhuǎn)化率(CTR*CVR)、UV 價值、總體 GMV,這些都是算法需要全局優(yōu)化的目標,同時綜合業(yè)務方的人工策略,呈現(xiàn)給用戶最終的商品瀏覽效果。小伙伴可以充分發(fā)揮聰明才智,自由選擇特征和模型結(jié)構,以線上 AB Test 數(shù)據(jù)評估價值。我們的精排模型探索往大的說分為兩方面:追求精度效果的復雜深度模型和實時感知用戶偏好的在線模型,下文做詳細介紹。

復雜模型

使用深度模型做 DeepCTR 預估,主體思路是 Embedding&MLP,對模型做該方案嚴選場景的適配調(diào)整。我們首個深度模型是 WDL[2],Wide Part 依靠先驗知識構建特征,挑選高覆蓋、高價值屬性兩兩交叉構建特征。Deep Part 依靠深度網(wǎng)絡實現(xiàn)特征組合,對商品 Id、類目 Id、屬性 Id Embedding,但不直接對用戶 Id Embedding,而是基于用戶和商品的行為序列表征用戶,引入注意力模塊[3] 計算用戶向量。

后續(xù)在定制 WDL 之上加入 CTR、CVR 的多任務學習[4],共享 Embedding 層權重,構建 CTCVR LOSS,實現(xiàn)曝光階段的 CVR 預估。

在線模型

業(yè)界已經(jīng)形成共識數(shù)據(jù)新鮮度能進一步提升模型效果。為實時感知用戶偏好,一般使用實時特征傳入深度模型,但存在兩個問題:

·實時特征在線計算用于推斷,數(shù)據(jù)清理用于訓練;特征調(diào)整的維護成本和計算量比較大。

·實時特征線上計算有不可靠性,擾動模型效果。

我們選擇實現(xiàn)成本較低的方案:T+1 復雜模型的基礎上挑選 TopK 應用實時重排序,在風險可控的前提下嘗試激進實時算法。基于用戶和商品交互數(shù)據(jù)計算用戶多類目的實時興趣向量(用戶向量表征參考上文召回說明),在不同的場景按需使用。如在搜索推薦,使用當前上下文信息激活多維度用戶實時向量,計算向量距離重排序商品列表達到類似實時模型的效果。系統(tǒng)工程上收益一個是用戶和商品交互數(shù)據(jù)是基礎統(tǒng)計,沒有額外特征維護成本,另一個使用向量有更好泛化性和數(shù)據(jù)容錯性。該方案嚴選場景驗證效果有明顯的提升。


結(jié)語

近幾年深度學習領域的技術革新非???,新模型新思路層出不窮,不由感嘆 “終身學習” 的知行合一頗為不易。營銷端個性化有豐富的深度學習應用場景,從點擊率預估、語義匹配、向量化到素材合成、文案生成、人群畫像,我們一直在擴充算法的能力邊界。


參考文獻

[1] Real-time Personalization using Embeddings for Search Ranking at Airbnb

[2] Wide & Deep Learning for Recommender Systems

[3] Deep Interest Network for Click-Through Rate Prediction

[4] Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate


猜你喜歡:

深度相機常見技術:深度相機的相位求解

解決類別不平衡數(shù)據(jù)方法介紹

python人工智能之人臉識別綜合應用與實踐

分享到:
在線咨詢 我要報名
和我們在線交談!