摘要:同鎮推薦系統整體架構採用松耦合的分層分模塊設計方式,數倉和畫像平臺構築了基礎數據和標籤的底層支撐,特徵平臺保證了各個模型所需特徵的統一構建和維護,召回策略和算法模型層支持靈活組合和擴展,以滿足不同推薦場景的需求,邏輯層支持可定製化的推薦規則及策略,整體框架支持ABTest系統的無縫集成和動態配置。同鎮推薦系統所有模型和策略的迭代優化都要經過離線實驗和線上ABTest評估,上線以來,召回模型、排序模型、融合控制模型和服務層分別經過幾個階段的評估和優化,目前線上主要效果指標CTR(點擊率)對比4月初相對提升率約175%。

導語

本文基於58同鎮推薦場景,闡述了AI技術在賦能下沉市場方面所做的一些探索、應用和實踐,希望對大家有所幫助和啓發。

背景

AI(人工智能)是引領新一輪科技革命和產業變革的戰略性技術,近年來,通過人工智能提高生產力以及創造全新的產品和服務,已經成爲企業競爭和產業升級的迫切需求。互聯網和AI技術的飛速發展已經深刻改變了人們的生產和生活方式,但是地域發展上也極不均衡,廣大的四五線城市和鄉村市場依然存在信息壁壘,對新技術的需求更加迫切,下沉市場所擁有的巨大潛力讓互聯網巨頭紛紛展開佈局。

58同鎮是公司進軍下沉市場最重要的戰略性業務,在全國布有一萬多個鄉鎮站點,覆蓋31個省份,年服務超過1億用戶。同鎮利用站長的私域流量和58本地版APP的公域流量,並依託下沉市場的信息傳播和滲透優勢,可以觸達千萬級的鄉鎮人羣,致力於爲下沉市場用戶提供精準的本地化信息服務。那麼如何更精準的刻畫用戶羣,更高效的提升流量轉化和用戶體驗,這一切都離不開AI技術的賦能。

場景概述

同鎮智能推薦,採用Feed流展現和交互方式,面向下沉市場用戶羣,提供基於地域分發的多品類信息融合推薦。內容涵蓋新聞資訊、招聘、房產、汽車和交友等品類信息。個性化推薦,連接了內容生產者和消費者,承載着58本地版APP引流、轉化和體驗落地的價值使命,對用戶持續增長、高效轉化和長期留存都有着非常重要的作用。

目前同鎮推薦流量已經覆蓋本地版app主要列表的推薦場景,主要包括首頁feed、好工作、頭條tab、好房子、交友、交友動態等(如圖1)。本文重點聚焦首頁Feed流推薦場景,從整體架構、數據、算法模型及演進過程爲大家展開介紹。

圖1:同鎮主要推薦場景

整體架構

同鎮推薦系統整體架構包括:基礎數據層、數據計算層、算法策略層、邏輯層和應用層。基於業務、日誌和標籤等基礎數據,綜合應用機器學習、深度學習和NLP等技術爲用戶做召回和點擊率預估,支持各品類信息topN推薦結果的融合再排序,目前支持首頁feed、招聘、頭條、房產、交友等列表的應用場景接入。(如圖2)

圖2:同鎮智能推薦整體架構

同鎮推薦系統整體架構採用松耦合的分層分模塊設計方式,數倉和畫像平臺構築了基礎數據和標籤的底層支撐,特徵平臺保證了各個模型所需特徵的統一構建和維護,召回策略和算法模型層支持靈活組合和擴展,以滿足不同推薦場景的需求,邏輯層支持可定製化的推薦規則及策略,整體框架支持ABTest系統的無縫集成和動態配置。

數據&特徵

對一個推薦系統來說,數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已。由此可見數據和特徵是重中之重,我們的數據主要包括業務數據、行爲日誌和畫像標籤數據。用戶行爲數據一般來源於埋點日誌,可以分爲顯性反饋和隱性反饋兩種,涉及曝光、點擊、分享、收藏等基礎埋點。原始數據經過清洗、樣本採樣、特徵組合、特徵變換和特徵離散等特徵工程的處理,最終形成訓練樣本並作爲模型的input。

內容源和畫像標籤方面着重介紹如下:

1. 內容源

