1. 程式人生 > >實戰智慧推薦系統(4)-- 什麼是好的推薦系統?

實戰智慧推薦系統(4)-- 什麼是好的推薦系統?

推薦系統與搜尋引擎

要回答什麼是好的推薦系統,我覺得首先得知道為什麼需要推薦系統。推薦系統的存在價值必須建立在兩個必要的前提:

(1)資訊過載

隨著資訊科技和網際網路的發展,人們逐漸從資訊匱乏走向了資訊過載時代。比如說如果在小超市買個東西,一件一件挑就是了。但是在淘寶網買東西,假設不使用搜索引擎,大量的物品讓使用者根本無法選擇。

(2)使用者需求不明確

如果使用者需求明確,正如前面舉得例子。假如我明確知道自己想要買某件商品,那我直接用搜索引擎不就解決了?還需要什麼推薦系統嗎?所以這也是推薦系統存在的前提之一。

如何在使用者需求不明確的情況下推薦?

對於這個問題,假設你想看一部電影,於是開啟某個視訊網站。發現裡面積累了近百年的各種型別的電影,這個時候你又不知道該看什麼電影。於是,你可能會問身邊的朋友,有沒有什麼電影推薦。或者根據自己的喜好,比如自己喜歡看喜劇,在喜劇類選擇一個評分較高的電影看。或者看下根據熱門電影排行榜,選擇比較熱門的一部電影。人就是使用者,電影是物品,上面的方式就是將人和物品聯絡起來的方式。

推薦系統也是通過類似的方式將人和物品聯絡起來,只是不同的推薦系統可能選擇的方式不一樣。推薦系統在電子商務(亞馬遜),電影和視訊網站,音樂電臺(豆瓣),社交網路(Facebook)等領域都是採用了推薦系統的不同應用聯絡方式。

推薦系統測試

1.離線實驗
(1)通過日誌系統獲得使用者行為資料,並按照一定格式生成一個標準的資料集
(2)將資料集按照一定的規則分成訓練集和測試集
(3)在訓練集上訓練使用者興趣模型,在測試集上測試

(4)通過事先定義的離線指標評測演算法在測試集上的預測結果

2.使用者調查

離線實驗的指標和實際的商業指標存在差距,比如預測準確率和使用者滿意度之間就存在很大差別,高的預測準確率並不代表滿意度。因此,如果要準確評測一個演算法,需要比較真實的環境,最好的方法就是將演算法直接上線測試。但是上線測試會有較高的風險,所以在上線測試前需要做一次使用者調查。

3.線上實驗

在完成離線測試和必要的使用者調查後,可以將表現比較好的演算法做AB測試。通過一定的規則將使用者隨機分組,並對比不同組的使用者採用不同的演算法後比較結果。

推薦系統評測

美國《連線》雜誌主編在 2004 年發表了《長尾理論》,指出傳統的80/20(80%的銷售額來自20%的品牌)原則在網際網路的加入下會受到挑戰。與熱門品牌相比,長尾商品的數量及其龐大,也許會超過熱門商品帶來的銷售額。

如果一個推薦系統能夠準確預測出使用者的購買意向,是否就是一個好的推薦系統?答案是否定的,因為即使推薦系統不預測使用者購買意向,使用者自己也會去購買它。從某種程度上來說,就是一個看起來效果很好卻失敗的推薦系統。因為就算不預測我會購買它,我也會自己通過搜尋引擎去購買它,實際上對銷售額並沒有任何意義。

所以,良好的推薦系統不僅僅能夠準確預測使用者的喜好,而且能夠擴充套件使用者的視野,幫助使用者發現那些他們可能會感興趣,但不那麼容易發現的東西。同時,推薦系統還要能夠幫助使用者將那些被埋沒在長尾中的好商品推薦給可能會感興趣的使用者。挖掘長尾的銷售額。而這是搜尋引擎無法辦到的。