1. 程式人生 > >推薦系統實踐讀書筆記(一):好的推薦系統

推薦系統實踐讀書筆記(一):好的推薦系統

設計一個推薦系統之前,一定要了解什麼樣的推薦系統才是好的推薦系統至關重要。那麼一個優秀的推薦系統具有哪些特徵呢?(量化或者概念性的特徵)
通過以下三個步驟回答一個優秀的推薦系統是什麼樣的
1)什麼是推薦系統、推薦系統的主要任務、推薦系統和分類目錄以及搜尋引擎的區別
2)不同領域分門別類的介紹目前業界常見的個性化推薦應用
3)介紹推薦系統的評測

什麼是推薦系統

首先書中引入了一個買花生米的例子,你可以根據實際情況選擇時到家附近的便利店或者沃爾瑪或者淘寶去買,
這個例子描述的是在使用者有著明確需求(買花生米)的情況下,面對資訊過載所採用的措施。
(這種情況下使用者一般是按經驗(便利店),分類資訊(沃爾瑪),或者搜尋引擎(淘寶)找到自己需要的商品)

但是如果使用者沒有明確的需求呢?

資訊過載時代,無論是資訊消費者還是資訊生產者都遇到了很大的挑戰:
作為資訊消費者,如何從大量的資訊中找到自己感興趣的資訊是一件非常困難的事情;
作為資訊生產者,如何讓自己生產的資訊脫穎而出,而受到廣大使用者關注,也是一件非常困難的事情

推薦系統的任務就是聯絡使用者和資訊,一方面幫助使用者發現對自己有價值的資訊,另一個方面讓資訊能夠展現在對它感興趣的使用者面前,從而實現資訊消費者和資訊生產者的雙贏。
在這裡插入圖片描述
為了解決資訊過載的問題,提出過很多的解決方案,其中代表性的有分類目錄和搜尋引擎
隨著網際網路規模的不斷擴大,分類目錄網站也只能覆蓋少量的熱門網站,越來越不能滿足使用者需求。
搜尋引擎需要使用者主動的提供準確的關鍵詞來尋找資訊,與搜尋引擎不同的是,推薦系統不需要使用者提供明確的需求,而是通過分析使用者的歷史行為給使用者的興趣建模,從而主動給使用者推薦能夠滿足他們興趣和需求的資訊。

推薦系統和搜尋引擎對於使用者來說是兩個互補的工具。
在這裡插入圖片描述
什麼是推薦系統結論:
推薦系統就是自動聯絡使用者和物品的一種工具,它能夠在資訊過載的的環境中幫助使用者發現令他們感興趣的資訊,也能夠將資訊推送給對它們感興趣的使用者。

1.2個性化推薦系統的應用

和搜尋引擎不同,個性化推薦系統需要依賴使用者的行為資料,一般都是作為一個應用存在與不同的網站中(意思就是作為一個元件嵌入一個整體系統中)

個性化推薦系統在網站中的主要作用是通過分析大量使用者行為日誌,給不同的使用者提供不同的個性化頁面展示,來提高網站的點選率和轉換率。

幾乎所有的推薦系統應用都是由前臺的展示頁面、後臺的日誌系統以及推薦算法系統3部分構成的。

1.3推薦系統評測

一個完整的推薦系統一般存在三個參與方:使用者、物品提供者和提供推薦系統的網站。以圖書推薦為例,
1)推薦系統需要滿足使用者的需求,給使用者推薦那些令他們感興趣的圖書
2)推薦系統要讓各出版社的書都能夠被推薦給對其感興趣的使用者,而不是隻推薦幾個大型出版社的書。
3)好的推薦系統設計,能夠讓推薦系統本身收集到高質量的使用者反饋,不斷完善推薦的質量,增加使用者與網站的互動,提高網站的收入。

因此評測一個推薦演算法時,需要同時考慮三方的利益,令三方共贏、