同鎮推薦內容源包括新聞資訊和分類信息兩大類,新聞資訊分爲文本類、圖文類和視頻類,來源包括站長髮布的本地資訊、合作渠道內容和抓取內容等。分類信息主要是58同城和同鎮各分類業務的帖子數據:招聘、房產、車、二手物品、交友、部落等。(如圖3)

圖3:內容源組成結構

2.  內容標籤

同鎮推薦內容源包括新聞資訊和分類信息兩類,分類信息中同城部分主要依賴各垂直業務定義的分類標籤數據;同鎮分類信息數據很多需要結合預定義和NLP技術來做文本標籤的提取和處理,像同鎮招聘帖中的職位、工作地點、薪資,房產帖中的戶型、面積、位置、總價等,這些都是從站長髮布的非結構化長文本中通過NLP和Bert模型提取出來的,其中,招聘職位標籤基於Bert提取準確率已達到93%,地理位置、戶型、面積等標籤準確率都在80%左右。

新聞資訊是同鎮feed流推薦的主要內容源,目前用到的文本特徵主要有如下幾類:

a) 語義特徵

主要是新聞內容的一級和二級分類標籤,基於預定義的分類體系和人工標註的十萬量級的樣本語料,通過文本處理和Bert模型來訓練,並得到覆蓋相對全面而又準確的分類效果。一級分類Cate1目前離線評測準確率爲85%,二級分類Cate2正在基於新分類體系做語料標註,後面會基於Bert+DNN模型做訓練和優化。

b) 隱語義特徵

目前用到的隱語義特徵主要有topic、關鍵詞、實體詞,其中實體詞還處在探索階段,計劃採用Bert+BiLSTM+CRF的序列標註模型來進行命名實體的識別。

Topic標籤: 對topic標籤的提取先後嘗試過KMeans+TF-IDF的方式和LDA主題模型,效果還有些差距,目前正在基於Bert提取句子vector後通過KMeans聚類做訓練和優化。

關鍵詞: 關鍵詞提取目前採用的是基於深度學習的Attention弱監督算法模型,主要是通過訓練文章分類或者回歸點擊,利用Attention對文章關鍵詞進行權重計算,把權重高的,即對分類或迴歸影響最大的關鍵詞進行抽取作爲文章的候選關鍵詞,再進行詞性過濾等處理進而得到最終的關鍵詞信息。

c) 時空特徵

資訊內容的時效性、新鮮度、地域等是本地信息分發模型和策略的重要特徵,尤其地域熱點、全局熱點召回以及算法模型召回等策略,作爲強特徵參與召回和排序計算,保證了同鎮本地化特色的定位。

d) 質量特徵

質量特徵體現在兩個方面,一是內容本身的質量優劣,二是內容信息的安全性。在整個推薦的召回和排序策略上,我們引入了低俗和低質模型來幫助解決內容信息本身的問題,低俗和低質模型的預測結果會參與recall和rank模型的訓練及最終的推薦排序,從而保證提升轉化效率的同時持續構建良好的內容生態。

低俗模型目前採用的是分類算法來處理,低俗樣本主要包含涉政、涉黃,後續會擴充暴力、血腥及謾罵等類別。訓練集是基於正負樣本做的同時採樣,基於Bert模型做分類預測,目前線下準確率約92%。

低質模型的判別上主要是引入了困惑度的概念,困惑度是一種評判概率模型或概率分佈預測的衡量指標,可用於評價模型好壞,也是目前NLP方面用來衡量語言概率模型優劣的常用方法。主要是通過無監督的預訓練模型,計算語句的困惑度,結合實際場景設定對應閾值來對低質內容做處理。在解決內容語法、語義層面的質量問題上,該方案適用面廣、計算效率和準確率比較高。語句困惑度的訓練我們採用的是Bert模型,目前準確率約90%。

困惑度計算公式如下:

其中,分母部分代表測試集總長度,M是指訓練好的模型參數,p代表w出現的概率。

低質模型在語義語法判別基礎上,後續會考慮增加標題黨、廣告等類型的識別,另外,會基於用戶行爲、效果轉化、停留時長等維度數據構建低效模型來擴充內容側特徵。

3. 用戶標籤

用戶畫像標籤主要包括用戶基礎屬性和用戶行爲屬性兩方面,目前同鎮用戶畫像平臺共有150+個維度標籤,畫像標籤在推薦上目前主要用於用戶與內容匹配召回和用戶興趣建模。標籤構建分爲離線和實時計算兩種方式,實時數據流處理主要基於Kafka、Spark Streaming和Flink等流式處理框架來實現。標籤結構上包括原始數據、事實標籤、模型標籤和預測標籤(如圖4)。

