常用的推薦算法no.1

常用的推薦算法no.1

1.0基於人口統計學的推薦與用戶畫像
2.0基於內容的推薦與特徵工程
3.0基於協同過濾的推薦

1.0基於人口統計學的推薦與用戶畫像

根據用戶特質找到他的鄰居;用戶基本的信息;
在這裏插入圖片描述
用戶A是名女性,年齡介於2025歲,偏好物品A;用戶B是名男性,年齡介於4045歲,偏好物品B、物品C;用戶C是名女性,年齡介於 20~25歲;我們已爲每位用戶建立了profile(用戶畫像),現在我們要給用戶C進行推薦。基於profile和合適的距離度量計算用戶的相似度, 我們發現用戶A與用戶C最相似,可將用戶A偏好的物品A推薦給用戶C。

用戶畫像

用戶畫像(User Profile)就是企業通過收集與分析消費者社會屬性、生活習慣、消費行爲等主要信息的數據之後,完美地抽象出一個用戶的商業全貌作是企業應用大數據技術的基本方式; 用戶信息不好收集,所以有時候可能不準確;可收集他的行爲數據;
用戶畫像爲企業提供了足夠的信息基礎,能夠幫助企業快速找到精準用戶羣體以及用戶需求等更爲廣泛的反饋信息
作爲大數據的根基,它完美地抽象出一個用戶的信息全貌,爲進一步精準、快速地分析用戶行爲習慣、消費習慣等重要信息,提供了足夠的數據基礎.

在這裏插入圖片描述

2. 0基於內容的推薦

在這裏插入圖片描述
直接匹配、訓練模型–特徵值

Content-based Recommendations (CB) 根據推薦物品或內容的元數據,發現物品的相關性,再基於用戶過去的喜好記錄,爲用戶推薦相似的物品。
通過抽取物品內在或者外在的特徵值,實現相似度計算。 ===>> 比如一個電影,有導演、演員、用戶標籤UGC、用戶評論、時長、風格等等,都可以算是特徵。
將用戶(user)個人信息的特徵(基於喜好記錄或是預設興趣標籤),和物品(item)的特徵相匹配,就能得到用戶對物品感興趣的程度;
     在一些電影、音樂、圖書的社交網站有很成功的應用,有些網站還請專業的人員對物品進行基因編碼/打標籤(PGC)

相似度計算 – 推薦系統中用的距離 –
  相似度的評判,可以用距離表示,而一般更常用的是“餘弦相似度”
  在這裏插入圖片描述
  歐式距離:差向量的模長;
  在這裏插入圖片描述
  餘弦相似度
  在這裏插入圖片描述
  對於物品的特徵提取 —— 打標籤(tag)

專家標籤(PGC)
用戶自定義標籤(UGC)
降維分析數據,提取隱語義標籤(LFM)
對於文本信息的特徵提取 —— 關鍵詞

分詞、語義處理和情感分析(NLP)
潛在語義分析(LSA)
基於內容推薦系統的高層次結構

在這裏插入圖片描述
特徵工程 – 模型之前所要做的 – 最後得到的特徵輸出給模型(機器學習算法)
一開始拿到的數據 ===> 目標–想要得到的;

特徵:作爲判斷條件的一組輸入變量,是做出判斷的依據
目標:判斷和預測的目標,模型的輸出變量,是特徵所產生的結果

在這裏插入圖片描述

特徵 (feature):數據中抽取出來的對結果預測有用的信息。
特徵的個數就是數據的觀測維度
特徵工程是使用專業背景知識和技巧處理數據,使得特徵能在機器學習算法上發揮更好的作用的過程
特徵工程一般包括特徵清洗(採樣、清洗異常樣本),特徵處理(標準化、歸一化等)和特徵選擇(先提前考量下把不必要的砍掉,兩個方面的考量:①數據是否發散—方差、相關係數)
特徵按照不同的數據類型分類,有不同的特徵處理方法
    數值型–連續的
    類別型 – 離散的
    時間型 – 如用戶登陸時間等
    統計型
數值型特徵處理:
  用連續數值表示當前維度特徵,通常會對數值型特徵進行數學上的處理,主要的做法是 歸一化 和 離散化
① 幅度調整/ 歸一化 – 讓取值不會受到幅度的影響
  特徵與特徵之間應該是平等的,區別應該體現在特徵內部;
  例如房屋價格和住房面積的幅度是不同的,房屋價格可能在3000000 ~ 15000000(萬)之間,而住房面積在40~300(平方米)之間,那麼明明是平等的兩個特徵,輸入到相同的模型中後由於本身的幅值不同導致產生的效果不同,這是不合理的