推薦系統實驗方法:
推薦系統中,主要有3種評測推薦效果的實驗方法:即離線實驗、使用者調查和線上實驗

1)離線實驗
離線實驗的方法一般由如下幾個步驟構成:
1)通過日誌系統獲得使用者行為資料,並按照一定格式生成一個標準的資料集
2)將資料集按照一定的規則分成訓練集合測試機
3)在訓練集上訓練使用者興趣模型,在測試集上進行預測
4)通過事先定義的離線指標評測演算法在測試集上的預測結果。
推薦系統的離線實驗都是在資料集上完成的,不需要一個實際的系統來供他實驗。
優點:不需要真實使用者參與,可以直接快速的計算出來,從而方便快速的測試大量不同的演算法
缺點:無法獲得很多商業上關注的指標,如點選率、轉換率等。而找到和商業指標非常相關的離線指標也是很困難的事情。

2)使用者調查(略)
3)線上實驗
推薦系統上線在AB測試,將它和舊的演算法進行比較。
AB測試時一種很常見的線上評測演算法的實驗方法。它通過一定的規則將使用者隨機分成幾組,並對不同組的使用者採用不同的演算法,然後通過統計不同組使用者的各種不同的評測指標比較不同演算法。
AB測試的優點是可以公平獲得不同演算法實際線上時的效能指標,包括商業上關注的指標。
AB測試的缺點主要是週期長,必須進行長期的實驗才能得到可靠的結果。
一般用它來測試那些在離線實驗和使用者調查中表現比較好的演算法。

評測指標:

1)使用者滿意度
只能通過使用者調查或者線上實驗獲得
在線上系統中,使用者滿意度主要通過一些對使用者行為的統計得到。
2)預測準確度
預測準確度度量一個推薦系統或者推薦演算法預測使用者行為的能力。這個指標是最重要的推薦系統離線評測指標。(可以通過離線實驗計算)
評分預測:評分預測的準確度一般都是通過均方根誤差和平均絕對誤差計算

均方根誤差(RMSE)定義如下:

R M S E = s q r t ( u , i T ( r u i r u i ) 2 ) T RMSE=\frac{sqrt(\displaystyle\sum_{u,i∈T}(r_{ui}-r'_{ui})^2)}{|T|}

平均絕對誤差:
M A E = u , i T r u i r u i T MAE=\frac{\displaystyle\sum_{u,i∈T}|r_{ui}-r'_{ui}|}{|T|}

關於RMSE和MAE這兩個指標的優缺點:RMSE加大了對預測不準的使用者物品評分的懲罰(平方項的懲罰),因而對系統的評測更加苛刻。

TopN推薦:網站在提供推薦服務時,一般是給使用者一個個性化的推薦列表,這種推薦叫做TopN推薦。
TopN推薦的預測準確率一般通過
準確率和召回率
度量。

令R(u)是根據使用者在訓練集上的行為給使用者作出的推薦列表,而T(u)是使用者在測試集上的行為列表。那麼,推薦結果的召回率定義為:
R e c a l l = u U R ( u ) T ( u ) u U T ( u ) Recall=\frac{\displaystyle\sum_{u∈U}|R(u)∩T(u)|}{\displaystyle\sum_{u∈U}|T(u)|}

準確率: P e r c i s i o n = u U R ( u ) T ( u ) u U R ( u ) Percision=\frac{\displaystyle\sum_{u∈U}|R(u)∩T(u)|}{\displaystyle\sum_{u∈U}|R(u)|}

為了全面的評測TopN推薦的準確率和召回率,一般會選擇不同的推薦列表長度N,計算出一組準確率和召回率,然後畫出準確率和召回率曲線。

**覆蓋率:**描述一個推薦系統對物品長尾的發掘能力。最簡單的定義為推薦系統能夠推薦出來的物品佔總物品集合的比例。
在這裡插入圖片描述