隨着大數據技術的發展,互聯網上的數據呈現暴發式增加,經過收集海量用戶行爲數據,尤爲是點擊數據,可以更好地預測用戶行爲和挖掘用戶需求。在機器學習領域的訓練數據也再也不僅僅是經過費時費力的人工標註方式獲取,而是更多地基於點擊反饋進行樣本收集,既減小了數據獲取成本,又保證了最新的時效性。算法
點擊模型經過獲取用戶的歷史點擊,爲用戶行爲進行建模,在模擬出用戶的點擊偏好後,可以最大程度優化系統效果。用戶的點擊行爲都有必定的規律性,遵循這些規律,基於以下的假設,咱們能夠創建起用戶的點擊模型:
•用戶的瀏覽老是按某種順序查看的,第一眼容易看到的結果會得到更多關注;
•用戶以爲標題、圖片、摘要等初步知足了需求的結果,纔會有可能點擊查看;
•若是某一個結果項徹底知足了用戶的需求,則再看其餘項的可能性會比較低;
•被點擊越多的結果,越多是好結果;
•最後一次點擊的結果每每是最好的結果,其次是第一次點擊的結果;
等等。後端
利用點擊行爲的假設,容易構建出初步的點擊模型。但在實際應用中,一個好的模型須要面臨和解決大量的挑戰和難點,包括:cookie
第一大問題是位置偏向(position bias)。由於用戶點擊會容易受到位置偏向的影響,排序在前的結果更容易得到用戶的點擊,在實際的應用中,通常會對點擊偏向做一些懲罰,好比排在前列的結果被用戶跳過了,將會比後面被跳過的結果降權更多;用戶進行了翻頁操做,上一頁的結果都會得到減分處理。session
第二大問題是冷啓動問題。即新項目、新廣告的點擊預測問題。常用的方法是經過已有的點擊反饋數據,挖掘學習出其中的規律,從而能夠對新出現的項目,預測用戶對它們可能的點擊行爲。架構
第三大問題是感知相關性。用戶對結果的點擊反饋很大程度是基於標題、圖片、摘要等感官獲取,具備很強的第一主觀意識,不少時候並不能正確反映結果的有效性,但點擊日誌數據常常並不能得到用戶對展現項「真實」的滿意相關性數據,所以在基於現有的「感觀性」數據之上,須要從其餘方面進行補充,好比用戶點擊結果後的後續操做(點擊商品後加購物車,點擊書籍後加書架等),或者引入除點擊率外的滿意率等參數來構建點擊模型。機器學習
第四大問題是稀疏性。在搜索排序中,點擊數據通常只覆蓋到排序結果的前面幾頁,容易出現長尾覆蓋不足的問題,推薦和廣告引擎中也常常會有物品冷門而不會被點擊到。此外點擊數太少也容易致使點擊數據不可靠。所以除了使用一些平均值或預測值對數據進行補充外,常常也要對稀疏數據進行平滑處理。性能
第五大問題是點擊做弊。由於點擊行爲容易生成,做弊者一般會使用模仿用戶點擊的行爲進行對系統進行攻擊,好比使用機器人對某個位置進行重複點擊等。像這種狀況下就須要識別出做弊數據,以避免對系統結果產生人爲的干擾。學習
第六大問題是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。所以每一個操做的關係傳遞以下:
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值、長尾覆蓋率等評估方式,都能看到點擊模型的應用會對系統帶來必定的效果收益。在搜索引擎、智能推薦、廣告系統中,使用點擊模型後,系統的效果都會獲得使人滿意的提升。
在大數據公司裏,點擊模型都是搜索、推薦、廣告系統使用的利器,對優化算法模型,達到「千人千面」的個性化效果都是必不可少的。點擊模型在數據挖掘領域是熱門研究問題,隨着大數據發展出現了各類新技術和解決方案。達觀數據在大數據領域有着豐富的行業經驗,可以經過所掌握的點擊模型等先進技術,幫助合做企業充分發揮大數據所蘊藏的潛力。