結構化的畫像標籤是整個推薦系統和push推送系統個性化模型的基石,標籤本身的準確度、覆蓋度和實時性至關重要,隨着業務發展,也一直在不斷地擴充和完善。

圖4:同鎮用戶畫像標籤結構

算法模型

1.  召回模型

內容召回也稱粗排,是推薦系統的重要環節,召回策略分離線召回和實時召回,目前除CF、Attention、DeepFM等離線算法召回模型外,其他類型的召回策略基本都是實時計算的方式,以便能即時感知用戶的行爲偏好和反饋。

目前召回策略的類型主要包括:畫像標籤類召回、文本相似類召回、算法模型類召回、熱點策略類召回和其他策略召回。

a) 畫像標籤召回

畫像召回主要基於用戶實時、短期、中期和長期的畫像標籤做內容匹配性召回,針對的是已有行爲記錄的用戶羣,通過對用戶側和內容側標籤向量做餘弦相似度計算,並對最終的相似度打分做排序輸出,標籤本身的計算會考慮時間衰減等處理。畫像召回是高效直接的體現個性化因素的常用方式,尤其實時畫像召回能很好的捕捉用戶的實時偏好,通過實時調整策略爲用戶展示更匹配的結果。

該召回的優點很明顯:快速高效,可解釋性好,不足之處就是嚴重依賴標籤集的準確性,同時也存在越推越窄的問題,所以需要結合其他模型和處理方式來增加推薦的多樣性。

b) 文本相似召回

文本相似召回,毋庸置疑是刻畫匹配文本之間的相似度,以此來召回匹配度高的候選集。TF-IDF算法的優勢在於簡單,並且對文章的所有元素進行了綜合考量,但也存在致命的不足,TF-IDF把文章的每個詞看做獨立的個體進行處理,忽略了詞的意義和詞之間的關聯關係等因素,在這方面Word2Vec算法就做的很好,Word2Vec特點是將詞向量化,詞與詞之間就可以定量度量之間的關係,用來挖掘詞之間的聯繫。

目前實際使用上我們結合了兩者優點,對兩種模型召回結果做融合處理。召回流程上,我們拿用戶最近點擊的N個帖子id分別加載兩個相似模型結果,融合處理後得到對應的topN作爲召回集,並參與最終的Rank計算。

c) 算法模型召回

實際場景中,用戶分佈以及Item行爲分佈都是長尾的,在這樣長尾的數據上進行預估就要求我們的模型具備穩定的泛化能力。

算法召回模型承擔的角色很重要,目前我們主要用了ItemCF協同過濾和Attention、DeepFM深度學習算法的模型召回。並在應用過程中,結合具體場景和特徵做了對應模型調參和優化:

對ItemCF算法的具體應用和優化上,我們首先利用NLP工具Wor2vec對用戶行爲進行訓練,構造訓練數據時用到用戶點擊行爲數據和Word2vec CBOW模型,開啓10個線程,window參數設置爲5,sample參數設置爲1e-5,這樣做主要是爲了對熱門內容的懲罰,訓練好Item的Embedding後再對用戶點擊的Item做聚類,聚類數目爲10,然後再計算聚類中心和 Item Embedding 相似度較高的 topN item作爲候選集。算法效果對比之前ALS算法,訓練速度提升近4倍,召回策略的線上CTR提升約50%。

基於用戶行爲的多角度多層次Attention召回算法,主要是利用用戶瀏覽和點擊等行爲,訓練用戶重點關注哪些關鍵詞、哪些句子以及哪些類型的文章,這三層結構採用Attention進行權重打分,得到用戶的點擊喜好模型。其中的訓練和調參過程,首先從用戶行爲數據裏把瀏覽未點擊的數據做爲負樣本,點擊過的做爲正樣本,然後將正樣本label設爲1,負樣本設爲0,最後一層採取相似度計算並作爲輸出,最後採用迴歸模型進行擬合。效果方面,召回策略線上CTR 對比ALS算法相對提升70%,多樣性提升了53%。

