1. 程式人生 > >推薦系統綜述與程式碼

推薦系統綜述與程式碼

推薦系統綜述與程式碼

By Joey周琦

引言與符號介紹

一般來說,推薦系統可以歸納為,預測user對某item的評分或者點選率。問題描述如下

user對item的互動,主要可以分為下面三個方面:

  • scalar. (numerical(rating),ordinal). 標量的
  • binary. (like,dislike) 二項的,0 or 1, 點or不點等
  • unary. (purchase,online access,etc) 。一元的,如購買,線上等

為了表述清晰,我們做一下符號說明

  • item:商品,user:使用者 (後面可能會混合叫)
  • U : 使用者集合
  • I : 商品集合
  • R : 使用者對商品的評分集合(或點選率等)
  • S : 評分集合的可能值域 (e,g, S=[1,...,5]orlike,dislike )
  • rui : 使用者u給item i 的評分
  • Ui : 評價過商品i的使用者集合
  • I
    u
    : 使用者u評價過的item集合
  • Iuv=IuIv , Uij=UiUj
  • N(u) : 使用者u的KNN(K個最近鄰)
  • Ni(u) :評價過item i的使用者u的KNN最近鄰
  • Nu(i) : 被使用者u評價過的商品i的最近鄰

若用效用函式 f 衡量使用者u對商品i的興趣, i.e,

f:U×I>S 。那麼對於使用者 uU , 我們希望選擇一個 iI 最大化使用者的興趣. 如下:

uU,  iu=argmaxiIf(u,i).

使用者空間 U 的每個使用者可以由一個profile(使用者資料,畫像)來代表,這個profile可以包含 使用者基礎屬性(性別,年齡,地域,學歷),歷史行為(使用者ID)等。
商品空間 I 的每個商品可以由商品的內容(標題,類別,等)和歷史行為(ID)來代表。

使用者的explicit feedback (顯性反饋)行為可以分為下面三種,這類資訊比較少,但比較準確。
* like/dislike
* ratings
* text comments

使用者的implicit feedback (隱形反饋)行為可以為下面這些:儲存,點選,放棄,列印,標籤。這些行為不需要使用者直接性的參與。這類資訊比較多,但沒有顯性那麼準確。

一般來說推薦系統可以分為兩類

  • 基於內容的推薦系統 (Content-based recommendations,CB). 根據使用者的瀏覽歷史item的內容,給使用者推薦相似內容的item
  • 協同濾波推薦系統 (Collaborative filtering recommendations, CF). 給使用者推薦與其相似使用者看過的商品user-CF,或給使用者推薦其看過的商品的相似商品item-CF. 這裡的相似不是從內容分析,而是看過相同內容越多的使用者則越相似,被相同使用者看過越多則越相似。
  • 混合上述方法

基於內容的推薦系統Content based

基於內容的推薦系統(CB)通過分析user過去的評分、點選等行為,為每一個user建立一個畫像(profile)或模型(model). 畫像可以結構化代表user的興趣等,可以用來給使用者帶來新的推薦。基於內容的資訊過濾需要一些技術(自然語言處理,資訊提取,如tf-idf等)來代表每個物品item和使用者畫像,並且需要策略對比使用者畫像與item的相似度。

基於內容的效用函式可以定義為 f(u,i) :

f(u,i)=score(ContentBasedProfile(u),Content(i))

  • Content(i) 是item的畫像. ContentBasedProfile(u) is the使用者u的畫像。
  • Content(i) and ContentBasedProfile(u) 可以用tf-idf向量(或其他技術)代表。

很多機器學習的方法,如樸素貝葉斯、神經網路、決策樹等演算法可以應用於基於內容的推薦中。(個人理解是利用向量代表作為特徵,點選或平分作為label,來訓練分類演算法?)

基於內容的推薦框架如下圖

這裡寫圖片描述

CB有如下優勢:

  • USER INDEPENDENCE - Content-based recommenders exploit solely ratings provided by the active user to build her own profile
  • 使用者獨立性:只根據使用者自己的歷史行為構建使用者畫像
  • 可解釋性強
  • CB可以推薦沒有任何行為的item,因為可以通過內容分析

CB的一些限制:

  • 有限的內容分析:對於聲音、影象的內容分析技術有限
  • 推薦過細:系統只會推薦和使用者歷史行為內容相關的item,缺乏新穎性
  • 對新使用者推薦有難度(因為沒有歷史行為)

代表item(Item Representation)

