---
# System prepended metadata

title: 'Tutorial: Recommender Systems'
tags: ['20200829']

---

# 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產業界

