推薦系統(tǒng)是一個看似簡單但和業(yè)務(wù)邏輯聯(lián)系緊密的問題姻几,了解什么是“優(yōu)秀”的推薦系統(tǒng)至關(guān)重要漆诽。
- 什么是推薦系統(tǒng)
- 推薦系統(tǒng)的主要任務(wù)
- 推薦系統(tǒng)和搜索引擎的區(qū)別
- 推薦系統(tǒng)的評測指標(biāo)
1.1 什么是推薦系統(tǒng)
從以往的分類瀏覽到現(xiàn)在信息過載的時代数冬,面對海量信息李命,人們難以描述和真正知道自己需要的是什么撩鹿。當(dāng)然搜索引擎可以解決一部分問題搅方,但前提是用戶首先知道自己想要什么谬哀。
用戶需要從大量信息中找到自己想要的刺覆,信息生產(chǎn)者想要自己的信息脫穎而出。推薦系統(tǒng)的目的就是來解決這個矛盾的問題史煎,其任務(wù)是:聯(lián)系用戶和信息谦屑,幫助用戶發(fā)展對自己有價值的信息驳糯,同時讓信息能夠展現(xiàn)在感興趣用戶的面前,實現(xiàn)用戶和信息生產(chǎn)者的雙贏氢橙。
推薦系統(tǒng)不需要用戶提供明確的需求酝枢,通過分析用戶的歷史行為進行建模。主動給用戶推薦能滿足用戶興趣需求的你信息悍手。所以推薦系統(tǒng)和搜索引擎是兩個互補的工具:搜索引擎滿足了用戶有明確需求的信息檢索需求帘睦,推薦系統(tǒng)滿足了用戶無明確目的的信息檢索需求。
物品的記錄符合長尾規(guī)律(80/20定律)坦康,即80%的銷售額來自20%的熱門品牌竣付。主流商品代表了絕大用戶的共同需求,但長尾商品代表了小部分用戶和大部分用戶的個性化需求滞欠。推薦系統(tǒng)的目的可以用“千人千面”這個詞語代替古胆,即對每個用戶都能夠找到個性化需求,將長尾物品進行推薦仑撞。
推薦系統(tǒng)的工作方式:
- 社會化推薦(Social Recommendation):詢問好友得到信息赤兴。
- 內(nèi)容推薦(Content-Based Recommendation):找用戶已有信息內(nèi)容上相似的物品。
- 協(xié)同過濾(Collaborative Filtering):找到相似和用戶和物品隧哮。
推薦系統(tǒng)就是將用戶與物品進行聯(lián)系的工具桶良。
1.3 推薦系統(tǒng)評測
推薦系統(tǒng)能夠滿足用戶的需求,也能夠把合適信息推薦給用戶沮翔,同時還能不斷在反饋中進度陨帆。準(zhǔn)確的預(yù)測并不是好的預(yù)測,可能熱門商品很準(zhǔn)確采蚀,但并不嫩能夠滿足用戶的個性化需求疲牵。推薦系統(tǒng)還能夠擴展用戶的視野。
1.3.1 推薦系統(tǒng)的實驗方法
1.離線實驗
- 收集用戶行為數(shù)據(jù)榆鼠,形成數(shù)據(jù)集纲爸;
- 劃分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù);
- 在訓(xùn)練數(shù)據(jù)上訓(xùn)練興趣模型妆够,在測試數(shù)據(jù)進行測試识啦;
- 使用離線指標(biāo)在測試集上進行預(yù)測;
推薦系統(tǒng)可以在離線數(shù)據(jù)上完成神妹,但不能關(guān)注點擊率和轉(zhuǎn)化率等颓哮,很難找到商業(yè)指標(biāo)。
2.用戶調(diào)查
離線實驗不能得到用戶的主觀感受鸵荠,通過用戶調(diào)查可以得到用戶的主觀感受指標(biāo)冕茅,但成本高。
3.在線實驗
將新推薦算法上線做AB測試,將用戶隨機分為幾組姨伤,并采用不同的算法哨坪,通過統(tǒng)計不同組用戶的評測指標(biāo)來比較算法的性能。AB測試的優(yōu)點是可以公平獲得算法的性能精度對比姜挺,以及商業(yè)評價指標(biāo)齿税,但測試周期比較長。
1.3.2 評測指標(biāo)
1.用戶滿意程度
用戶滿意是推薦系統(tǒng)的最重要的指標(biāo)炊豪,但用戶滿意度無法離線計算凌箕,只能通過在線調(diào)查獲得。用戶滿意度可以從用戶的行為數(shù)據(jù)中獲得词渤,比如用戶的購物行為牵舱、用戶反饋和用戶點贊。
2.預(yù)測準(zhǔn)確度
預(yù)測準(zhǔn)確度用來衡量推薦算法預(yù)測用戶行為的能力缺虐,是重要的離線評測指標(biāo)芜壁。
- 評分預(yù)測:預(yù)測用戶對物品的評分
評分預(yù)測一般使用均方誤差(RSME)和平均絕對誤差(MAE)計算。對于用戶u和物品i高氮,tui表示用戶u對物品i的實際評分慧妄,則RSME定義為:
![](http://latex.codecogs.com/gif.latex?$$RMSE=\frac{\sqrt{\sum_{u,i \in T}(r_ui-\hat{r}_ui)^2}}{|T|}$$)
MAE采用絕對值計算預(yù)測誤差,定義為:
![](http://latex.codecogs.com/gif.latex?$$MAE=\frac{\sum_{u,i \in T}| r_ui - \hat{r}_ui|}{|T|}$$)
Netflix認(rèn)為RMSE架打了對預(yù)測不準(zhǔn)的懲罰剪芍,對于系統(tǒng)要求高塞淹。
- TopN 推薦:給用戶個性化的推薦列表
TopN 推薦一般使用準(zhǔn)確率(precision)和召回率(recall)度量。假設(shè)$R(u)$為用戶在訓(xùn)練數(shù)據(jù)上給用戶做出的推薦列表罪裹,T(u)為用戶在測試數(shù)據(jù)上的列表饱普。則推薦結(jié)果的召回率定義為:
![](http://latex.codecogs.com/gif.latex?$$Recall=\frac{\sum_{u \in U}|R(u)\bigcap T(u)|}{\sum_{u \in U}|T(u)|}$$)
準(zhǔn)確率定義為:
![](http://latex.codecogs.com/gif.latex?$$Precision=\frac{\sum_{u \in U}|R(u)\bigcap T(u)|}{\sum_{u \in U}|R(u)|}$$)
評分預(yù)測一直是推薦系統(tǒng)的研究熱點,關(guān)注與RSME的優(yōu)化状共。但TopN 才更加適合實際的應(yīng)用需求套耕,因為預(yù)測的目的是用戶感興趣的信息,而不是得分峡继。
3.覆蓋率
覆蓋率(coverage)評價的是推薦系統(tǒng)對長尾物品的發(fā)掘能力冯袍。覆蓋率有不同的定義方法,最簡單是為推薦系統(tǒng)能推薦物品占總物品的比例碾牌,是信息產(chǎn)生者關(guān)注的指標(biāo)颠猴。為了細(xì)致描述推薦系統(tǒng)的長尾能力,需要統(tǒng)計推薦列表中不同物品出現(xiàn)的次數(shù)小染。如果所有的物品都出現(xiàn)在推薦列表中,且出現(xiàn)的次數(shù)不多贮折,則推薦系統(tǒng)發(fā)掘長尾能力比較好裤翩,即可以通過研究推薦列表中出現(xiàn)次數(shù)的分布來描述推薦系統(tǒng)挖掘長尾的能力。若分布比較平均,則覆蓋率較高踊赠;反之或曲線比較陡峭呵扛,說明覆蓋率較低】鸫可以使用以下兩個指標(biāo)來定義覆蓋率:
第一個是信息熵:
![](http://latex.codecogs.com/gif.latex?$$H=-\sum^n_{i=1}p(i)log , p(i)$$)
其中p(i)表示物品i的流行度除以所有物品流行度之和今穿。
第二個指標(biāo)是基尼指數(shù)(Gini Index):
其中$i_j$是按照物品流行程度p()來從小到大排序物品中第j個物品。
4.多樣性
推薦列表應(yīng)該能夠覆蓋用戶不同的興趣領(lǐng)域伦籍,增加用戶找到物品的概率蓝晒。多樣性描述推薦列表中物品兩兩之間的不相似性,假設(shè)$s(i, j)\in[0,1]$為物品i和j之間的相似度帖鸦,則用戶u的推薦列表R(u)的多樣性定義如下:
![](http://latex.codecogs.com/gif.latex?$$Diversity=1-\frac{\sum_{i,j \in R(u) and i , \neq , j}s(i, j)}{\frac{1}{2}|R(u)|(|R(u)|-1)}$$)
而整個推薦系統(tǒng)的多樣性可以定義為所有用戶推薦列表多樣性的平均值:
![](http://latex.codecogs.com/gif.latex?$$Diversity=\frac{1}{|U|}\sum_{u \in U}Diversity(R(u))$$)
所以不同物品相似度量函數(shù)$s(i,j)$定義了不同的多樣性芝薇。如果用物品內(nèi)容來描述物品相似度,則得到內(nèi)容多樣性函數(shù)作儿;如果用協(xié)同過濾的相似度函數(shù)洛二,則得到協(xié)同過濾相似度函數(shù)。
5.新穎性
新穎的推薦是給用戶推薦他們沒有聽所的物品攻锰,可以直接在推薦列表中過濾掉用戶以評分的相似物品晾嘶。評測新穎性可以簡單的利用推薦結(jié)果的平均流行程度,一般情況下冷門物品會給人感覺很有驚喜娶吞。
6.驚喜度
驚喜度和新穎性有點類似垒迂,但有本質(zhì)的區(qū)別。驚喜度側(cè)重于推薦與用戶歷史不相似寝志,但能讓用戶滿意的結(jié)果娇斑;新穎性側(cè)重于用戶是否聽說該物品。
定義驚喜度首先需要定義推薦結(jié)果和用戶歷史上喜歡物品的相似成都材部,其次需要定義用戶對推薦物品的滿意程度毫缆。即獲得了用戶觀看電影的歷史,得到電影演員和導(dǎo)演集合乐导,給用戶推薦不屬于該集合的電影苦丁,而得到用戶滿意,這就是驚喜的推薦物臂。
7.信任度
如果用戶信任推薦系統(tǒng)旺拉,就會增加和推薦系統(tǒng)的交互。提高信任度的主要辦法是給用戶解釋推薦原理棵磷,比如顯示列表的同時顯示推薦的理由(如物品相似蛾狗、好友推薦或者流行度等)。
8.實時性
推薦系統(tǒng)的實時性包括兩個方面:首先推薦系統(tǒng)需要實時更新推薦列表來滿足用戶的行為變化仪媒,特別是在購物電商網(wǎng)站沉桌;其次推薦系統(tǒng)需要實時將新的物品推薦給用戶,這就涉及到物品冷啟動的問題。
9.健壯性
健壯性衡量了推薦系統(tǒng)抗擊作弊的能力留凭,可以通過模擬攻擊進行評測佃扼。
10.商業(yè)目標(biāo)
1.3.3 評測維度
評測維度能夠知道算法在什么情況下性能最好,為融合不同算法提供參考蔼夜。一般維度分為以下三種:
- 用戶維度:用戶統(tǒng)計信息
- 物品維度:物品屬性信息和流行程度等
- 時間維度:周末或節(jié)日等