search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

達觀數據實時演算用戶動態數據,提升運營效率

隨著移動互聯網技術的迅猛發展、互聯網信息的爆炸式增長和種類的紛繁複雜,導致用戶常常在面臨信息選擇時感到無所適從。這種選擇多樣性不但沒有產生經濟效益,反而降低了用戶滿意度。同時,互聯網上的各種物品又存在長尾(long tail)現象,指大部分商品屬於冷門而沒有展示的機會。Chris Anderson在2006年出版的《長尾理論》一書中指出,傳統的80/20原則(80%的銷售額來自於20%的熱門品牌)在互聯網時代下回面臨更多挑戰。主流的商品基本上代表的是大部分用戶的需求,但是長尾的商品代表的則是一小部分個性化需求。

圖1:用戶面臨信息選擇時的無所適從

近年來,推薦系統被證明是一種解決「信息過載」和「長尾物品」問題的有效工具。推薦系統基於知識發現的相關技術來解決人們在選擇商品、信息或者服務是的問題,尤其是基於海量用戶行為數據的最近鄰協同過濾方法獲得普遍應用。但是數據量的急劇增長也給推薦系統帶來了一些挑戰,包括如何開發高質量的推薦系統、如何快速響應用戶行為變化和高併發請求、如何解決數據稀疏情況下的高覆蓋問題等。

技術是慢慢沉澱的。達觀數據(www.datagrand.com)推薦團隊在智能推薦和數據挖掘領域深耕多年,不僅多次獲得國際頂級數據挖掘比賽冠軍,而且自主研發的達觀推薦引擎也為企業帶來了極大的經濟效益。本文從系統架構、推薦演算法、效果評估和優化等方面分享達觀數據在高質量推薦系統研發方面積累的一些經驗。(達觀數據聯合創始人 於敬)

1. 系統架構 從圖中的系統框架圖可以看出,整個推薦系統從下往上依次可分為:基礎層、模型層、演算法層、組合層和應用層。在具體的業務場景中,這種層次結構和實際的數據流向是對應。從最底層的數據存儲,經過一層一層的數據加工,最終在頂層的應用層,匯總成最優化的推薦結果,按照指定格式對外提供服務。

圖2:達觀數據推薦系統架構

1) 基礎層,主要包括數據生成、傳輸、預處理和存儲。

數據的採集有多種方式,包括HTTP方式的上報、伺服器日誌列印、SDK採集、爬蟲爬取、FTP拉取等。為了保證後續使用的數據一致性,需要通過不同的管道方式進行傳輸,將原始的數據匯總到一起,並生成統一的規範化格式,如用戶多種ID的歸一。

數據不僅包括基本的用戶和物品數據,還包括各樣各樣的用戶行為數據,如用戶的註冊、登錄、瀏覽、點擊、購買、收藏、打分、評論等。

另外,在原始的數據源中會混雜各種各樣的噪音數據,一方面是在數據採集和上報的過程中,出現一些異常數據,另一方面也包括系統上線運行時所產生的作弊數據。所以在數據存儲前需要進行深度清洗。

數據採集和上報的異常數據,需要結合資料庫表結構和實際場景做過濾,如空值檢查、數值異常、類型異常、數據去重。另外,對於 「人為」的噪音數據,如刷點擊、刷榜單等行為,這些關鍵數據會嚴重影響後續演算法的效果,需要有一些反作弊策略進行清除或者降權,如進行session分析,結合cookie、ip、行為發生的時間和次數等一些規則進行過濾。

2) 模型層,主要是包括生成用戶和物品畫像以及建立各種底層的數據模型。

用戶畫像包括兩方面信息,一是通過多種方式採集到基本人口統計學信息,二是通過對海量用戶行為數據進行深入分析和挖掘,從多個維度來描述用戶的基礎屬性、標籤及興趣點等,如對品牌、標籤和類別的偏好,清晰並且準確地勾勒出用戶的輪廓概貌。這些數據幫助企業更好了解用戶行為路徑,明確用戶流失情況和原因,為應用方的產品功能優化決策提供可靠參考依據。

圖3:用戶畫像

