導語
本文基於58同鎮推薦場景,闡述了AI技術在賦能下沉市場方面所做的一些探索、應用和實踐,希望對大家有所幫助和啟發。
背景AI(人工智慧)是引領新一輪科技革命和產業變革的戰略性技術,近年來,通過人工智慧提高生產力以及創造全新的產品和服務,已經成為企業競爭和產業升級的迫切需求。網際網路和AI技術的飛速發展已經深刻改變了人們的生產和生活方式,但是地域發展上也極不均衡,廣大的四五線城市和鄉村市場依然存在資訊壁壘,對新技術的需求更加迫切,下沉市場所擁有的巨大潛力讓網際網路巨頭紛紛展開佈局。
58同鎮是公司進軍下沉市場最重要的戰略性業務,在全國布有一萬多個鄉鎮站點,覆蓋31個省份,年服務超過1億使用者。同鎮利用站長的私域流量和58本地版APP的公域流量,並依託下沉市場的資訊傳播和滲透優勢,可以觸達千萬級的鄉鎮人群,致力於為下沉市場使用者提供精準的本地化資訊服務。那麼如何更精準的刻畫使用者群,更高效的提升流量轉化和使用者體驗,這一切都離不開AI技術的賦能。
場景概述同鎮智慧推薦,採用Feed流展現和互動方式,面向下沉市場使用者群,提供基於地域分發的多品類資訊融合推薦。內容涵蓋新聞資訊、招聘、房產、汽車和交友等品類資訊。個性化推薦,連線了內容生產者和消費者,承載著58本地版APP引流、轉化和體驗落地的價值使命,對使用者持續增長、高效轉化和長期留存都有著非常重要的作用。
圖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推送系統個性化模型的基石,標籤本身的準確度、覆蓋度和實時性至關重要,隨著業務發展,也一直在不斷地擴充和完善。
演算法模型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)
第一階段:規則策略排序
初期上線規則策略排序,一是為了快速上線,二是建立排序模型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%提升。
3. 融合控制模型
融合控制模型也稱重排,主要負責流量均衡和多樣性控制,運營及商業策略控制等。同鎮首頁Feed流推薦場景與其他業務的推薦有所不同,其涵蓋的內容包括新聞資訊和各分類資訊,那麼如何將不同品類的內容通過模型統一排序?
由於不同品類帖子所具有的資料特徵差異很大,很難用模型統一訓練,所以我們對新聞資訊、招聘、房產等主要品類分別採用模型訓練、排序輸出,其他品類採用規則策略計算排序,最終各個品類的排序結果再通過融合模型統一排序。融合模型的處理主要基於地域使用者群品類偏好統計模型、決策樹品類預測模型、流量均衡控制因子等做加權計算處理,品類Rank模型打分歸一化處理後與融合控制模型打分再做統一計算,從而得到最終的推薦排序。
ABTest及效果評估為保證線上推薦效果客觀、公正和準確的得到評估,也為了滿足推薦各模組長期迭代優化的訴求,我們搭建了ABTest實驗平臺,支援線上召回層、排序層、融合控制層和展示層的流量正交切分實驗,支援按照UV或PV方式分流,針對實際場景可以靈活配置不同的實驗組和實驗層,支援層級的無限擴充套件,並支援策略的實時動態調整。
同鎮推薦系統所有模型和策略的迭代優化都要經過離線實驗和線上ABTest評估,上線以來,召回模型、排序模型、融合控制模型和服務層分別經過幾個階段的評估和優化,目前線上主要效果指標CTR(點選率)對比4月初相對提升率約175%。整體CTR效果趨勢圖如下:
總結與規劃推薦系統的本質就是匹配使用者的興趣和內容的特徵,因此標籤構建和特徵挖掘非常重要,需要貫穿推薦優化工作的始末。同鎮feed推薦區別於其他垂類業務的推薦場景,內容品類複雜,特徵雜且多非結構化形式,推薦系統既要提升轉化效率,又要突出本地化特色,更要維護內容生態,因此需要平衡各個目標,面臨的挑戰是多方面的。
經過一段時間的摸索與實踐,同鎮千人千面推薦系統取得了一定的成果與積累。接下來,我們將繼續在特徵、模型和工程等方面做迭代優化。
繼續沉澱、打磨現有推薦策略和模型,在目標優化的道路上,沒有最好,只有更好;更深度挖掘使用者意圖,刻畫上下文場景,擴充更多維度標籤和特徵;探索新的網路結構,增加影象識別模型,增加新的深度學習、強化學習演算法模型;增加多目標優化模型,以充分結合的業務目標和演算法目標為導向;擴充使用者畫像平臺,逐步構建同鎮知識圖譜。參考文獻
1.https://arxiv.org/pdf/1803.05170.pdf
2.https://blog.csdn.net/yfreedomliTHU/article/details/91386734
作者簡介
閆文昌,58演算法架構師/技術委員會委員。