基於深度學習算法deepFM的召回模型,我們選取5天內有點擊行爲的用戶作爲召回對象,將用戶特徵、item特徵作爲deepFM模型input,得出每個item對於用戶的預測score,每個用戶選取分值topN的item作爲召回候選集並存入redis供召回服務實時獲取。相比FM算法召回模型,deepFM的線上AB測效果提升45%。

d) 熱點召回策略

熱點召回策略是新聞資訊類推薦最重要的召回策略之一,包括地域熱點和全局熱點召回,尤其地域熱點召回是同鎮本地化特色的切實體現。地域熱點召回,顧名思義,主要依賴時間、地域、PV、CTR、CVR等維度數據綜合打分後來召回,目前我們分爲按天維度的三級地域召回(市、縣、鎮)和按小時維度的三級地域召回(市、縣、鎮)兩大類,用以覆蓋短期熱點和實時熱點新聞,熱點池採取定時更新的選取和淘汰機制來保證熱點數據的真實精準。

e) 其他召回策略

協同類特徵及模型無法解決冷啓動問題,針對沒有任何行爲記錄的新用戶羣體,我們採用了Bandit算法的搖臂策略來實現概率預估,簡而言之,就是採用初始策略爲用戶提供默認結果,然後通過用戶的反饋數據動態調整策略,爲下一刷提供最佳排序。在此基礎上,後面又上線了升級版,即興趣冷啓動召回策略,主要是搖臂的輸入由分類調整爲特定分類+topic的組合,實現對用戶實時興趣更精準的捕捉。

f) 召回策略統計分析

爲方便召回策略的對比分析和持續優化,我們對各策略的召回比例以及最終下發量做了日常分析和動態監控。由於內容源及上層模型的調整,召回策略也需要做對應比例和配置優化,以保證上下有機聯動和效果穩定。(如圖5)

圖5:召回策略下發量統計及趨勢分析

2. 排序模型

排序模型環節又稱精排,同鎮推薦系統排序模型從2019年4月初上線第一版至今,半年多時間裏前後主要經歷了四個階段的迭代優化歷程:(如圖6)

圖6:排序模型演進歷程

第一階段:規則策略排序

初期上線規則策略排序,一是爲了快速上線,二是建立排序模型Baseline。 規則策略主要是針對各召回策略按比例和既定數量輸出的候選集,然後基於時間、地域、行爲統計指標和轉化數據等維度進行權重計算,並綜合打分後輸出排序結果。

第二階段:樹模型+線性模型組合

排序模型在算法選型時,結合業務場景和經驗,我們直接採用了線性模型和非線性模型結合的方式,也屬行業主流方案。主要是通過樹模型進行特徵組合,使模型具有非線性與對連續特徵更好的處理能力。前期應用了GBDT+LR並對模型基於Baseline做了ABTest對比調優。後期採用XGBoost替換GBDT主要鑑於其在模型上做的改進和優化,不論是精度還是效率上都有了提升:

1) XGBoost損失函數中加入了正則化項,包含樹的葉子節點個數、每個葉子節點上值的L2模的平方和,控制模型複雜度,泛化能力強;

2) XGBoost模型增加了特徵採樣,以防止模型過擬合問題;

3) XGBoost能夠有效處理特徵中的缺失值。

實際升級優化過程中,對XGBoost做了相應調參:主要通過交叉驗證方式以auc爲評價指標對模型學習率、葉子節點權重、樹深度、樣本及特徵採樣率、L1和L2正則化係數等Grid Search,尋求最優參數。

由於xgboost本身在gbdt上做的優化改進,具有更好的泛化性,xgb+lr相對gbdt+lr大約有6%提升,期間對特徵工程做了一些擴充,加入了詞向量、用戶帖子來源偏好等統計特徵。  

第三階段:深度學習排序模型

隨着用戶量增加,數據訓練樣本不斷增多,在大量數據集下深度學習模型相對於傳統機器學習模型更具優勢。

DeepFM中fm+deep模型,能進行二階特徵組合與高階特徵組合,相比xgb+lr能更好從原始特徵中學習特徵之間隱藏的關聯性,由於deepfm中特徵交叉發生在bit級,而實際特徵中有很多多值離散特徵,因此引入xdeepfm使特徵交叉發生在特徵向量級並且加入了lr層,模型具有更好的特徵組合能力和穩定性。

1) DeepFM模型通過FM+DNN的方式能同時學習低階和高階的組合特徵,對於特徵之間的交叉組合能力強於xgboost;