物品畫像除了包括基本信息,對於服裝而言如名稱、類別、標籤、品牌、尺寸、適合年齡和性別等,還包括各種維度的指數數據,如衡量新商品的潛力指數、衡量商品歷史銷量的吸金指數以及全局熱門指數等。

其它模型包括基於歷史商品銷售數據的銷量預測模型、基於流失用戶數據的預流失模型等。

3) 演算法層,包括各種推薦演算法以及多種強規則策略。

推薦演算法是將物品推薦給用戶的紐帶,基於各種各樣的演算法生成待推薦的物品集合,作為最終的候選集輸入到組合層。其中應用最廣泛的是基於內容的推薦和協同過濾。

a) 基於內容的推薦

主要過程是將推薦物品的信息特徵和待推薦對象的特徵相匹配的過程,從而得到待推薦的物品集合。整個流程包括三個階段。

首先是進行內容分析,對於非結構化信息,需要在預處理階段抽取相關的結構化信息,以便於下一階段的處理。數據對象經過特徵抽取技術的分析,目的是將原始信息空間轉換到想要的物品描述格式,如將網頁表示成特徵向量。這樣的描述格式作為特徵學習和過濾組件的輸入。

然後,在特徵學習階段,根據對海量用戶行為數據的分析挖掘,獲取用戶偏好的數據特徵,如對類別、品牌的偏好,並泛化這些特徵,最終構建用戶特徵信息。泛化策略一般是通過機器學習技術實現的,它可以從用戶喜好的或不喜歡的物品中推斷出一個用戶的興趣模型。

圖4:基於內容的推薦系統的層次結構

最後,過濾組件將推薦對象和待推薦對象在特徵空間上進行匹配,從而推薦出內容上很相關的物品。匹配演算法很多是借鑒了信息檢索領域中的技術,如K最近鄰KNN和Rocchio的相關性反饋方法。

圖5:KNN方法

K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。在推薦系統中,基於向量空間模型計算推薦對象和待推薦對象之間的相似度,取相似度最高的N個作為最終的推薦結構。KNN方法雖然從原理上也依賴於極限定理,但在決策時,只與極少量的相鄰樣本有關。由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。

Rocchio方法的主要思想是,首先將評分文檔分成兩組:,分別對應喜歡和不喜歡的文檔;然後計算這些分類的初始向量。當前查詢詞像文檔一樣表示為多維單詞向量,然後重複地增加相關文檔的加權初始向量,並減去代表不相關文檔的加權向量,這樣逐步優化,最終得到一組相關文檔。調整到變數和用於精細調整「移動」到更加相關文檔的過程。實驗表明,正反饋比負反饋更有價值,甚至僅考慮正反饋會更好一些。

基於內容的推薦方法,優點是能保證推薦內容的相關性,並且根據內容特徵可以解釋推薦結果,而且對新物品的推薦是也能有很好的考慮,也不需要專業的領域知識。另一個重要的優勢,是基於內容的推薦能很好的解決推薦系統的「冷啟動」問題,因為這類推薦演算法不需要依賴用戶行為的積累,當待推薦的物品是新出現時,基於內容的推薦演算法往往是最有效的方法。缺點是由於內容高度匹配,導致推薦結果的驚喜度較差,而且對新用戶不能提供可靠的推薦結果。對稀疏數據、複雜屬性的處理等問題的推薦結果不夠理想。

協同過濾

圖6:協同過濾技術總覽

主要思想是基於群體智慧,利用已有大量用戶群過去行為數據來預測當前用戶最可能感興趣的東西。這種方法克服了基於內容方法的一些弊端,最重要的是可以推薦一些內容上差異較大但是又是用戶感興趣的物品。構成CF(Collaborative Filtering)的兩種主要技術:基於領域的方法和隱語義模型。

基於領域的方法重點關注物品之間的關係或者用戶之間的關係,基於物品的方法是根據用戶對和他感興趣的物品相似的物品評分,來對該用戶的偏好物品建立模型。隱語義模型採用的是另外一種方法,把物品和用戶映射到相同的隱語義空間。這個空間試圖通過描述物品和用戶兩種實體在因子上的特徵來解釋評分,而這些因子是根據用戶的反饋自動判斷出來的。