在大部分cb系統中,item的描述是從網頁,文章,評論,內容等重提取的文字特徵。由於語言的多義性(language ambiguity),對於文字特徵,一些複雜的問題需要處理:

  • POLYSEMY, the presence of multiple meanings for one word;
  • POLYSEMY, 一詞多義
  • SYNONYMY, 多詞同義

基於關鍵詞的向量空間模型

大部分基於內容的推薦系統都是比較簡單的檢索模型,如關鍵字匹配或向量空間模型(基於td-idf權重)。 假設
Most content-based recommender systems use relatively simple retrieval models, such as keyword matching or the Vector Space Model (VSM) with basic TF-IDF weighting. Let D=d1,d2,,dN denote a set of documents or corpus, and T=t1,t2,,TN be the dictionary, that is to say the set of words in the corpus. T is obtained by applying
some standard natural language processing operations, such as tokenization, stopwords
removal, and stemming. Each item dj is represented as a vector in a n -dimensional vector space, so dj=w1j,w2j,,wnj ,where wkj is the weight for term tk in corpus dj . TF-IDF weighting is based on the assumption that:

  • rare terms are not less relevant than frequent terms (IDF assumption);
  • multiple occurrences of a term in a document are not less relevant than single
    occurrences (TF assumption);
  • long documents are not preferred to short documents (normalization assumption).

TF-IDF is calculated as follows:

TFIDF(tk,dj)=TF(tk,dj)log˙Nnk

The second term is IDF, and the first term TF can be calculated as follows

TF(tk,dj)=fk,jmaxzfz,j
where fk,j is the frequencies that term tk occur in document dj . Then we get the weight after cosine normalization

相關推薦

推薦系統綜述程式碼

