下一代推薦系統

前言

討論祖先和子孫的問題一貫是比較困難的事情,什麼是上一代,他們有什麼特色?下一代推薦系統究竟是什麼?先後代有什麼不同,是什麼關鍵特徵定義了下一代? 本文的重點是,討論一些論文觀點,旨在回答以上的一些疑問 從Gediminas Adomavicius和Alexander Tuzhilin的Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions來看(這篇文章引用率很是高),個人理解是:git

第一代推薦系統主分三類:github

  1. content-based,基於內容的推薦
  2. collaborative,基於協同過濾的推薦
  3. hybrid recommendation, 混合型推薦

第二代推薦系統的主要特色是:算法

  1. user和item的理解
  2. 結合上下文信息
  3. 支持多維度的評價指標
  4. 提供更加有彈性和更少打擾的結果

其人

Gediminas Adomavicius在推薦系統方面有不少研究, 有興趣能夠看看CAREER: Next Generation Personalization Technologies,研究主題包括:dom

  1. 多準則推薦系統
  2. 推薦查詢語言
  3. 推薦的多樣性
  4. 時效數據的聚類
  5. 上下文感知推薦
  6. 用戶偏好對推薦的影響
  7. 推薦算法的穩定性
  8. 數據特性對推薦的影響

相關討論

第一代推薦系統

早期的推薦系統主要是「評分預測」和「TOPN」預測,不管是哪種推薦方式,其核心的目標是找到最適合用戶c的項集合s,從集合裏挑選集合是一個很是複雜的問題優化方案,一般採用的方案是用貪婪的方式,而咱們只須要定義一個的效用函數,選取TOPN。機器學習

基於內容的推薦

定義效用函數爲:用戶c和項s的內容上的」類似性」,好比商品推薦中,爲了一個用戶推薦一款合適的商品,會計算商品和用戶歷史上看過或者買過的某些特徵上的類似性(好比:品牌的偏好,類目的偏好,商品的屬性,商品標籤等等)。不少推薦都會在有文本的實體上進行推薦,改進的主要思路是:函數

  1. 擴展實體的文本標記。好比:標籤,語義樹
  2. 用戶的文本Profile。好比:taste,preferences,needs。

所以,基於內容的推薦算法的關鍵問題是創建,item的content profile和user的content profile。 對於有問題內容的推薦實體,通常的方法是利用關鍵詞抽取技術,抽取item中最重要的或者最有信息量的一些text。 第一個任務是選擇什麼的文本,構建的text歷來源上能夠分紅幾個,若是來之item自己的內容,一般稱爲keywords; 若是來自用戶的標記,一般稱爲tags;若是來以外部的query,一般稱爲intents。 第二個任務是如何在候選詞裏作weighting和selection。selection的方式通常是用貪心方法,選出topn weighting的詞。學習

構建user的content profile是比較困難的。由於user本生是沒有標記的,一般是經過user從前看過的item和當前看過的item作 標記。從時間的維度上,user的content profile能夠分紅歷史和實時部分,歷史部分一般是經過挖掘獲取,而實時部分一般是 經過巧妙的」average」或者model-based的方法發現用戶content profile, 比較出名的content-based推薦系統是Fab, 「adaptive filtering」是一種經過user的瀏覽記錄不斷提高精度的content profile構建方式優化

協同過濾推薦

是你們最爲熟悉的推薦算法。算法只涉及到user-item的交互矩陣,推薦方式是Heuristic-based(memory-based)方法(item-based和user-based)和 model-based的方法,後面發展的一批改進協同過濾算法的策略,好比:spa

  1. Default Voting;
  2. Inverse User Frequency;
  3. Case Amplification;
  4. Weighted-majority Prediction 固然其餘的協同過濾算法也很是多,下次討論協同過濾算法的時候在仔細探討

混合方法,主要是混合基於內容和協同過濾的方法。變種很是多,這裏暫不討論

第二代推薦系統

  1. model-based的一些變化。談到第二代,論文提供了一些擴展,好比:model-based方法,一般是基於統計和機器學習的方法, 後面有演化出一些基於數學近似的方法,我理解的數學近似方法其實很簡單, 就像咱們在高中學習的展開式,或者泰勒公式等等,用無窮多的弱項組合成一個偏差最小的結果。
  2. 多維度的推薦。其實目前多數的推薦是單維度的,就是對user進行item的推薦,可是有些應用場景,好比:對住在北京的男性用戶進行品牌推薦, 或者在婦女節給女性用戶推薦優惠商品。這些場景下須要推薦從對個維度上考慮問題,因此在多維的推薦系統中須要一個受衆定向的功能。
  3. 多準則的推薦。通常狀況下,咱們即須要推薦的準確,多樣性,驚喜度,時效性,覆蓋率等等指標;有時候,咱們須要保證推薦的推薦的品質, 好比高端的品牌推薦,不能給用戶推薦一些低質量的品牌商。
  4. 不打擾。不少系統爲了蒐集用戶的興趣,有時候會強迫用戶給商品打分,這樣會干擾用戶的行爲。 怎麼在用打擾用戶的狀況下,蒐集潛在的用戶反饋;對新用戶怎麼增量的用戶信息量最大item,也是快速構建用戶profile的一種方式。

固然還有不少推薦系統應該解決的問題和擴展, 可是,就這樣還不能是二代推薦系統的特徵, 推薦系統的發展永遠是圍繞着「用戶體驗」來作的。blog

參考文獻

相關文章
相關標籤/搜索