用隱語義模型來進行協同過濾的目標是揭示隱藏的特徵,這些特徵能解釋觀測到的評分。該模型包括pLSA(Probability Latent Semantic Analysis)模型、神經網路模型、LDA(Latent Dirichlet Allocation)模型,以及由用戶-物品評分矩陣的因子分解推導出的模型(也叫基於SVD的模型,Singular Value Decomposition)。由於矩陣因子分解技術在線上業務的準確性和穩定性的突出表現,已經成為協同過濾演算法的首選。達觀數據的推薦系統也大量使用了這種技術,並做了諸多性能和效果優化。

CF模型視圖捕捉用戶和物品之間的交互作用,正式這些交互作用產生了不同的評分值。設為總體評分值,未知評分的基準預測綜合考慮了用戶和物品兩個因子參數表示用戶和物品的與評分平均值的偏差。我們可以通過解決最小二乘法的問題來估計和的值

在上述這個公式中,第一項

用來尋找與已知評分數據擬合得最好和的。正則化項通過對參數的複雜性增加懲罰因子來避免過擬合問題。這個最小二乘法問題可以通過隨機梯度下降(SGD,Stochastic gradient descent)演算法有效地解決。矩陣因子分解模型把用戶和物品兩方面的信息映射到一個維度為的聯合隱語義空間中,因此用戶-物品之間的交互作用被建模為該空間的內積。例如,如果物品是電影,因子變數將會用來度量如喜劇或悲劇、情節的數量或者面向兒童的等級等這些明顯的維度,以及如性格發展深度或者「突變」等隱式維度,甚至是無法解釋的維度。相應地,每一個物品都有一個維向量相關,每一個用戶都與一個維向量相關。給定一個物品,向量的維度值代表了該物品擁有這些因子的程度。例如,某部電影的搞笑因子程度為5,而恐怖因子程度為1。取值大小反應了物品擁有這些因子的積極或者消極程度。給定一個用戶,的維度值代表了用戶對這些因子的偏好程度。如某用戶對搞笑因子的偏好程度為1,而對恐怖因子的偏好程度為0.01。同樣地,這些值的大小反映了用戶對這些因子的消極或者積極的評價。為了學習模型中的參數,也就是、、和,我們可以最小化以下正則化的平方誤差常量控制了正則化程度,一般通過交叉驗證來獲得。

考慮隱式反饋信息可以增加預測準確度,這些隱式反饋信息提供了用戶愛好的額外信息。這對於那些提供了大量隱式反饋但是僅僅提供少量顯式反饋的用戶尤為重要。這就出現了一些根據用戶評分的物品來對用戶的某個因子(比如,電影評分記錄中用戶對喜劇電影的喜愛程度)建模的方法,這裡談一下SVD++,這種方法能夠提供比SVD更好的準確度。

為了達到上述目的,我們增加了第二個物品因子集合,即為每一個物品。這些新的物品因子向量根據用戶評分的物品集合來描述用戶的特徵。模型如下:例如,如果一個用戶對中的一些物品有某種類型的隱式偏好(如他買過它們),對中的物品又另一種類型的偏好(如他贊過它們),就可以使用下面的模型:

在處理用戶行為數據的過程中,需要考慮時間因素的影響,畢竟用戶的偏好是隨著時間變化的。比如,用戶會改變對特定導演或者演員的看法。矩陣分解的方法也能很好地對時間效應進行建模。得到擴展模型time SVD++如下:

每一次迭代的時間複雜度仍然與輸入大小呈線性關係,而運行時間大概是SVD++演算法的兩倍,原因是更新時序參數需要額外的花費。重要的是,收斂速度並沒有受時序參數化的影響。

在演算法層,經過多種推薦演算法的處理,最終生成了候選的推薦物品集合,作為組合層的輸入數據。

4) 組合層,主要是對演算法層的結果數據進行重排序。