推薦系統綜述與程式碼 By Joey周琦 引言與符號介紹 一般來說,推薦系統可以歸納為,預測user對某item的評分或者點選率。問題描述如下 user對item的互動,主要可以分為下面三個方面: scalar. (numerical(ratin

基於深度學習的推薦系統:綜述新視角

原文:Deep Learning based Recommender System: A Survey and New Perspectives 作者:張帥, 新南威爾士大學 翻譯:沈春旭,清華大學   隨著線上資訊量的不斷增加,推薦系統已經成為克服這種資訊過載的有效策略。

基於深度學習的推薦系統綜述 (arxiv 1707.07435) 譯文 3.1 ~ 3.3

基於深度學習的推薦:最先進的技術 在本節中,我們首先介紹基於深度學習的推薦模型的類別,然後突出最先進的研究原型,旨在確定近年來最顯著和最有希望的進步。 基於深度學習的推薦模型的類別 **圖 1:**基於深度神經網路的推薦模型的類別。 為了提供該領域的全景圖,

58同城推薦系統設計實現

58同城智慧推薦系統大約誕生於2014年(C++實現),該套系統先後經歷了招聘、房產、二手車、黃頁和二手物品等產品線的推薦業務迭代,但該系統耦合性高,難以適應推薦策略的快速迭代。58同城APP猜你喜歡推薦和推送專案在2016年快速迭代,產出了一套基於微服務架構的推薦系統(Ja

推薦系統綜述:初識推薦系統

目錄 1. 引言 參考文獻 1. 引言 隨著資訊科技和網際網路技術的發展,人們從資訊匱乏時代步入了資訊過載時代,在這種時代背景下,人們越來越難從大量的資訊中找到自身感興趣的資訊,資訊也越來越難展示給可能對它感興趣的使

個性化智慧推薦系統分析調研

1.系統簡介從市場使用者調研到網際網路電商平臺產品設計,再到上線運營推廣,覆蓋的面很寬,但最為關鍵和難度最高的是個性化推薦系統、搜尋底層和大資料系統。其中,個性化推薦系統和搜尋底層都是基於大資料,所以最

Mahout--最基本的推薦系統的JAVA程式碼

package mp05.com; import java.io.File; import java.io.IOException; import java.util.List; import org.apache.mahout.cf.taste.common

推薦系統的探索利用問題綜述

1.簡述 問題引入 推薦系統冷啟動問題常見的一種解決方案就是利用Bandit演算法,Bandit演算法通常用於解決探索與利用問題,其中解決探索與利用問題的經典案例是MAB問題; 這裡MAB問題有三個概念:臂,收益,遺憾 1.臂:實際可以選擇的物件,這裡的臂可以是推薦系統中的策略或者內容分類,一般情況

大數據入門第十九天——推薦系統mahout(一)入門概述

tps font 解決 技術分享 tar nbsp mage cnblogs clas 一、推薦系統概述   為了解決信息過載和用戶無明確需求的問題,找到用戶感興趣的物品,才有了個性化推薦系統。其實,解決信息過載的問題,代表性的解決方案是分類目錄和搜索引擎,如hao123

推薦系統-01-電影推薦結果評估

order by eid ota class span pro ram 數據化 直接 import spark.sql import org.apache.spark.sql.types._ import org.apache.spark.mllib.recommendat

連載00:推薦:軟件體系設計新方向:數學抽象、設計模式、系統架構方案設計(簡化版)(袁曉河著)

連載 由於 並且 時代 進取 瓶頸 轉載 所有 是我 我正在推出本人的心得體會《軟件體系設計新方向:數學抽象、設計模式、系統架構與方案設計(袁曉河著)》,由於我從未進行過相關的推廣,所以經驗欠缺,希望各位給出寶貴意見,謝謝!軟件設計正在邁入一個瓶頸時代,軟件設計正在越來越衰

推薦系統:矩陣分解鄰域的融合模型

critical with 分析 但是 rac 公式 download pearson 情況 推薦系統通常分析過去的事務以建立用戶和產品之間的聯系,這種方法叫做協同過濾。 協同過濾有兩種形式:隱語義模型(LFM),基於鄰域的模型(Neighborhood models)。

推薦系統-協同過濾原理實現

一、基本介紹 1. 推薦系統任務 推薦系統的任務就是聯絡使用者和資訊一方面幫助使用者發現對自己有價值的資訊,而另一方面讓資訊能夠展現在對它感興趣的使用者面前從而實現資訊消費者和資訊生產者的雙贏。 2. 與搜尋引擎比較 相同點:幫助使用者快速發現有用資訊的工具 不同點:和搜尋引擎不同的是推薦系統不

文獻綜述三:基於JSP的商品資訊管理系統設計開發

一、基本資訊   標題:基於JSP的商品資訊管理系統設計與開發   時間:2015   出版源:Computer Knowledge and Technology   檔案分類:jsp技術的系統開發 二、研究背景   通過了解公司產品人工現狀的一些管理方面的現狀和要求,運用計算機技術開發的商品資訊管理系統,能

【Mark Schmidt課件】機器學習資料探勘——推薦系統

本課件主要內容: 上次課程回顧:隱因子模型 魯棒PCA 隱因子模型的變化形式 Netflix獎 協同過濾問題 協同過濾的矩陣分解 基於內容的濾波 vs. 協同濾波 混合方法 SVD特徵的隨機梯度

推薦書籍必有連結】利用python進行資料分析推薦系統

資料分析是指用適當的統計分析方法對收集來的大量資料進行分析,提取有用資訊和形成結論而對資料加以詳細研究和概括總結的過程。這一過程也是質量管理體系的支援過程。在實用中,資料分析可幫助人們作出判斷,以便採取適當行動 由於有很多小夥伴們,在後臺諮詢有沒有資料分析相關的推薦,這裡推薦一本在京東上

大資料推薦系統演算法程式碼全接觸(機器學習演算法+Spark實現)

大資料推薦系統演算法程式碼全接觸(機器學習演算法+Spark實現)課程出自學途無憂網 課程分享地址:https://pan.baidu.com/s/1piCNIxC2Sv0zMY0yWxY9Ug  提取碼:b10v     一、課程簡介: 推薦系統是利用電子商務網站向

文獻綜述十四:基於Oracle11g的超市進銷存管理系統設計實現

一、基本資訊   標題:基於Oracle11g的超市進銷存管理系統設計與實現   時間:2016   出版源:技術創新   檔案分類:對資料庫的研究 二、研究背景   為超市設計開發的超市管理系統,採用的是 VC+ Oracle模 式的電子管理平臺,研究基於C/S模式的電子資訊管理的實現。 三、具體內容   

9、生鮮電商平臺-推薦系統模組的設計架構

業務需求:          對於一個B2B的生鮮電商平臺,對於買家而言,他需要更加快速的購買到自己的產品,跟自己的餐飲店不相關的東西,他是不關心的,而且過多無用的東西摻雜在一起,反而不便 於買家下單,使用者體驗也很差,嚴重的會因此丟了客戶。(客戶覺得太難

9、生鮮電商平臺-推薦系統模塊的設計架構

key cnblogs strong his 功能 tin 很多 status 清單 業務需求: 對於一個B2B的生鮮電商平臺,對於買家而言,他需要更加快速的購買到自己的產品,跟自己的餐飲店不相關的東西,他是不關心的,而且過多無用的東西摻雜在一起,反而不便