在這裏插入圖片描述

歸一化
在這裏插入圖片描述
在這裏插入圖片描述
離散化 : 連續值 ----> 變成分類問題
將原始連續值切斷,轉化爲離散值:

讓座問題:假設我們要訓練一個模型判斷在公交車上應不應該給一個人讓座,按照常理,應該是給年齡很大和年齡很小的人讓座
對於以上讓座問題中的年齡特徵,對於一些模型,假設模型爲 y = θx,輸入的 x(年齡)對於最後的貢獻是正/負相關的,即 x 越大越應該讓座,但很明顯讓座問題中,年齡和是否讓座不是嚴格的正相關或者負相關,這樣只能兼顧年齡大的人,無法兼顧年齡大的人和年齡小的人
對於讓座問題,我們可以使用閾值將年齡進行分段,將一個 age 特徵分爲多個特徵,將連續值離散化:

在這裏插入圖片描述
在這裏插入圖片描述
在電商中,每個人對於價格的喜好程度不同,但它不一定是嚴格的正相關或負相關,某些人可能就喜歡某一價格段內的商品

離散化的兩種方式:

等步長 —— 簡單但不一定有效
等頻(更精準,但易變動) —— min —> 25% --> 75% —> max

兩種方法對比

等頻的離散化方法很精準,但需要每次都對數據分佈進行一遍從新計算,因爲昨天用戶在淘寶上買東西的價格分佈和今天不一定相同,因此昨天做等頻的切分點可能並不適用,而線上最需要避免的就是不固定,需要現場計算,所以昨天訓練出的模型今天不一定能使用
等頻不固定,但很精準,等步長是固定的,非常簡單,因此兩者在工業上都有應用
類別型特徵處理 – 特徵展開處理

類別型數據本身沒有大小關係,需要將它們編碼爲數字,但它們之間不能有預先設定的大小關係,因此既要做到公平,又要區分開它們,那麼直接開闢多個空間
  One-Hot 編碼/啞變量
  One-Hot 編碼/啞變量所做的就是將類別型數據 平行地展開,也就是說,經過 One-Hot 編碼/啞變量後,這個特徵的空間會膨脹

3.0基於協同過濾的推薦

在這裏插入圖片描述
在這裏插入圖片描述

協同過濾(Collaborative Filtering,CF)-- 用戶和物品之間關聯的用戶行爲數據

①基於近鄰的協同過濾
    基於用戶(User-CF) --用戶畫像
    基於物品(Item-CF) – 基於內容-特徵工程

②基於模型的協同過濾
    奇異值分解(SVD)
    潛在語義分析(LSA)
    支撐向量機(SVM)
在這裏插入圖片描述

協同過濾CF – 用戶行爲數據

基於內容(Content based,CB)(物品的信息拿不到基於內容就無法做了)主要利用的是用戶評價過的物品的內容特徵,而CF方法還可以利用其他用戶評分過的物品內容
CF 可以解決 CB 的一些侷限 (用戶評價可得出物品的好壞,但CF無法做出冷啓動,基於大量數據)
    物品內容不完全或者難以獲得時,依然可以通過其他用戶的反饋給出推薦
    CF基於用戶之間對物品的評價質量,避免了CB僅依賴內容可能造成的對物品質量判斷的干擾
    CF推薦不受內容限制,只要其他類似用戶給出了對不同物品的興趣,CF就可以給用戶推薦出內容差異很大的物品(但有某種內在聯繫)

分爲兩類:基於近鄰和基於模型
①. 基於近鄰的推薦

基於近鄰(基於用戶之間的關聯)的推薦系統根據的是相同“口碑”準則

是否應該給Cary推薦《泰坦尼克號》?

在這裏插入圖片描述

基於用戶的協同過濾(User-CF) 用戶的行爲數據
在這裏插入圖片描述

在這裏插入圖片描述

基於用戶的協同過濾推薦的基本原理是,根據所有用戶對物品的偏好,發現與當前用戶口味和偏好相似的“鄰居”用戶羣,並推薦近鄰所偏好的物品
在一般的應用中是採用計算“K- 近鄰”的算法;基於這 K 個鄰居的歷史偏好信息,爲當前用戶進行推薦
User-CF 和基於人口統計學的推薦機制
    兩者都是計算用戶的相似度,並基於相似的“鄰居”用戶羣計算推薦
    它們所不同的是如何計算用戶的相似度:基於人口統計學的機制只考慮用戶本身的特徵,而基於用戶的協同過濾機制可是在用戶的歷史偏好的數據上計算用戶的相似度,它的基本假設是,喜歡類似物品的用戶可能有相同或者相似的口味和偏好

