本文寫於2016年11月4日算法
前言:網絡
上個月公司的同事提議組內作幾回關於數據挖掘的技術串講交流下學習和工做經驗,本着提攜新人的考慮,建議博主也講點什麼。開始時博主想簡單講一講推薦算法的協同過濾算法。後來考慮到其實串講不只僅是和其餘人交流分享,也是對本身已有知識的鞏固。想想仍是加點挑戰,談談推薦系統吧^_^。爲何選推薦系統呢,緣由有三個:oop
1.人們在網絡中常常接觸推薦,講起來例子多,人們不陌生;學習
2.原理比較簡單,不須要學習者有高超的數學基礎;測試
3.這個領域是博主最早接觸的數據挖掘領域^_^。網站
博主第一次接觸推薦系統的學習是在本科時《文本挖掘與搜索引擎》的課上,課上教授向咱們推薦項亮編著的《推薦系統實踐》,雖然期末的大做業博主被分到了QA組(注:這裏的QA不是質量保證而是問答系統),但博主拜讀了這本書,感受受益頗多,以後和直博北大的學霸大白弄了個簡陋的基於社交網絡的好友推薦系統,當時也不會什麼hadoop、spark什麼的,咱們倆全程手撕代碼,雖然效果和效率都很差但加深了對推薦系統的瞭解,這樣看來手撕代碼或許對學習幫助比較好吧(寫到這裏博主想起了一天下午和大白敲完碼,大白興致勃勃拉着博主去爬學校後面的牛角山,博主爬一半沒了力氣,上不去也下不來的可怕回憶)。搜索引擎
1、什麼是推薦系統spa
設想一下這個情景:視頻
中國男足在世界盃預選賽上一路高歌猛進,有殺入世界盃之勢。過幾天晚上有場關鍵的比賽,你考慮到要盡情享受足球之夜,看球時嘴不能閒着,還須要買點零食邊看球邊吃。這裏你有三個選擇:索引
上面三個例子對應着信息量的發展,隨着互聯網時代的到來,信息從匱乏的狀態變成了過載的狀態。當信息不多時(小賣鋪),咱們只憑經驗瀏覽就能夠獲得咱們想要的信息;當信息增長時(大超市),咱們沒法一一瀏覽信息找出咱們想要的,這時就出現了門戶分類網站(雅虎等);到了信息過載時(電子商務網站),分類已經沒法讓咱們快捷的獲取信息了,這時就出現了搜索引擎(谷歌等)。
但僅僅有搜索引擎就夠了嗎?上訴例子是在用戶有明確的目標的條件(買某個品牌的零食)下完成的。但在用戶沒有明確目標時(好比晚上沒啥事想隨便找部電影看看),搜索引擎就顯得捉襟見肘了。
在這個數據過載的時代,信息的消費者須要從海量的信息中找到本身所須要的信息,信息的生產者要讓本身生產的信息在海量的信息中脫穎而出,這時推薦系統就應運而生了。對用戶而言,推薦系統不須要用戶提供明確的目標;對物品而言,推薦系統解決了2/8現象的問題(也叫長尾效應),讓小衆的物品能夠展現到須要它們的用戶面前。
在咱們生活中,推薦系統應用十分普遍,好比:電子商務,視頻與音樂網站、社交網絡、廣告等等。同時推薦系統中的各類預測算法還能應用到其它不一樣的領域。
2、什麼是好的推薦系統
回答什麼是好的推薦系統以前先拋出一個問題:好的推薦系統是否是等於做出準確預測的推薦系統?
咱們回到買零食的情景,假如你沒有去淘寶購買零食而是去了另外一個網站,這個網站用了一套高超的推薦算法算出了此時此刻的你想要買某個品牌的零食(比算命的都厲害),當你打開應用的一剎那,就把這個品牌的零食呈如今你眼前,你在驚訝的同時,欣然的下單。
那麼這個網站的推薦系統是否是一個好的推薦系統呢?答案可能會讓你驚訝。不是!緣由是用戶在以前已經有了明確的目標要買某種零食,這套推薦系統可能會增長用戶的體驗,但除此以外並無給網站帶來多大的利益,由於即便沒有這套推薦系統,用戶也會經過網站的搜索引擎來找到這種零食併購買,,有沒有這套推薦系統網站的收入都是同樣的(固然這套系統提升了用戶體驗可能會讓用戶更傾向使用這個網站,收入仍是有所提高的)。
而另外一套推薦系統在你買零食時向你推薦了一款啤酒,你忽然想到「看球不喝啤酒咋行」,你欣然買下了這款啤酒。這個推薦就好於上一個。由於用戶原本沒有買啤酒的計劃,但看了推薦後購買了啤酒,網站經過這個推薦多賺了一單。
推薦系統的評價指標有不少,項亮的《推薦系統實踐》給出瞭如下指標:
也就是加完這套推薦系統後用戶的的滿意度,這個指標能夠經過用戶調查問卷等形式獲得,但值得注意的一點是得到指標的方式方法也有可能下降用戶的滿意度。
就是咱們預測結果的準確度。通常狀況下在TopN預測時咱們計算召回率和準確率;在評分等預測時用MAE或RMSE
表明推薦的事物對所有事物的覆蓋狀況,能夠用來判斷推薦系統是否有馬太效應。馬太效應是出自《聖經 馬太福音》的一個典故,社會學中的一種強者越強弱者越弱的現象,也就是說推薦系統是否會使被關注的事物更加被關注,被忽視的事物更加被忽視。經常使用的協同過濾就有馬太效應。比較簡單的測試指標就是信息熵。
判斷推薦結果是否覆蓋用戶各個興趣點
例如不該該推薦用戶已經看過的電影等,應該多推薦給用戶用戶不知道的商品。記得當時林教授舉了一個例子,一個朋友買了5L的洗衣液,應該幾個月都不須要洗衣液了,但那個電子商務平臺(不說是哪一個了)仍是想推薦洗衣液,這就是一個新穎性不夠的推薦。假如用戶買了一臺電腦,新穎性高的推薦是向他推薦一些外設,而不是另外一臺電腦。
用戶對推薦的商品以前沒有興趣,但用過以後很滿意。
這個是網站運營方面的,推薦是否是受用戶信任,例如用戶相比百度搜索的推廣推薦更信任淘寶網的商品推薦
是否能承受住攻擊和刷分(就是使用一些手段使本身的商品優先被推薦)等現象
該推薦系統上線後商業目標完成狀況,如業績提高、銷量增長等等
這篇文章向你們介紹了什麼是推薦系統,推薦系統的產生緣由和推薦系統的一系列評價指標也能夠說是推薦系統的目標。
後記:
原本這篇文章是九月末開始寫的,因爲工做比較忙因此一直沒來得及發,也沒來得及寫後續文章。博主最近學習爬蟲,後續可能會分享一些爬蟲相關的知識。