点击模型:达观数据提升算法精度的利器
在搜索、推薦、廣告引擎中,系統會通過復雜算法生成一個最終的結果列表。用戶在看到這個結果列表時,未必都會對排序滿意,比如有時覺得排序的順序有問題,或者發現一些不符合喜好的item。如果從算法層面來調優,總會有按住葫蘆起了瓢的感覺,優化了某些bad case的同時,會帶來新的bad case,這種情況下,往往就需要點擊模型來在“近線端”進行修正。通過用戶的點擊反饋,可以從算法的另一個層面,對結果進行調優:將符合用戶偏好但位置靠后的item提取至前,或者將不符合用戶意圖的item降權減分。達觀數據在引擎架構研發實踐中,大量使用到了點擊模型,通過與用戶的隱性交互,大幅提升了算法效果,積累了豐富的實戰經驗(達觀數據聯合創始人 江永青)。
點擊模型概述
隨著大數據技術的發展,互聯網上的數據呈現暴發式增長,通過收集海量用戶行為數據,尤其是點擊數據,能夠更好地預測用戶行為和挖掘用戶需求。在機器學習領域的訓練數據也不再僅僅是通過費時費力的人工標注方式獲取,而是更多地基于點擊反饋進行樣本收集,既減少了數據獲取成本,又保證了最新的時效性。
點擊模型通過獲取用戶的歷史點擊,為用戶行為進行建模,在模擬出用戶的點擊偏好后,能夠最大程度優化系統效果。用戶的點擊行為都有一定的規律性,遵循這些規律,基于如下的假設,我們可以建立起用戶的點擊模型:
?用戶的瀏覽總是按某種順序查看的,第一眼容易看到的結果會獲得更多關注;
?用戶覺得標題、圖片、摘要等初步滿足了需求的結果,才會有可能點擊查看;
?如果某一個結果項完全滿足了用戶的需求,則再看其他項的可能性會比較低;
?被點擊越多的結果,越可能是好結果;
?最后一次點擊的結果往往是最好的結果,其次是第一次點擊的結果;
等等。
點擊模型挑戰和難點
利用點擊行為的假設,容易構建出初步的點擊模型。但在實際應用中,一個好的模型需要面臨和解決大量的挑戰和難點,包括:
第一大問題是位置偏向(position bias)。因為用戶點擊會容易受到位置偏向的影響,排序在前的結果更容易獲得用戶的點擊,在實際的應用中,一般會對點擊偏向作一些懲罰,比如排在前列的結果被用戶跳過了,將會比后面被跳過的結果降權更多;用戶進行了翻頁操作,上一頁的結果都會獲得減分處理。
第二大問題是冷啟動問題。即新項目、新廣告的點擊預測問題。經常使用的方法是通過已有的點擊反饋數據,挖掘學習出其中的規律,從而可以對新出現的項目,預測用戶對它們可能的點擊行為。
第三大問題是感知相關性。用戶對結果的點擊反饋很大程度是基于標題、圖片、摘要等感官獲取,具有很強的第一主觀意識,很多時候并不能正確反映結果的有效性,但點擊日志數據經常并不能獲得用戶對展示項“真實”的滿意相關性數據,因此在基于現有的“感觀性”數據之上,需要從其他方面進行補充,比如用戶點擊結果后的后續操作(點擊商品后加購物車,點擊書籍后加書架等),或者引入除點擊率外的滿意率等參數來構建點擊模型。
第四大問題是稀疏性。在搜索排序中,點擊數據一般只覆蓋到排序結果的前面幾頁,容易出現長尾覆蓋不足的問題,推薦和廣告引擎中也經常會有物品冷門而不會被點擊到。此外點擊數太少也容易導致點擊數據不可靠。因此除了使用一些平均值或預測值對數據進行補充外,經常也要對稀疏數據進行平滑處理。
第五大問題是點擊作弊。因為點擊行為容易生成,作弊者通常會使用模仿用戶點擊的行為進行對系統進行攻擊,比如使用機器人對某個位置進行重復點擊等。像這種情況下就需要識別出作弊數據,以免對系統結果產生人為的干擾。
第六大問題是Session收集。用戶的session信息非常關鍵,它記錄了用戶在進入頁面、查看結果、點擊結果以及后繼的操作(比如翻頁、加購物車等)。只有通過session信息才能把用戶的行為聯系起來,構建出完整的模型,因此從海量數據中把每一個用戶所有session的操作都完整地挖掘出來非常重要(達觀數據聯合創始人 江永青)。
點擊模型的類型
針對點擊模型的研究非常多,很多種類的模型也被提出并應用到了實踐中,現舉一些常見的點擊模型類型:
1) 位置模型(position model)
位置模型考慮到每個用戶對每個item位置都會有一定的查看概率(Examination),只有查看到該item后用戶才會有一定概率點擊。因此某個用戶對某個位置的點擊概率計算如下:
其中的βp表示的是在位置p上被查看到的概率(與用戶無關),αu表示的是用戶u在查看到某個item后點擊的概率(與位置無關)。αu和βp的值可以根據用戶歷史點擊記錄,通過平均值法、極大似然法等方法計算。
2) 瀑布模型(cascade model)
瀑布模型考慮到在同一個排序列表里的item的位置依賴關系,它假設用戶從上至下依次查看頁面里的item,如果結果滿意就會進行點擊,然后該session結束;否則跳過該項繼續向后查看。第i個位置的item點擊概率計算如下:
其中的ri表示第i個文檔被點擊的概率。
3) CCM模型
位置模型和瀑布模型都未考慮同一個session中不同排序結果之間的互相影響,考慮到如下情況:假如第一個和第二個item都非常符合用戶偏好,那后續item的查看概率及點擊概率將會減少;相反,如果前面幾個item效果非常差,則后面的item將獲得更高的查看和點擊機會。CCM模型假設用戶可以在對某一個item滿意后,也還會繼續查看后續結果;并且第j個排序結果的查看(Examination)和點擊(Click)會影響到對第j+1個排序結果的行為:
4) 貝葉斯模型(DBN)
貝葉斯模型引入了滿意度(satisfied rate)的概念,它考慮到用戶點擊了某一個item未必表示對它滿意,點擊代表了“感知相關性”,滿意則代表了“真實相關性”,貝葉斯模型很好地把這兩個相關性區分了開來。根據DBN的理論,具體模型圖及原理如下:
圖1 貝葉斯模型
Ei表示用戶是否查看了第i個item;Ai 表示用戶是否被第i個item吸引;Si表示用戶點擊第i個item后是否對這個結果滿意;Ci表示用戶是否點擊了第i個item。因此每個操作的關系傳遞如下:
另外還有幾個重要的參數:γ表示用戶對當前第i個結果不滿意后,查看下一條結果的概率;au表示用戶對該結果的感知相關性,吸引用戶進行點擊;su表示用戶點擊item后,對其滿意的相關性。au和su都存在一個Beta先驗概率,指定γ后,可以通過EM算法計算出au和su的值。特別地,如果指定γ為1,表示用戶會一直向后查看item,直到找到滿意的結果為止,這時通過頁面最后一個點擊的位置,就能確定查看過的items(最后點擊位置以上)和未查看過的items(最后點擊位置以下),此時不用EM算法就能計算出au和su參數值,以α和β表示的相應的先驗概率,計算au和su的方法簡化為:
點擊模型的相關性分數可以簡單計算為:ru = au * su,意義表示為用戶被結果吸引后,點擊查看并對其滿意的概率。
5) UBN模型
與CCM和DBN模型不同的是,UBN模型沒有采用瀑布模型的假設,而是假設用戶對某個位置i上的結果查看的概率,不僅受到位置的影響,還受到在同一個session內在之前某個位置點擊過的item的影響。引入γrd表示用戶在r-d位置點擊后,查看r位置item的概率:
其中Ci:j = 0表示Ci = Ci+1 = ? ? ? = Cj = 0。
如何運用點擊模型來提升算法效果
點擊模型經常應用于各類系統以提升算法效果,現就以搜索、推薦、廣告以及數據挖掘中的各種使用場景介紹:
1) 搜索系統
在搜索系統中,點擊模型可以有如下集成方式:直接用在排序中,如將點擊模型相關性分數簡單加權在“近線端”,可以直接調整結果的排序位置;也可以通過學習排序的方式,樣本獲取是將排序頁面的被點擊item作為正樣本,展示了但未點擊的item作為負樣本,每天積累起足夠多的訓練樣本。通過選取豐富的特征,可以使用分類器學習出合適的排序模型。這些豐富的特征包括查詢詞在文檔中的詞頻信息、查詢詞的IDF信息、文檔長度、網頁的入鏈數量、網頁的pageRank值、査詢詞的Proximity值等等,能夠充分體現查詢Query和文檔之間的聯系。在用戶下一次查詢時,可以通過分類器來預估新的排序結果。
2) 推薦系統
推薦系統在計算推薦結果時,也大量使用到了點擊模型。比如協同過濾算法中,如果沒有顯性的評分機制,就需要收集點擊的行為來作為正向的評分。不同類型的點擊(如查看、加購物車、加關注等)可以生成不同維度的二維相似度矩陣,最后推薦的結果由這些矩陣計算生成的中間結果加權得到。推薦系統也可以在“近線端”進行調權,如用戶“不喜歡”過的物品,下次就不會再推薦展示;或者通過點擊反饋實時調整切換算法,對不同的用戶調整使用不同的算法引擎,達到最大的效果收益。
3) 廣告引擎
廣告引擎中使用最多的就是CTR預估了。CTR預估使用到LR模型,因為它算法簡單,運算速度快,輸出0~1的概率值,正好符合廣告引擎的需求。廣告選取的特征也很豐富,在用戶層面包括用戶的性別、年齡、地域等,廣告層面則包括廣告大小、廣告類別、廣告文本、廣告所屬的行業等。廣告引擎使用的樣本也是基于點擊反饋收集,用戶點擊的廣告作為正樣本,用戶查看了但未點擊的廣告作為負樣本。收集到足夠多的樣本后,使用LR訓練出一個最優的模型。在用戶查詢廣告時,LR模型通過用戶和候選廣告的特征,預測出各候選廣告被用戶點擊的概率,這個計算出的預估概率是廣告引擎中十分重要的分數結果,對廣告排名展現起了決定性的作用。
圖2 Logistic Regression模型
點擊模型系統架構
一般來說,點擊模型需要大量采集用戶點擊位置、頁面瀏覽時長、頁面關閉、點擊次數等交互信息。采集的大量數據在進行數據清洗,以及反作弊處理后,才能得到有效的點擊數據,為后續數據分析挖掘提供支持(達觀數據聯合創始人 江永青)。
1) 數據采集模塊
點擊模型數據采集是非常重要的模塊,因為所有原始數據都是從這導入。在移動端和pc端的采集還略有不同,目前移動端主要使用的是SDK采集,將SDK植入在APP內,由業務端調用接口上報采集數據;而pc端一般是將js植入到頁面中,用戶的每一次重要的行為都會觸發數據上報。移動端和PC端數據匯集打通后,才能發揮數據的最大價值。上報的數據通過數據采集模塊進入系統后,因為存在大量的格式不合法的數據、損壞的數據等,需要進行煩瑣的數據清洗階段。去除掉這些臟數據后,比較正常的數據才會進入數據倉庫進行下一步的處理。
2) 數據挖掘模塊
在數據倉庫中進行數據反作弊和數據挖掘處理時,由于數據量過于巨大,通常都會使用集群運算。通過反作弊算法排除掉偽造數據后,使用數據挖掘模塊對點擊展現數據進行處理,最終生成各種巨大潛在價值的數據結果。這些結果不僅包括點擊模型,還有其他豐富的數據產品,包括數據關聯信息、數據預測、數據報表等。
3) 系統集成
點擊數據挖掘的成果又會回饋到引擎架構中,優化系統的算法,提升整體效果。而新的點擊模型作用下的用戶點擊結果又會在下一次的數據采集中被收集到,形成了閉環的回路。整個閉環圖如下所示:
圖3 點擊模型系統架構
點擊模型反作弊
點擊模型對結果的排序起了至關重要的作用,因此也是容易受到攻擊的部分。攻擊的目的無非是兩種,一個是提高目標物品的排名(推舉攻擊),另一種是降低目標物品的排名(打壓攻擊)。用戶對系統的攻擊一般是通過點擊插入偽造數據產生的,因此基本的對策也是對用戶惡性點擊結果的識別和反作弊。
1) 基于規則的識別
傳統的反作弊是基于規則的識別,比如cookie去重、IP防作弊:通過記錄監測cookie、ip的重復行為,防止同一用戶/設備在某個時間段內多次點擊同一個位置;有效期設置:限制某個展現/點擊的有效期,在有效期內的轉化屬于合理收益,超過有效期的操作會作廢棄處理;黑名單處理:在某些周期性的作弊行為,超過一定范圍后可以標記為黑名單,用來長期過濾,以免其持續性攻擊系統。基于規則的反作弊可以有很多種方法,因業務而異,需要對具體攻擊行為而作出相應的對策。
2) 分類方法
然而現如今的攻擊手段已經非常多樣化了,簡單的基于規則的反作弊不足以有效的識別攻擊者,因此需要更復雜的基于機器學習的方法來區分真實點擊和偽造點擊。比如使用有監督學習的方法,通過人工標注點擊,或者人造偽造記錄來訓練分類器。由于點擊數據樣本類型多、數量大、維度高,因此使用的記錄特征都是用聚合方法生成的,這些特征不是普通的記錄屬性,而是包含了各種統計量的信息特征。通過有監督學習這種方法,能夠識別出大量不能通過規則辨別的攻擊行為。
3) 聚類方法
聚類方法主要用于識別系統中的多個用戶聯合起來進行攻擊的情景。這些攻擊的用戶群一般攻擊行為都會很相似很異常,而且經常會攻擊很多個item。在反作弊模塊中,通過聚類把正常行為和異常行為聚類區分出來,然后將異常行為的點擊、評分等操作從計算點擊模型的數據集合中移除。聚類方法尤其能夠有效地阻止“群托”這類攻擊者行為。
4) 信息論方法
通過樣本的信息變化來檢測作弊者也是一個有效的方法。可以檢測一段時間內某些物品的一些評分值來探測異常,如描述物品隨時間變化的樣本均值、物品評分值分布變化的樣本熵等。通過在有限的時間窗口內觀察各種信息值的變化,比較容易探測到攻擊者的行為。
使用機器方法能有效識別出大部分基于規則無法解決的問題,增加攻擊者的作弊難度,然而點擊反作弊是一個與惡意攻擊者斗智斗勇的過程,簡單的一兩個方法并不能完全解決作弊的問題,經常會使用多種方法組合到一起,如基于規則的方法首先排除掉大部分簡單攻擊,然后后端再組合多種機器學習方法識別出更復雜的作弊記錄。因為攻擊者的攻擊方法一直都在持續升級,所謂“道高一尺,魔高一丈”,反作弊也要不斷改進策略才能有效地阻止作弊者。
點擊模型效果評估
評估搜索、推薦、廣告效果的好壞有很多指標,包括通過點擊位置計算的MRR、MAP分數,由點擊的結果計算的準確率、召回率、長尾覆蓋率等。在搜索、廣告和推薦引擎的研發過程中,達觀數據一直進行著充分縝密的數據評估,以保證每一次算法升級后的效果。以MRR和MAP分數評估為例,這兩種分數的計算方式一直是信息檢索領域評估算法好壞的重要指標:
1) MAP(mean average precision)
MAP為每個查詢的相關排序結果賦予一個評價數字,然后對這些數字進行平均。比如q1對應相關的d排名是1,2,5,7(假設q1有4個相關d),那么對于q1的ap(average precision)的計算就是(1/1+2/2+3/5+4/7)/4 = ap1,對于q2的排序結果結果中與之相關的d的排名是2,3,6(假設q2有5個相關d),那么對于q2的ap就是(1/2+2/3+3/6+0+0)/5 = ap2,那么這個排序算法的MAP就是(ap1+ap2)/2;
在達觀搜索引擎中,對原系統和使用點擊模型后的MAP分數對比如下:
圖4 使用點擊模型的map分數比較
2) MRR(mean reciprocal rank)
MRR的評估假設是基于唯一的一個相關結果,比如q1的最相關是排在第3位,q2的最相關是在第4位,那么MRR=(1/3+1/4)/ 2。
在達觀搜索引擎中,對原系統和使用點擊模型后的MRR分數對比如下:
圖5 使用點擊模型后的mrr分數比較
由效果圖可以看到,使用點擊模型后系統的性能得到了近30%的大幅度提升。除此之外,使用NDCG、F值、長尾覆蓋率等評估方式,都能看到點擊模型的應用會對系統帶來一定的效果收益。在搜索引擎、智能推薦、廣告系統中,使用點擊模型后,系統的效果都會得到令人滿意的提高。
結語
在大數據公司里,點擊模型都是搜索、推薦、廣告系統使用的利器,對優化算法模型,達到“千人千面”的個性化效果都是必不可少的。點擊模型在數據挖掘領域是熱門研究問題,隨著大數據發展出現了各種新技術和解決方案。達觀數據在大數據領域有著豐富的行業經驗,能夠通過所掌握的點擊模型等先進技術,幫助合作企業充分發揮大數據所蘊藏的潛力。
總結
以上是生活随笔為你收集整理的点击模型:达观数据提升算法精度的利器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArrayUtils的简单学习
- 下一篇: 通达OA 新旧两种数据库连接方式