討論祖先和子孫的問題一貫是比較困難的事情,什麼是上一代,他們有什麼特色?下一代推薦系統究竟是什麼?先後代有什麼不同,是什麼關鍵特徵定義了下一代? 本文的重點是,討論一些論文觀點,旨在回答以上的一些疑問 從Gediminas Adomavicius和Alexander Tuzhilin的Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions來看(這篇文章引用率很是高),個人理解是:git
第一代推薦系統主分三類:github
第二代推薦系統的主要特色是:算法
Gediminas Adomavicius在推薦系統方面有不少研究, 有興趣能夠看看CAREER: Next Generation Personalization Technologies,研究主題包括:dom
早期的推薦系統主要是「評分預測」和「TOPN」預測,不管是哪種推薦方式,其核心的目標是找到最適合用戶c的項集合s,從集合裏挑選集合是一個很是複雜的問題優化方案,一般採用的方案是用貪婪的方式,而咱們只須要定義一個的效用函數,選取TOPN。機器學習
定義效用函數爲:用戶c和項s的內容上的」類似性」,好比商品推薦中,爲了一個用戶推薦一款合適的商品,會計算商品和用戶歷史上看過或者買過的某些特徵上的類似性(好比:品牌的偏好,類目的偏好,商品的屬性,商品標籤等等)。不少推薦都會在有文本的實體上進行推薦,改進的主要思路是:函數
所以,基於內容的推薦算法的關鍵問題是創建,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
固然還有不少推薦系統應該解決的問題和擴展, 可是,就這樣還不能是二代推薦系統的特徵, 推薦系統的發展永遠是圍繞着「用戶體驗」來作的。blog