推薦系統入門學習筆記(一)

前言:由於最近需要寫一篇綜述性的論文,加上對推薦系統比較感興趣,所以找了本《推薦系統》看看,作者是奧地利的學者詹尼士,贊克,弗裏德里克等人。看到封皮上很多牛人的推薦語,頓時覺着如獲至寶。這個筆記記錄的也就是看這本書的總結和感想,主要目的是方便自己以後查閱和回憶。若是偶然有人能從筆記裏有所收穫,那真是不勝欣慰。這個筆記我讀書讀到哪裏就記到哪裏,內容時多時少,格式可能也比較自由。

1. 推薦系統的產生背景

       在網民覆蓋率日益攀高的今天,在這個大數據、雲計算、物聯網各種名詞滿天飛的時代,信息過載是個不爭的事實。不管是在網上瀏覽新聞還是購買東西,呈現在我們面前的是成千上萬的選擇,大部分內容或東西都是我們不感興趣的。那麼我們該如何選擇呢?信息技術帶來資訊極其豐富的同時,也帶來了用戶的選擇困難症。有沒有這樣一種系統,能夠了解我們,知道我們喜歡看什麼類型的新聞,知道我們喜歡什麼書或者什麼衣服,從而給我們推薦我們想要的。其實是有的,這個東東就是推薦系統。

2. 推薦系統是什麼東西

       推薦系統就是個軟件系統,軟件的核心是推薦策略(算法),它根據用戶的一些上網習慣或者偏好來爲用戶提供個性化的內容和產品推薦。一般來說推薦系統有兩個目的:一方面,推薦系統被用於激發用戶去做某件事情,比如購買一本書或觀賞一部電影;另一方面,推薦系統也可以被看做是解決信息過載的工具,因爲系統的目標是從大集合裏選擇最感興趣的物品。提供個性化推薦要求系統知道每個用戶的信息,推薦系統必須開發並維護一個用戶模型(user model)或用戶記錄(user profile)保存用戶的偏好。

3. 推薦策略之協同過濾(CF: Collaboration Filtering)推薦

       核心思想:如果用戶在過去有相同的偏好(比如他們買過相同的書),那麼他們在未來也會有相似的偏好。舉例來說,如果用戶A和用戶B先前都買過很多相同的書,而且用戶A最近買了一本用戶B還不知道的書,那麼這時基本的邏輯就是像B推薦這本書。由於這是隱式地與他人相互協作從大量集合中過濾最有希望買的書,因此叫做協同過濾。

       需要考慮的問題(我認爲這個是重點):

       a. 如何發現與我們要推薦的用戶有着相似偏好的用戶?

       b. 如何度量相似度?(這個可能要看看數據挖掘的書)

       c. 如何處理還沒有購買經歷的新用戶?

       d. 如果只有很少的評分該怎麼辦?

       e. 除了利用相似的用戶之外,還有哪些技術可以用來預測某個用戶是否喜歡其物品?

       純粹的協同過濾方法不會利用或要求任何有關物品本身的知識,而是基於相似用戶的選擇來推薦。

4. 推薦策略之基於內容的推薦

       核心思想:根據用戶的行爲和偏好,然後根據物品的描述和特徵,爲二者進行匹配。比如某個用戶偏好是喜歡青春文學,那麼系統的邏輯是爲該用戶推薦內容是青春的書,如《那些年,我們一起追過的女孩》。看到這裏我在想能不能把基於內容與協同過濾綜合起來進行推薦,果然是可以的,後面有講到,不要急。。。

       當然,基於內容推薦的核心是能夠得到物品的描述(不管你是人工生成還是自動抽取)和這些特徵的重要記錄。同樣,用戶記錄也需要自動抽取或“學習”,方法是分析用戶的行爲和反饋,或者直接詢問用戶的興趣和偏好。

       需要考慮的問題(這種問題都是重點,可以指導學習的思路):

       a. 系統如何自動獲取並持續改進用戶記錄?

       b. 如何決定哪個物品匹配或者至少能接近、符合用戶的興趣?(這個問題是不是可以這樣描述:如何發現度量物品的特徵和用戶的偏好的相似度?這樣一說,是不是和協同過濾的a和b比較像)

       c. 什麼技術能自動抽取或學習物品的描述,從而減少人工標註?

       與協同過濾相比,基於內容的有兩大優點:首先,不需要大規模的用戶就可以達到適度的推薦精準度;其次,一旦得到物品的屬性就能立刻推薦新物品。

5. 推薦策略之基於知識的推薦

       對於一些涉及大量的單次購買的商品,這意味着我們可能無法依賴購買記錄。比如相機可能要每隔幾年纔買一次,那麼系統如何去推薦呢?此時,系統需要利用額外的因果知識生成推薦。在基於知識的方法中推薦系統通常會用到有關當用戶和有效物品的額外信息(這些信息一般都是人工提供的)。比如一個相機是高分辨率的,那麼我們能夠知道高分辨率可以沖洗大照片,因此若是有用戶喜歡沖洗大照片,那麼可以推薦高分辨率的相機。這種方法需要對物品的特徵有着深入的專業理解,因此在許多基於知識的推薦系統中,用戶需求必須通過交互引導得出。

       總體來說,基於知識的推薦系統要解決的問題如下:

       a. 那種領域知識能表示成知識庫?

       b. 什麼機制可根據用戶的特點來選擇和排名物品?

       c. 如何在沒有購買記錄的領域獲取用戶信息(這個類似如何處理新用戶的問題)?如何處理用戶直接給出的偏好信息?

       d. 哪種交互方式能夠用於交互式推薦系統?(用戶易於接受的交互,不會覺得很浪費時間)

       e. 設計對話時,要考慮那些個性化因素才能確保準確獲得用戶偏好信息?(這個需要專業人士來進行設計交互問題)

       說實話,我覺着基於知識的推薦與基於物品的推薦有那麼一些相似,可能是我還沒理解……

6. 推薦策略之混合推薦方法

       前面提到能不能把協同過濾和基於內容的推薦組合使用,答案是可以的,這就是混合推薦。由於問題背景的不同,目前討論的方法各有優、缺點。組合各種不同技術產生更好或更精確的推薦。但是,問題來了……

       a. 哪種方法能被組合,特定組合的前提是什麼?

       b. 兩個或多個推薦算法是應該順序計算,還是採用其他混合方式?

       c. 不同方法的結果如何賦以權重,可以動態決定嗎?

 7. 評估推薦系統

       推薦系統領域研究的主要推動力是提高推薦質量。那麼,如何去衡量一個推薦系統的推薦質量呢?這個問題現在我也不理解,先記下來……

後記:這是我讀第一章前言所記錄的,由於是第一次寫東西,加上才疏又學淺,難免有錯誤或不當的地方,望各位多多批評指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章