2) XDeepFM模型在DeepFM基礎上做了優化改進,網絡結構圖如下。

圖7:DeepFM模型結構

圖8:XDeepFM模型結構

xdeepFM輸出函數如下:

其中,分別是DNN和CIN的輸出。XDeepFM不僅能同時以顯式和隱式的方式自動學習高階的特徵交互,使特徵交互發生在向量級,  更容易處理多值離散特徵,而且加入了線性模塊,依舊可以接入很多根據先驗知識提取的交叉特徵來提高模型記憶能力。我們線上最終採用xdeepfm後,效果相對 xgb+lr 在人均點擊和ctr上均有7%左右提升。

第四階段:XGB+LR & XDeepFM融合排序

由於XGB+LR和XdeepFM兩種模型對特徵組合學習具有不同的方式,且在實際表現中XGB、LR更傾向於熱點召回數據,而XdeepFM更傾向於算法模型召回數據,兩者結合後表現更爲均衡穩定。XGB+LR&XdeepFM相對XdeepFM平均約有5%提升。

表1:算法排序模型優化改進及效果對比

3. 融合控制模型

融合控制模型也稱重排,主要負責流量均衡和多樣性控制,運營及商業策略控制等。同鎮首頁Feed流推薦場景與其他業務的推薦有所不同,其涵蓋的內容包括新聞資訊和各分類信息,那麼如何將不同品類的內容通過模型統一排序?

由於不同品類帖子所具有的數據特徵差異很大,很難用模型統一訓練,所以我們對新聞資訊、招聘、房產等主要品類分別採用模型訓練、排序輸出,其他品類採用規則策略計算排序,最終各個品類的排序結果再通過融合模型統一排序。融合模型的處理主要基於地域用戶羣品類偏好統計模型、決策樹品類預測模型、流量均衡控制因子等做加權計算處理,品類Rank模型打分歸一化處理後與融合控制模型打分再做統一計算,從而得到最終的推薦排序。

ABTest及效果評估

爲保證線上推薦效果客觀、公正和準確的得到評估,也爲了滿足推薦各模塊長期迭代優化的訴求,我們搭建了ABTest實驗平臺,支持線上召回層、排序層、融合控制層和展示層的流量正交切分實驗,支持按照UV或PV方式分流,針對實際場景可以靈活配置不同的實驗組和實驗層,支持層級的無限擴展,並支持策略的實時動態調整。

同鎮推薦系統所有模型和策略的迭代優化都要經過離線實驗和線上ABTest評估,上線以來,召回模型、排序模型、融合控制模型和服務層分別經過幾個階段的評估和優化,目前線上主要效果指標CTR(點擊率)對比4月初相對提升率約175%。整體CTR效果趨勢圖如下:

圖9:feed推薦ctr效果趨勢

總結與規劃

推薦系統的本質就是匹配用戶的興趣和內容的特徵,因此標籤構建和特徵挖掘非常重要,需要貫穿推薦優化工作的始末。同鎮feed推薦區別於其他垂類業務的推薦場景,內容品類複雜,特徵雜且多非結構化形式,推薦系統既要提升轉化效率,又要突出本地化特色,更要維護內容生態,因此需要平衡各個目標,面臨的挑戰是多方面的。

經過一段時間的摸索與實踐,同鎮千人千面推薦系統取得了一定的成果與積累。接下來,我們將繼續在特徵、模型和工程等方面做迭代優化。

  • 繼續沉澱、打磨現有推薦策略和模型,在目標優化的道路上,沒有最好,只有更好;

  • 更深度挖掘用戶意圖,刻畫上下文場景,擴充更多維度標籤和特徵;

  • 探索新的網絡結構,增加圖像識別模型,增加新的深度學習、強化學習算法模型;

  • 增加多目標優化模型,以充分結合的業務目標和算法目標爲導向;

  • 擴充用戶畫像平臺,逐步構建同鎮知識圖譜。

參考文獻

1. https://arxiv.org/pdf/1803.05170.pdf

2. https://blog.csdn.net/yfreedomliTHU/article/details/91386734

作者簡介

閆文昌,58算法架構師/技術委員會委員。

live

58技術沙龍活 動第四期直播

“58同城推薦系統系列話題”

點擊圖片即可報名搶座

閱讀推薦

相關文章