推薦系統需要面對的應用場景往往存在非常大的差異,例如熱門/冷門的內容、新/老用戶,時效性強/弱的結果等,這些不同的上下文環境中,不同推薦演算法往往都存在不同的適用場景。不存在一個推薦演算法,在所有情況下都勝過其他的演算法。而融合方法的思想就是充分運用不同分類演算法各種的優勢,取長補短,組合形成一個強大的推薦框架。

圖7、重排序流程

由於排序過程牽涉到各種維度的參數數據,導致調參費時費力,而且很可能會出現過擬合現象。而機器學習方法不僅有成熟的理論基礎,而且很容易融合多種特徵,通過不斷的迭代來進行參數優化,可有效解決數據稀疏、過擬合等問題。

對於已標註的訓練集,首先選定LTR(Learn To Rank)方法,確定損失函數,以最小化損失函數為目標進行優化即可得到排序模型的相關參數,這就是學習過程。預測過程將待預測結果輸入學習得到的排序模型中,即可得到結果的相關得分,利用該得分進行排序即可得到待預測結果的最終順序。(達觀數據聯合創始人 於敬)

關於排序模型,有很多模型可以選擇,如LR(Logistic regression)、DT(Decision Tree)、SVM(Support Vector Machine)。LR主要適用於特徵數很多、樣本量很大的情況。如果是樣本量很大,但是特徵比較少的情況時,建議使用DT。主要是因為在特徵數較少時,對應的問題往往是非線性的,DT可以發揮自身的優勢。另外,SVM在解決非線性分類問題時效果也非常好。

經過多個推薦演算法的處理,最終得到待推薦物品的結合,使用少量維度的特徵進行排序過於簡單,效果也大打折扣。基於推薦演算法得到的相關特徵,結合物品和用戶的特徵進行組合,可以得到各種特徵,並且有些特徵是正相關有些是負相關,需要不斷優化。藉助機器學習方法得到了最終的物品排序,呈現給用戶。

5)應用層,主要是按照不同的推薦類型,將推薦結果通過API調用的方式返回,包括個性化推薦、相關推薦和熱門推薦。

2. 近實時響應用戶行為反饋 高質量推薦系統的一大特點是能在高併發的情況下,快速響應用戶行為反饋。用戶的信息訴求受很多因素影響,如時間、場景、心情等。用戶心情有低落有興奮、在捷運上還是在辦公室。達觀數據推薦系統採用三層結構,根據用戶點擊反饋實時挖掘用戶興趣,最快最準的滿足用戶信息訴求。

圖8:推薦系統三層體系

受制於硬體資源和時效性因素,推薦系統的性能也面臨諸多考驗,體系結構也需要優化到極致。數據量急劇增加,每天採集到的物品數據、用戶數據以及海量的行為數據,對計算資源都是極大的挑戰,而且數據變化很快。hadoop集群的運算能力也是有限的,分散式計算的時效性也跟不上用戶實時的信息訴求。

達觀數據推薦系統三層體系借鑒了信息檢索領域思想,採取online-nearline-offline的結構。主要思想是讓最珍貴的資源留給高價值的user和item。Online模塊採用負載均衡,負責及時響應API請求,並返回推薦結果,保證高可靠高併發。Offline基於hadoop集群對海量數據進行深入挖掘,承擔高負荷的演算法。Nearline模塊主要是填補Online和Offline之間的空白。作為Offline的補充,保證快速響應點擊反饋數據。作為Online的補充運行一些輕量級的演算法。

三層體系協同工作,保證了推薦系統的高可靠、高併發的性能;同時高負荷和輕量級的演算法並舉,秒級響應用戶行為反饋,保證了推薦結果的精準。(達觀數據聯合創始人 於敬)

3. 推薦系統效果評估 推薦系統有各種維度上的指標進行衡量,可以定性描述,也可以定量計算。常用的評價指標有以下幾種:

1) 用戶滿意度。個性化推薦系統的主體是用戶,這個指標是對推薦系統好壞最直接的回答。這部分數據一般是通過問卷調查的方式獲得。

2)準確率。推薦物品本身是對用戶興趣的預測,這個指標可以衡量實際結果和用戶期望結果直接您的偏差。一般通過離線數據計算得到,常用均方根誤差(RMSE)和平均絕對誤差(MAE)計算。