基於物品的協同過濾(Item-CF)

在這裏插入圖片描述

基於項目的協同過濾推薦的基本原理與基於用戶的類似,只是使用所有用戶對物品的偏好,發現物品和物品之間的相似度,然後根據用戶的歷史偏好信息,將類似的物品推薦給用戶
Item-CF 和基於內容(CB)的推薦
      其實都是基於物品相似度預測推薦,只是相似度計算的方法不一樣,前者是從用戶歷史的偏好推斷,而後者是基於物品本身的屬性特徵信息

同樣是協同過濾,在基於用戶和基於項目兩個策略中應該如何選擇呢?
    電商、電影、音樂網站,用戶數量遠大於物品數量
    新聞網站,物品(新聞文本)數量可能大於用戶數量

User-CF 和 Item-CF 的比較

同樣是協同過濾,在 User-CF 和 Item-CF 兩個策略中應該如何選擇呢?
Item-CF 應用場景 – 用戶行爲數據 – 主流
  基於物品的協同過濾(Item-CF)推薦機制是 Amazon 在基於用戶的機制上改良的一種策略。因爲在大部分的 Web 站點中,物品的個數是遠遠小於用戶的數量的,而且物品的個數和相似度相對比較穩定,同時基於物品的機制比基於用戶的實時性更好一些,所以 Item-CF 成爲了目前推薦策略的主流
User-CF 應用場景
  設想一下在一些新聞推薦系統中,也許物品——也就是新聞的個數可能大於用戶的個數,而且新聞的更新程度也有很快,所以它的相似度依然不穩定,這時用 User-CF可能效果更好;
所以,推薦策略的選擇其實和具體的應用場景有很大的關係

基於協同過濾的推薦優缺點
優點:
  它不需要對物品或者用戶進行嚴格的建模,而且不要求對物品特徵的描述是機器可理解的,所以這種方法也是領域無關的
  這種方法計算出來的推薦是開放的,可以共用他人的經驗,很好的支持用戶發現潛在的興趣偏好
存在的問題:
  方法的核心是基於歷史數據,所以對新物品和新用戶都有“冷啓動”的問題
  推薦的效果依賴於用戶歷史偏好數據的多少和準確性
  在大部分的實現中,用戶歷史偏好是用稀疏矩陣進行存儲的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等
  對於一些特殊品味的用戶不能給予很好的推薦
基本思想
  用戶具有一定的特徵,決定着他的偏好選擇;
  物品具有一定的特徵,影響着用戶需是否選擇它;
  用戶之所以選擇某一個商品,是因爲用戶特徵與物品特徵相互匹配;
基於這種思想,模型的建立相當於從行爲數據中提取特徵,給用戶和物品同時打上“標籤”;這和基於人口統計學的用戶標籤、基於內容方法的物品標籤本質是一樣的,都是特徵的提取和匹配;
有顯性特徵時(比如用戶標籤、物品分類標籤)我們可以直接匹配做出推薦;沒有時,可以根據已有的偏好數據,去發掘出隱藏的特徵,這需要用到隱語義模型(LFM)

基於模型的協同過濾推薦,就是基於樣本的用戶偏好信息,訓練一個推薦模型,然後根據實時的用戶喜好的信息進行預測新物品的得分,計算推薦
基於近鄰的推薦和基於模型的推薦 – 用的都是用戶行爲數據
  基於近鄰的推薦是在預測時直接使用已有的用戶偏好數據,通過近鄰數據來預測對新物品的偏好(類似分類)
  而基於模型的方法,是要使用這些偏好數據來訓練模型,找到內在規律,再用模型來做預測(類似迴歸)
訓練模型時,可以基於標籤內容來提取物品特徵,也可以讓模型去發掘物品的潛在特徵;這樣的模型被稱爲 隱語義模型(Latent Factor Model,LFM)

隱語義模型(LFM)
用隱語義模型來進行協同過濾的目標
  揭示隱藏的特徵,這些特徵能夠解釋爲什麼給出對應的預測評分
  這類特徵可能是無法直接用語言解釋描述的,事實上我們並不需要知道,類似“玄學”
通過矩陣分解進行降維分析
  協同過濾算法非常依賴歷史數據,而一般的推薦系統中,偏好數據又往往是稀疏的;這就需要對原始數據做降維處理
  分解之後的矩陣,就代表了用戶和物品的隱藏特徵
隱語義模型的實例:
  基於概率的隱語義分析(pLSA)
  隱式迪利克雷分佈模型(LDA)
  矩陣因子分解模型(基於奇異值分解的模型,SVD)

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