剛剛才發現我第一天的文還是沒發到...
結果 Day 2 變成第一篇文章,整個亂了套...
另外登入系統好像有點問題,昨天不知為何會看到別人的通知...
今天和明天,我會再詳細一點地介紹 Content-based 和 Collaborative-filtering 這兩大類型的推薦系統,看一看系統的大架構,並帶出一些會使用到的方法和名詞,先有了大概念以後,再來一一地詳細介紹。看完架構以後,也會再深入一點點地講一下各自的優缺點和造成的原因。
Content-based 的推薦系統的概念在上一篇有講過,基本上就是推薦給 User 與他過去喜歡的 Item 相似的東西。也就是,把儲存在 user profile (使用者檔案、資訊) 中的使用者偏好與興趣,與 Item 的特徵對應。以下介紹 Content-based 推薦系統的大架構。
一個 Item 進入推薦系統時,會先被 Content Analyzer
處理,利用一些 資訊檢索 的方法,將 Item 的內容,轉變成 feature ,例如將商品的文字描述切成關鍵字。
這些 feature 會和 User 對 Item 的反應一起被送到 Profile Learner
透過一些 機器學習 的方法做處理,轉變成可以代表 User 偏好的資訊,存到 user profile 中。Filtering Component
負責比對 Content Analyzer 產生的 Item feature 和 user profile 中的使用者偏好,計算 Item 和 User 的相關程度,由此就可以決定一個 Item 是否要被推薦,或是它在推薦清單中應該排前還是排後。
在推薦 Item 產生後,User 如果跟 Item 有互動,就會產生 feedback。 feedback 有可能是的喜歡/不喜歡、評分、評論...等。剛剛有提到,這些 feedback 會跟 feature 一起被送到 Profile Learner,用來判斷 User 是否喜歡該 Item,並將這個資訊存到 user profile 中。
feedback-learning 的迴圈不斷進行,讓推薦系統能學習到 User 的偏好。
這樣設計的推薦系統,和 collaborative-filtering 的推薦系統相比,會有什麼樣的優點及缺點呢?
首先來講優點:
相對應的,Content-based 推薦系統也有些缺點:
明天會介紹 collaborative-filtering 的推薦系統,敬請期待 ~