




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
推薦系統(tǒng)實踐學習筆記1好的推薦系統(tǒng)1.1什么是推薦系統(tǒng)推薦系統(tǒng)和搜索引擎都是為了幫助用戶從大量信息中找到自己感興趣的信息。區(qū)別是搜索引擎由用戶主動提供關(guān)鍵詞來查找信息,推薦系統(tǒng)則不需要,而通過分析用戶的歷史行為給用戶的興趣建模,主動給用戶推薦他們可能感興趣的信息。從物品的角度出發(fā),推薦系統(tǒng)可以更好地發(fā)掘物品的長尾。長尾商品往往代表了一小部分用戶的個性化需求,發(fā)掘這類信息正是推薦系統(tǒng)的長項。1.2個性化推薦系統(tǒng)的應(yīng)用推薦系統(tǒng)廣泛存在于各類網(wǎng)站中,作為一個應(yīng)用為用戶提供個性化推薦。它需要依賴用戶的行為數(shù)據(jù),因此一般都由后臺日志系統(tǒng)、推薦算法系統(tǒng)和前臺展示頁面3部分構(gòu)成。應(yīng)用推薦系統(tǒng)的領(lǐng)域包括:電子商務(wù)-亞馬遜:基于物品、好友的個性化推薦,相關(guān)推薦,20~30%電影視頻-Netflix:基于物品的推薦,60%;YouTube、Hulu音樂-Pandora:專家標記;Last.fm:用戶行為社交網(wǎng)絡(luò)-Facebook、Twitter閱讀-GoogleReader基于位置的服務(wù)-Foursquare個性化郵件-Tapestry廣告-Facebook1.3推薦系統(tǒng)評測主要有3種評測推薦效果的實驗方法:離線實驗:劃分訓(xùn)練集和測試集,在訓(xùn)練集訓(xùn)練用戶興趣模型,在測試集預(yù)測優(yōu)點:快速方便缺點:無法用真實的商業(yè)指標來衡量用戶調(diào)查:用抽樣的方法找部分用戶試驗效果優(yōu)點:指標比較真實缺點:規(guī)模受限,統(tǒng)計意義不夠在線實驗:AB測試優(yōu)點:指標真實缺點:測試時間長,設(shè)計復(fù)雜實際中,這三種方法在推薦算法上線前都要完成。評測指標較多,一些重要的如下:用戶滿意度:調(diào)查問卷,線上的用戶行為統(tǒng)計、其他的指標轉(zhuǎn)化得到預(yù)測準確度:可通過離線實驗計算評分預(yù)測,通過均方根誤差和平均絕對誤差計算,前者更為苛刻。設(shè)
rui
為用戶
u
對物品
i
的實際評分,
r?ui
為預(yù)測評分RMSE=∑u,i∈T(rui?r?ui)2|T|????????????????MAE=∑u,i∈T|rui?r?ui||T|TopN推薦,通過準確率或召回率衡量。設(shè)
R(u)
為根據(jù)訓(xùn)練建立的模型在測試集上的推薦,
T(u)
為測試集上用戶的選擇Precision=∑u∈U|R(u)∩T(u)|∑u∈U|R(u)|Recall=∑u∈U|R(u)∩T(u)|∑u∈U|T(u)|覆蓋率:表示對物品長尾的發(fā)掘能力(推薦系統(tǒng)希望消除馬太效應(yīng))Coverage=|∪u∈UR(u)||I|上面的公式無法區(qū)分不同的分布,可以用熵或基尼系數(shù)來更準確地表述覆蓋率H=?∑i=1np(i)logp(i)p(i)
為物品
i
的流行度的比例。G=1n?1∑j=1n(2j?n?1)p(j)p(j)
為按流行度由小到大排序的物品列表中的第
j
個物品的流行度的比例。多樣性:推薦需要滿足用戶的廣泛的興趣,表示推薦列表中物品兩兩之間的不相似性。設(shè)
s(i,j)
表示物品
i和
j
之間的相似度Diversity(R(u))=1?∑i,j∈R(u),i≠js(i,j)12|R(u)|(|R(u)|?1)Diversity=1|U|∑u∈UDiversity(R(u))新穎性:指給用戶推薦他們不知道的物品,可以用平均流行度做粗算,或者更精確地通過做用戶調(diào)查。驚喜度:推薦和用戶的歷史興趣不相似,卻使用戶滿意的物品。信任度:只能通過問卷調(diào)查來評價,可以通過增加推薦系統(tǒng)的透明度和利用好友信息推薦來提高信任度。實時性:保持物品的時效性,主要涉及推薦系統(tǒng)實時更新和對新物品的處理。健壯性:開發(fā)健壯性高的算法,清理臟數(shù)據(jù),使用代價較高的用戶行為設(shè)計推薦系統(tǒng)。商業(yè)目標:推薦系統(tǒng)對于網(wǎng)站的價值。作者認為,離線實驗的優(yōu)化目標是在給定覆蓋率、多樣性、新穎性等限制條件下,最大化預(yù)測準確度。對推薦系統(tǒng)還需要從多維度來評測,如用戶維度、物品維度和時間維度,這樣可以更全面地了解推薦系統(tǒng)的性能。2利用用戶行為數(shù)據(jù)2.1用戶行為用戶行為數(shù)據(jù)一般從日志中獲得,可以按反饋的明確性把用戶行為分為顯性反饋和隱性反饋。用戶行為數(shù)據(jù)很多滿足長尾分布(Zipf定律)f(x)=αxk另外,用戶活躍度高,傾向于看冷門的物品?;谟脩粜袨榉治龅耐扑]算法一般稱為協(xié)同過濾算法,包括基于鄰域的方法、隱語義模型、基于圖的隨機游走算法等,應(yīng)用最廣的是基于鄰域的方法。2.2基于鄰域的算法基于鄰域的算法可以分為基于用戶的協(xié)同過濾算法(UserCF)和基于物品的協(xié)同過濾算法(ItemCF)。2.2.1基于用戶的協(xié)同過濾算法UserCF算法主要有兩步:找到和目標用戶興趣相似的用戶集合找到這個集合中的用戶喜歡的,且目標用戶沒有聽說過的物品,推薦給目標用戶設(shè)
N(u)
為用戶
u
有過正反饋的物品集合,
N(v)
為用戶
v
有過正反饋的物品集合,
u
和
v
的興趣相似度可以用Jaccard公式或余弦相似度計算wuv=|N(u)∩N(v)||N(u)∪N(v)|wuv=|N(u)∩N(v)||N(u)||N(v)|??????????√以余弦相似度為例:defcalcUserSimilarity1(t):w=defaultdict(dict)#相似度矩陣foruint:forvint:ifu!=v:w[u][v]=len(t[u]&t[v])/math.sqrt(len(t[u])*len(t[v]))可以利用稀疏矩陣的性質(zhì)優(yōu)化上面的算法:defcalcUserSimilarity2(t):itemUsers=defaultdict(set)#物品-用戶倒排表n=defaultdict(int)#用戶喜歡的物品數(shù)w=defaultdict(dict)#相似度矩陣#建立倒排表foru,itemsint.iteritems():foriinitems:itemUsers[i].add(u)#計算相似度fori,usersinitemUsers.iteritems():foruinusers:n[u]+=1forvinusers:ifu!=v:w[u][v]=w[u].get(v,0)+1foruinw:forvinw[u]:w[u][v]/=math.sqrt(n[u]*n[v])returnw然后用上面的相似度矩陣來給用戶推薦和他興趣相似的用戶喜歡的物品。用戶
u
對物品
i
的興趣程度可以估計為p(u,i)=∑v∈S(u,K)∩N(i)wuvrviS(u,K)
為和用戶
u
興趣最接近的
K
個用戶,
N(i)
為對物品
i
有正反饋的用戶集合,
wuv
為用戶
u
和用戶
v的興趣相似度,
rvi
為用戶
v
對物品
i
的興趣。defrecommend(u,t,w,k):rank=defaultdict(float)#推薦結(jié)果su=sorted(w[u].items(),key=itemgetter(1),reverse=True)forv,wuvinsu[:k]:fori,rviint[v].iteritems():ifinotint[u]:#排除已經(jīng)有過反饋的物品rank[i]+=wuv*rvireturnrank通過對不同
K
值下的測量發(fā)現(xiàn):準確率和召回率并不和
K
成線性關(guān)系,通過多次測量可以選擇合適的
K
值K
越大,推薦的結(jié)果越熱門,流行度增大K
越大,推薦結(jié)果的覆蓋率越低可以調(diào)整計算用戶興趣相似度的公式來改進算法。注意到用戶對冷門物品采取同樣的行為更能說明他們的興趣相似度,可以改用下式計算興趣相似度wuv=∑i∈N(u)∩N(v)1log(1+|N(i)|)|N(u)||N(v)|??????????√上式用
1log(1+|N(i)|)
(IIF參數(shù))減小了熱門物品對用戶興趣相似度的影響。將
calcUserSimilarity2
第15行改為w[u][v]=w[u].get(v,0)+1/math.log(1+len(users))UserCF算法用的并不多。它的問題是運算復(fù)雜度大,并且難以解釋推薦的結(jié)果。2.2.2基于物品的協(xié)同過濾算法ItemCF算法是目前應(yīng)用最多的算法。它也主要分為兩步:根據(jù)用戶行為計算物品之間的相似度根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表設(shè)
N(i)
為喜歡物品
i
的用戶數(shù),
N(j)
為喜歡物品
j
的用戶數(shù),
i
和
j
的相似度可以計算為wij=|N(i)∩N(j)||N(i)||N(j)|?????????√這里面包含的假設(shè)是每個用戶的興趣都局限在某幾個方面。計算物品相似度使用和計算用戶興趣相似度類似的方法:defcalcItemSimilarity(t):n=defaultdict(int)#喜歡物品的用戶數(shù)w=defaultdict(dict)#相似度矩陣foru,itemsint.iteritems():foriinitems:n[i]+=1forjinitems:ifi!=j:w[i][j]=w[i].get(j,0)+1foriinw:forjinw[i]:w[i][j]/=math.sqrt(n[i]*n[j])returnw然后計算用戶
u
對物品
i
的興趣程度p(u,i)=∑j∈S(i,K)∩N(u)wijrujS(i,K)
為和物品
i
最相似的
K
個物品,
N(u)
為用戶
u
喜歡的物品集合,
wij
為物品
i
和物品
j
的相似度,
ruj
為用戶
u
對物品
j
的興趣。它的意思是和用戶感興趣的物品越相似的物品,越應(yīng)該被推薦。defrecommend(u,t,w,k):rank=defaultdict(float)#推薦結(jié)果reason=defaultdict(dict)#推薦解釋forj,rujint[u].iteritems():sj=sorted(w[j].items(),key=itemgetter(1),reverse=True)fori,wijinsj[:k]:ifinotint[u]:#排除已經(jīng)喜歡的物品rank[i]+=wij*rujreason[i][j]=wij*rujreturnrankItemCF算法的一個好處是可以給出推薦解釋。對不同
K
值的測量可以看到:準確率和召回率和
K
也不成線性關(guān)系K
和流行度不完全正相關(guān)K
增大仍會降低覆蓋率活躍用戶對物品相似度的貢獻要小于不活躍用戶,可以用和IIF類似的IUF參數(shù)來修正物品相似度的計算公式wij=∑u∈N(i)∩N(j)1log(1+|N(u)|)|N(i)||N(j)|?????????√將
calcItemSimilarity
第9行改為w[i][j]=w[i].get(j,0)+1/math.log(1+len(items))實際計算中,對于過于活躍的用戶,一般直接做忽略處理。對ItemCF的另一個改進是將相似度矩陣歸一化,這樣可以提高推薦的準確率,以及覆蓋率和多樣性。wij′=wijmaxiwij2.2.3UserCF算法和ItemCF算法的比較UserCF算法的特點是:用戶較少的場合,否則用戶相似度矩陣計算代價很大適合時效性較強,用戶個性化興趣不太明顯的領(lǐng)域用戶有新行為,不一定造成推薦結(jié)果的立即變化對新用戶不友好,對新物品友好,因為用戶相似度矩陣需要離線計算很難提供令用戶信服的推薦解釋對應(yīng)地,ItemCF算法的特點:適用于物品數(shù)明顯小于用戶數(shù)的場合,否則物品相似度矩陣計算代價很大適合長尾物品豐富,用戶個性化需求強的領(lǐng)域用戶有新行為,一定導(dǎo)致推薦結(jié)果的實時變化對新用戶友好,對新物品不友好,因為物品相似度矩陣需要離線計算用用戶歷史行為做推薦解釋,比較令用戶信服和UserCF算法相比,ItemCF算法的離線實驗結(jié)果要差一些,不過這是在兩者優(yōu)化前的結(jié)果,實際優(yōu)化后性能是接近的。原始ItemCF算法的覆蓋率和新穎度不高的原因可以歸結(jié)為哈利波特問題,也就是熱門物品和其他物品的相似度都很高,這個問題一個辦法是懲罰熱門物品,同時可能還需要引入物品的內(nèi)容數(shù)據(jù)來修正。2.3隱語義模型隱語義模型(LFM)最近幾年非常熱門,核心思想是通過隱含特征聯(lián)系用戶興趣和物品。簡單說就是對物品的興趣分類,對于用戶,首先確定他的興趣分類,然后從分類中選擇他可能喜歡的物品。這里的對物品分類的問題,可以用隱含語義分析技術(shù)較好地解決。它基于用戶行為統(tǒng)計做分類,和專家標記相比:能代表各種用戶的看法能控制分類的粒度能給一個物品多個分類帶維度屬性可以確定物品在某個分類中的權(quán)重這些都是專家標記不能或者很難做到的。隱含語義分析技術(shù)其他相關(guān)的技術(shù):pLSA、LDA、隱含類別模型、隱含主題模型、矩陣分解等LFM如下計算用戶
u
對物品
i
的興趣Preference(u,i)=rui=pTuqi=∑k=1Kpu,kqi,k參數(shù)
pu,k
表示用戶
u
的興趣和第
k
個隱類的關(guān)系度,
qi,k
表示物品
i
和第
k
個隱類的關(guān)系度。這兩個參數(shù)需要通過機器學習得到,利用最優(yōu)化理論,可以通過最小化下式來計算
p
和
qC=∑u,i∈K(rui?r?ui)2=∑u,i∈K(rui?pTuqi)2+λ∥pu∥2+λ∥qi∥2λ∥pu∥2+λ∥qi∥2
是用來防止過擬合的正則化項,
λ
可通過實驗獲得。利用隨機梯度下降法,令
eui=rui?pTuqi
,求導(dǎo),得到遞推關(guān)系pu←pu+α(eui?qi?λpu)qi←qi+α(eui?pu?λqi)α
為學習速率。對于隱性反饋數(shù)據(jù),LFM的一個問題是如何給每個用戶生成負樣本。研究表明,較好的方案是:對每個用戶,保證正負樣本數(shù)相近(設(shè)比例為
R
);選取那些熱門但用戶卻沒有選擇的物品作為負樣本(更能明確表明用戶對它不感興趣)。下面是LFM推薦算法的一個實現(xiàn):defselectRandomSample(items,positiveItems):n=len(items)mp=len(positiveItems)mn=0s={}#采樣foriinpositiveItems:s[i]=1#正樣本rui=1forkinrange(0,n*3):i=items[random.randint(0,n-1)]ifiins:continues[i]=0#負樣本rui=0mn+=1ifmn>mp:#正負樣本比例為1breakreturnsdefcalcLatentFactorModel(t,k,step,alpha,lamb):p,q=initModel(t,k)#numpy.matrixforjinrange(0,step):foru,positiveItemsint.iteritems():sampleItems=selectRandomSample(items,positiveItems)fori,ruiinsampleItems.iteritems():eui=rui-p[u]*q[i]p[u]=sum(alpha*(eui*q[i]-lamb*p[u]))q[i]=sum(alpha*(eui*p[u]-lamb*q[i]))alpha*=0.9returnp,qdefrecommend(u,p,q):rank={}#推薦結(jié)果foriinq:rank[i]=sum(p[u]*q[i])returnrank作者通過實驗測量了LFM的主要參數(shù)
K
、
α
、
λ
和
R
對推薦效果的影響。實驗表明,正負樣本比例
R
對性能的影響最大,隨著負樣本數(shù)增加,準確率和召回率明顯提高,但達到10倍以后,就比較穩(wěn)定了;同時覆蓋率降低,流行度增加。即
R
控制了發(fā)掘長尾的能力。LFM的效果要優(yōu)于UserCF和ItemCF算法,但是在數(shù)據(jù)集非常稀疏時比較差。設(shè)有
M
個用戶,
N
個物品,
T
條行為記錄,LFM取
K
個隱類,迭代
S
次,離線計算時,時間復(fù)雜度:UserCF為
O(N(TN)2)
,ItemCF為
O(M(TM)2)
,LFM為
O(TKS)
,LFM略高;空間復(fù)雜度:UserCF為
O(M2)
,ItemCF為
O(N2)
,LFM為
O(K(M+N))
,
M
和
N
很大時LFM要小很多。LFM在實際使用中的一個困難是難以實現(xiàn)實時的推薦,它的訓(xùn)練要依賴于所有的用戶行為。雅虎提出了一個解決方案,使用用戶的歷史行為得到的用戶興趣分類和物品內(nèi)容屬性直接生成的物品分類來計算實時的
rui
,之后再使用
pTuqi
來得到更準確的預(yù)測值。2.4基于圖的模型用戶行為數(shù)據(jù)可以用二分圖來表示,令
G(V,E)
表示用戶物品二分圖,
V=VU∪VI
,對于用戶行為數(shù)據(jù)集中的每個二元組
(u,i)
,圖中都有一套對應(yīng)的邊
e(vu,vi)
。使用二分圖,給用戶
u
推薦物品的問題可以轉(zhuǎn)化為度量用戶頂點
vu
和與它沒有邊相連的物品頂點在圖上的相關(guān)性,相關(guān)性越高,物品在推薦列表中的權(quán)重越高。相關(guān)性高的頂點對一般有:頂點間的路徑數(shù)多頂點間的路徑長度都比較短頂點間的路徑不會經(jīng)過出度比較大的頂點書中介紹了一種基于隨機游走的PersonalRank算法。對用戶
u
,從它對應(yīng)的頂點
vu
開始在二分圖上隨機游走。在每個頂點,首先按概率
α
決定是繼續(xù)游走,還是停止而從
vu
重新開始游走,如果繼續(xù),就從當前頂點指向的頂點中按均勻分布隨機選擇一個繼續(xù)游走。多次游走后,每個物品頂點被訪問的概率會收斂到一個值,即推薦列表中物品的權(quán)重。PR(v)=?????????????α∑v′∈in(v)PR(v′)|out(v′)|α∑v′∈in(v)PR(v′)|out(v′)|+(1?α)v≠vuv=vudefcalcPersonalRank(g,u,step,alpha):rank=defaultdict(float)#推薦結(jié)果rank[u]=1.0forkinrange(step):temp=defaultdict(float)foriing:forjing[i]:temp[j]+=alpha*rank[i]/len(g[i])ifj==u:temp[j]+=1-alpharank=tempreturnrankPersonalRank算法的問題是時間復(fù)雜度很高,可以考慮減少迭代次數(shù)或者利用矩陣計算的辦法改進。3推薦系統(tǒng)冷啟動問題在沒有大量用戶數(shù)據(jù)的情況下設(shè)計個性化推薦系統(tǒng)要面對冷啟動問題。有三類:解決增加新用戶的用戶冷啟動;解決增加新物品的物品冷啟動;解決新上線的網(wǎng)站的系統(tǒng)冷啟動。對于這三類問題,可以考慮下面這些辦法:提供非個性化的推薦。比如使用熱門排行榜作為推薦結(jié)果,在用戶數(shù)據(jù)充足之后再改為個性化推薦。利用用戶注冊信息??梢岳糜脩糇詴r填寫的年齡、性別、國家、職業(yè)等人口統(tǒng)計學信息,讓用戶填寫興趣描述,從其他網(wǎng)站導(dǎo)入用戶行為數(shù)據(jù)等?;谟脩糇孕畔⒌耐扑]算法核心是計算每種特征
f
的用戶喜歡的物品,或者說對物品
i
的喜好程度
p(f,i)p(f,i)=|Nu(i)∩Nu(f)||Nu(i)|+αα
是一個比較大的參數(shù),用來解決數(shù)據(jù)稀疏時沒有統(tǒng)計意義的問題。選擇合適的物品啟動用戶的興趣。就是在用戶首次訪問時,通過讓用戶反饋一些物品來收集用戶的興趣,可以按決策樹的思路設(shè)計多個步驟。對物品的選擇一般需要比較熱門,具有代表性和區(qū)分性,物品集合需要有多樣性。利用物品的內(nèi)容信息。前面3個方法針對的是新用戶,而物品的冷啟動則在物品時效性較強的場景中非常重要。和UserCF相比,ItemCF算法的物品冷啟動問題比較嚴重。解決物品冷啟動問題的一個辦法是利用內(nèi)容信息計算物品的內(nèi)容相似度,給用戶推薦內(nèi)容相似的物品。物品的內(nèi)容可以用向量空間模型表示,對于文本,該模型通過分詞、實體檢測、關(guān)鍵詞排名等步驟將文本表示成一個關(guān)鍵詞向量
{(e1,w1),(e2,w2),...}
。權(quán)重
wi
可以用TF-IDF公式計算wi=TF(ei)?IDF(ei)=N(ei)∑jN(ej)log|D|1+|Dei|N(ei)
為文本中
ei
出現(xiàn)的次數(shù),
|D|
為語料庫的文檔總數(shù)。物品的內(nèi)容相似度可以通過向量的余弦相似度來計算,和前面類似,可以通過關(guān)鍵詞-物品倒排表降低時間開銷。盡管內(nèi)容相似度算法簡單,又能解決物品冷啟動問題,但一般效果要比協(xié)同過濾算法差,因為它沒有考慮用戶行為的影響。向量空間模型的一個問題是不能理解含義近似的關(guān)鍵詞,因此在內(nèi)容較少時準確度很差。話題模型通過首先計算文本的話題分布,然后再計算相似度來解決這個問題,如LDA模型。LDA包含文檔、話題、詞3種元素,每個詞屬于一個話題,通過迭代收斂得到話題的分布,文檔的相似度由話題分布的相似度來度量。分布相似度的計算可以用KL散度(相對熵):DKL(P∥Q)=∑iP(i)lnP(i)Q(i)KL散度越大,分布相似度越低。很多推薦系統(tǒng)在剛建立時,既沒有用戶行為數(shù)據(jù),又沒有足夠的物品內(nèi)容信息,這時的一個常用辦法是對物品做專家標記。這個過程也可以加入機器學習和用戶反饋的機制。4利用用戶標簽數(shù)據(jù)除了上一篇中的基于用戶和基于物品的推薦算法,還有一種通過一些特征聯(lián)系用戶和物品的形式。特征可能是物品的屬性、隱語義向量和標簽等。標簽可以分為作者或?qū)<掖虻臉撕灪陀脩舸虻臉撕灒║GC的標簽)。UGC標簽是聯(lián)系用戶和物品的一種重要方式,既表明了用戶的興趣,又描述了物品的語義。UGC標簽的應(yīng)用在Web2.0網(wǎng)站中很常見,如:Delicious、CiteULike、Last.fm、豆瓣、Hulu等。4.1用戶打標簽因為標簽的特點,它很適合用到推薦系統(tǒng)中。標簽和用戶、物品類似,它的流行度分布也滿足長尾分布。用戶打的標簽有各種類型,總體來說,一些是和物品相關(guān)的標簽,類似于關(guān)鍵詞和分類;另一些是和用戶相關(guān)的標簽,比如用戶的信息、看法、狀態(tài)等。4.2基于標簽的推薦考慮到標簽后,用戶的標簽行為數(shù)據(jù)可以表示為
(u,i,b)
,表示用戶
u
給物品
i
打了個標簽
b
。在設(shè)計推薦算法時,可以把標簽近似于用戶的反饋或物品的關(guān)鍵詞來考慮。對于評測指標,如果實際的標簽可以視作為用戶的正反饋,那么準確率和召回率中的
T(u)
表示測試集上用戶打過標簽的物品集合。物品的相似度可以用它們的標簽向量的相似度來度量。一個簡單的想法是通過計算用戶的標簽向量和物品的標簽向量來得到用戶對物品的興趣p(u,i)=∑bN(u,b)N(i,b)上面的方法同樣有熱門標簽和熱門物品權(quán)重很大的問題,采用和IIF、IUF和TF-IDF類似的想法改進p(u,i)=∑bN(u,b)log(1+Nu(b))N(i,b)log(1+Nu(i))N(u,b)
表示用戶
u
打過標簽
b
的次數(shù),
N(i,b)
表示物品
i
被打過標簽
b
的次數(shù),
Nu(b)
表示用過標簽
b
的用戶數(shù),
Nu(i)
表示給物品
i
打過標簽的用戶數(shù)。對于新用戶或新物品,標簽數(shù)會很少,為提高推薦的準確率,可能需要對標簽集合做擴展。常用的擴展方法有話題模型等,作者介紹了一種基于鄰域的方法:標簽擴展也就是找到相似的標簽,即計算標簽的相似度,可以從數(shù)據(jù)中采用余弦公式計算標簽的相似度。使用標簽的一個問題是不是所有標簽都反映了用戶的興趣,另外將標簽作為推薦解釋也需要清理標簽。常用的標簽清理方法有:去除詞頻很高的停止詞去除因詞根不同造成的同義詞去除因分隔符造成的同義詞這里也可以加入用戶反饋的途徑。也可以利用圖模型來做基于標簽的個性化推薦。方法和二分圖的推薦模型類似,不過這里需要用戶、物品和標簽三種頂點。同樣可以用PersonalRank算法計算所有物品頂點相對于當前用戶頂點在圖上的相關(guān)性,排序得到推薦列表?;跇撕灥耐扑]的最大好處是可以利用標簽做推薦解釋。一些網(wǎng)站還使用了標簽云表示用戶的興趣分布,標簽的尺寸越大,表示用戶對這個標簽相關(guān)的物品越感興趣。分析表明:用戶對標簽的興趣能幫助用戶理解為什么給他推薦某個物品物品與標簽的相關(guān)度能幫助用戶判定被推薦物品是否符合他的興趣用戶對標簽的興趣和物品與標簽的相關(guān)度對于用戶判定有同樣的作用客觀事實類標簽比主觀感受類標簽作用更大4.3給用戶推薦標簽標簽系統(tǒng)會希望用戶能夠給物品打上優(yōu)質(zhì)的標簽,這樣有利于標簽系統(tǒng)的良性循環(huán)。給用戶推薦標簽的好處是方便用戶打標簽,同時提高標簽質(zhì)量,減少同義詞。給用戶推薦標簽的方法可以是:給用戶推薦物品
i
的最熱門標簽;給用戶推薦他最常用的標簽;或者前兩種方法的結(jié)合。以最后一種為例:pui(b)=αwu,bmaxbwu,b+(1?α)wi,bmaxbwi,b上面的方法同樣有類似于冷啟動的問題,解決的辦法可以考慮用抽取關(guān)鍵詞(沒有標簽)和關(guān)鍵詞擴展(有標簽但是很少)。圖模型同樣可以用于標簽推薦。在生成用戶-物品-標簽圖后,可以用PersonalRank算法生成推薦結(jié)果。但這里和之前不同,可以重新定義頂點的啟動概率為rv=???α1?α0v=vuv=viothers5利用上下文信息5.1時間上下文時間上下文表現(xiàn)在:用戶的興趣是變化的,物品是有生命周期的,季節(jié)效應(yīng)。時效性強的物品,平均在線天數(shù)短??紤]時間信息后,推薦系統(tǒng)就變?yōu)橐粋€時變的系統(tǒng),可以用
(u,i,t)
表示用戶
u
在時刻
t
對物品
i
的行為。推薦系統(tǒng)的實時性要求:在每個用戶訪問推薦系統(tǒng)時,根據(jù)用戶在此之前的行為實時計算推薦列表。推薦算法需要平衡考慮用戶的近期行為和長期行為,保證對用戶興趣預(yù)測的延續(xù)性。推薦系統(tǒng)的時間多樣性為推薦結(jié)果的變化程度,時間多樣性高能夠提高用戶滿意度。加入時間效應(yīng)后,最簡單的非個性化推薦算法是推薦最近最熱門物品。給定時間
T
,物品最近的流行度
ni(T)
定義為ni(T)=∑(u,i,t),t<T11+α(T?t)5.1.1時間上下文相關(guān)的ItemCF算法根據(jù)時間效應(yīng),用戶在相隔很短的時間內(nèi)喜歡的物品具有更高的相似度;用戶近期行為比很久以前的行為更能體現(xiàn)用戶現(xiàn)在的興趣。由ItemCF算法,考慮到時間效應(yīng)后(未使用IUF做修正)wij=∑u∈N(i)∩N(j)f(|tui?tuj|)|N(i)||N(j)|?????????√f
為時間衰減函數(shù),用戶對物品
i
和
j
產(chǎn)生行為的時間距離越遠,則
f(|tui?tuj|)
越小。取f(Δ)=11+αΔ將
calcItemSimilarity
第9行改為w[i][j]=w[i].get(j,0)+1/(1+alpha*abs(items[i]-items[j]))另外,類似地p(u,i)=∑j∈S(i,K)∩N(u)11+β|t0?tuj|wijruj其中
t0
為當前時間,
tuj
越靠近
t0
,和物品
j
相似的物品就會更受推薦。5.1.2時間上下文相關(guān)的UserCF算法和ItemCF算法的思路類似,用戶興趣的相似度在間隔較短的時間較高;給用戶推薦和他興趣相似的用戶最近喜歡的物品。由UserCF算法,考慮時間效應(yīng)后(未使用IIF做修正)wuv=∑i∈N(u)∩N(v)11+α|tui?tvi||N(u)||N(v)|??????????√p(u,i)=∑v∈S(u,K)∩N(i)11+β|t0?tvi|wuvrvi5.2地點上下文不同地區(qū)的用戶興趣會不同,用戶在不同的地方,興趣也會變化。研究表明,用戶具有興趣本地化和活動本地化的特征??梢詮?種數(shù)據(jù)形式來分析地點上下文的影響:(用戶,用戶位置,物品,評分)(用戶,物品,物品位置,評分)(用戶,用戶位置,物品,物品位置,評分)對于第一種,可以把用戶按地理位置做樹狀劃分,對每一級樹節(jié)點生成推薦列表,最終對各級推薦結(jié)果加權(quán)(金字塔模型)。對于第二種,可以先計算忽略物品位置的
p(u,i)
,然后減去物品位置對用戶的代價。實驗表明,考慮了用戶位置的算法要優(yōu)于ItemCF算法。6利用社交網(wǎng)絡(luò)數(shù)據(jù)HYPERLIN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溝槽砂石墊層施工方案
- 液壓鋼板壩施工方案
- 端墻施工方案
- TSHAEPI 001-2022 凈味環(huán)保瀝青氣態(tài)污染物減排性能技術(shù)要求
- DLT-637-1997-閥控式密封鉛酸蓄電池訂貨技術(shù)條件
- 二零二五年度設(shè)備安裝安全協(xié)議及設(shè)備安裝驗收證書
- 二零二五年度房地產(chǎn)租賃稅務(wù)籌劃與合同管理服務(wù)協(xié)議
- 二零二五年度住宅及地下室使用權(quán)租賃合同
- 2025年度智能化綠植養(yǎng)護服務(wù)合同協(xié)議書模板
- 二零二五年度珠寶店電子商務(wù)平臺合作開發(fā)合同
- 中學家長學校工作方案(10篇)
- 高考地理二輪復(fù)習【知識精研】大氣運動規(guī)律-大氣受熱過程與氣溫
- 人教鄂教版六年級下冊科學全冊知識點
- 2024年湖南生物機電職業(yè)技術(shù)學院單招職業(yè)技能測試題庫及答案解析
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- 團員民主評議測評表
- 雙胎妊娠 PPT課件
- 淺談小學低年級數(shù)學計算課堂教學的有效策略
- scratch趣味編程社團活動方案活動計劃
- 如何從事完美事業(yè)
- 本科教學工作審核評估匯報PPT課件
評論
0/150
提交評論