# Tutorial: Recommender Systems ###### tags: `20200829` 蔡銘峰 政大資訊科學系-副教授 ## Introduction to Recommender Systems 每天的資料的閱讀/消耗量急遽增加 2018, 每天可以消耗100G Rereival vs Recommandation 被動 vs 主動 因為資訊量太大,所以現在的搜尋幾乎都是推薦的 這成為市場來源 ex Amazon.com, Netflix -> 用了推薦可以增加30-70%的銷售 ## Why using Recommender Systems? 對使用者 對商業 >增加銷量 >提供個人化服務 >增加忠誠度 >增加廣告機會 KKBOX active user (一個月至少上線2次)約有300萬,目前KKBOX有3000萬首歌,每天會產生數百G的zip檔 如何從裡面找出規律、做出推薦? ## Paradigms of recommender systems 雲端的推薦系統產生一個推薦的清單 使用者的面向資料 群眾資料 Item中的特徵值 綜合 ## Collaborative Filtering 偕同過濾 利用群眾智慧 基本假設 >需要群眾的評分 >相同品味的使用者來做分類 ### User-based nearest-neighbor collaborative filtering 要找到一個跟Alice品味相似的群眾 有三個問題要定義好 1. 如何要找出評分的標準 2. 要找出品味相似的人 3. 要如何對一個Alice想評分的東西給分 #### Measuring user similarity 用皮爾森相關性來計算 然後產生預測 最後要產生recommandation 理論上是按照計算結果來做ranking (現在用learning to rank) 但要考慮其他 1. 考慮歡迎度 2. 考慮廣告 3. 考慮自己相關企業的產品 ex KKFARM #### Item based prediction 就是用相似的item來做評分,在與個人比較與預測 #### Data sparsity problems 1. 冷啟動。就是當new user時,怎麼預測 > 直接問 > 用其他的方法,如content-based, demographic或是non-personalized來做一開始的狀態 #### Model-based CF approaches #### Matrix factorization 簡單的說,就是把原來的矩陣用一些方法切割成幾個小的矩陣,如此便可以利用這個小矩陣來做分析 #### CF的優缺點 優點 文獻很多 缺點 要有足夠的資料的共通性 ## Content-based Filtering 比較複雜,根據問題的不同,會用到不同的方法 需要多媒體的處理能力 用書本推薦為例 Content-based 表示與資訊相關(information relative) 的方式 ### 相似性 就是把資料的交集找出來 常用的方法,例如TF-IDF,再把字出現的頻率與重要性拿出來用 ### Content-based recommands based 限制 關鍵字太少,不容易萃取 對視頻資訊的內容太少(因為運算量太大了) 只會推薦出類似的東西,不會有厲害的東西 ## Hybrid approachs ### Factorization Machine Matrix fractiation的概念 libFM是目前最強的一個技術 > C++ > CF + content-based方法 > Rendle, 2010 概念上,就是把user與item再重新給一個編碼 如此就可以把item與user在放上去 也就是支援向量機+Matrix fractorizaiton ## Evaluation Techniques ### Several approaches for evaluation 1. Offine experiment > 傳統的accuary, precision, recall的提升 > 辦比賽 www.kaggle.com 3. Labotatory studty => 已經不考慮accuary, precision, recall -> 而是考慮真實的狀況 4. Test with real users -> > A/B tests 把流量切成2塊,區分舊的跟新的算法,看哪個回饋比較好 > ## Advanced Topics & Summary ### Network Embedding for RS 假設有一些特徵之間有關聯,感覺上就會結合成一個network的圖 例如,當某個人聽了某種音樂,也聽了另外一種音樂,這兩個音樂之間就可能有關連 在音樂串流上,風格需要保持 但在電商上,似乎就不需要,最多人用的就是好的XD ## Real-world Challenges 超級大的資料量的處理 不同的評估標準 學術界vs產業界