3)覆蓋率。反應了推薦的物品在「長尾問題」上的效果。覆蓋率的計算方法一般是看推薦出來的物品佔全部物品的比例。

4)多樣性。用戶的口味一般不是簡單的一兩種,而是非常廣泛的,推薦結果也需要覆蓋到用戶多種口味想。多樣性描述了推薦物品之間的不相似性。不同的物品相似度度量函數可以定義不同的多樣性。

5)新穎性。主要表現的是推薦的物品是用戶沒有了解過的。一般通過推薦結果的平均流行度進行衡量,因為相對冷門的物品會讓用戶覺得新穎。

在實際的業務場景中,衡量推薦系統也有很多更具體的指標。

1)在帶有用戶行為反饋的場景下,通過採集用戶「點贊」或者「不感興趣」的反饋,總體衡量推薦結果的效果。

2)在很多場景中,並沒有和用戶交互的操作。有多種指標可以應用到線上業務,如推薦點擊率、推薦帶來的pv、uv和登錄uv、轉化率、付費數量和金額等等。

3)還有很多反應用戶粘性的指標,如用戶停留時長,用戶平均點擊物品數、用戶進入站點的次數等等

推薦系統效果的好壞有多種維度,結合到實際的業務場景,一般是選取主要的幾個指標進行量化,通過不斷的迭代和AB測試來優化推薦系統。

達觀數據推薦系統的技術實踐不僅在國際大賽上屢獲殊榮,在工業界也給企業帶來了實實在在的價值。個性化推薦點擊率提升了3倍、付費金額提升了60%......推薦系統不僅極大的改善了用戶體驗,滿足了用戶的信息訴求,同時也增加了用戶粘性、減少了用戶流失,提升了企業經濟效益。

效果調優 為了提升推薦系統的效果,首先需要「對症下藥」,也就是推薦出來的物品集合可以追溯來源,找到問題。在設計推薦系統的時候,對推薦結果進行「埋點」,帶上推薦策略的標識。然後在推薦效果的時候,對各個推薦策略分別統計結果,對比數據可以看出各個演算法的優劣。最後,根據推薦統計結果,優化對應的推薦策略,進行分流測試,驗證優化方法的有效性。

圖10:不同推薦策略的效果統計

和搜索引擎一樣,在推薦系統中也存在一個問題:position bias。推薦結果在最終展現給用戶的時候,不可避免的會有先後之分,好的位置有好的曝光機會。但是最好的位置不代表有最好的推薦效果,比如推薦點擊率。即使有更高的推薦點擊率也不代表就一定是好的推薦結果。所以需要去除position bias,進行點擊反饋調權。

首先需要基於歷史數據,分析每個位置的推薦效果數據,這個時候就可以看出各個位置的推薦系統的差異。然後在推薦的時候,基於推薦物品數據和每個位置的推薦效果數據,對最終的推薦結果順序進行調整。從下圖可以看出,使用點擊反饋之前點擊率在11.5%左右,加上點擊反饋之後,點擊率在14%左右,提升了20%。

圖11:點擊反饋調權對推薦點擊率的影響

6、結束語

本文介紹了達觀數據推薦系統的一些實踐經驗,從框架圖的五個層次詳細說明了推薦系統的整個流程。同時分享了達觀數據在高質量推薦的性能優化、快速響應用戶行為反饋、推薦效果評估和優化等方面的成果。推薦系統不僅可以有效解決信息過載和長尾物品兩個方面的問題,提供了極佳的用戶體檢,滿足了用戶的信息需求,也幫助了企業充分挖掘其中蘊含的商機,提升經營業績。達觀數據一直致力於為企業提供優質的大數據服務,經過多年的積極探索,目前在推薦系統研發和效果提升方面已經積累了豐富的實戰經驗。達觀數據也會不斷嘗試新技術,持續不斷地給企業提供更加優質、穩定、可靠的推薦系統服務。

作者:於敬,達觀數據聯合創始人,主要負責智能推薦系統的研發工作。同濟大學計算機應用技術碩士,之前在盛大創新院、盛大文學、騰訊文學從事智能推薦、用戶畫像及建模、數據挖掘和分析等相關工作。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