本發(fā)明涉及數(shù)據(jù)挖掘領(lǐng)域,具體涉及一種基于隱馬爾科夫模型的個(gè)性化推薦算法。
背景技術(shù):
隨著電子商務(wù)規(guī)模的不斷擴(kuò)大、商品數(shù)量和種類的快速增長,用戶需要花費(fèi)大量的時(shí)間才能找到自己想要購買的商品。為了解決上述問題,個(gè)性化推薦算法得到了廣泛的研究,能夠?yàn)橛脩籼峁﹤€(gè)性化的決策支持和信息服務(wù),一方面提升了用戶體驗(yàn),另一方面幫助商品快速推廣到相關(guān)市場。
目前,主要的個(gè)性化推薦算法主要包括協(xié)同過濾算法、基于效用的推薦算法以及基于知識(shí)的推薦算法等一系列靜態(tài)的推薦算法。此類算法通過對(duì)用戶信息數(shù)據(jù)、商品信息數(shù)據(jù)以及用戶歷史行為數(shù)據(jù)分析得出用戶偏好信息,通過用戶偏好信息來推薦用戶可能夠感興趣或者可能購買的商品。
靜態(tài)推薦算法都是基于用戶偏好是靜態(tài)(即用戶偏好不會(huì)隨時(shí)間改變)的假設(shè)。但是,現(xiàn)實(shí)生活中用戶的偏好會(huì)隨著時(shí)間變化,即用戶的偏好是動(dòng)態(tài)演變的。因此,可以進(jìn)一步挖掘用戶偏好的演變信息,從而提高個(gè)性化推薦算法的準(zhǔn)確度。但現(xiàn)有的個(gè)性化推薦算法大都沒有利用用戶偏好的動(dòng)態(tài)演變信息,這是現(xiàn)有個(gè)性化推薦算法的一個(gè)不足。
此外,現(xiàn)有的基于概率模型的個(gè)性化推薦算法在進(jìn)行模型的參數(shù)估計(jì)時(shí)需要的用戶購買記錄的樣本數(shù)量較大。而在實(shí)際情況中,很多用戶的樣本數(shù)量都不足夠,尤其是新用戶或不活躍用戶。這是現(xiàn)有個(gè)性化推薦算法的另一個(gè)不足。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有個(gè)性化推薦算法存在的不足,本發(fā)明提供了一種適用于用戶偏好動(dòng)態(tài)演變的個(gè)性化推薦算法,該算法包含參數(shù)估計(jì)算法和商品推薦算法兩個(gè)部分,其中參數(shù)估計(jì)算法中采用了本發(fā)明提出的一種新的似然函數(shù),采用該似然函數(shù)可以解決用戶的樣本數(shù)量不足的問題。本發(fā)明所提供的個(gè)性化推薦算法實(shí)現(xiàn)了用戶偏好的動(dòng)態(tài)挖掘,與現(xiàn)有個(gè)性化推薦算法相比能夠得到更高的準(zhǔn)確度。
本發(fā)明的特征在于包含以下內(nèi)容:
1、一種新的似然函數(shù),用于個(gè)性化推薦算法中的概率模型的參數(shù)估計(jì)
為了解決在模型的參數(shù)估計(jì)中用戶樣本不充分的問題,本發(fā)明提出在模型的參數(shù)估計(jì)時(shí),對(duì)于給定用戶u,除了用戶u的樣本,還把與u相似的所有用戶的樣本也作為訓(xùn)練樣本來構(gòu)造似然函數(shù),以進(jìn)行模型參數(shù)的最大似然估計(jì)。
本發(fā)明提出的樣本似然函數(shù)為:
其中,x是與用戶u有關(guān)的觀測樣本,為d(d≥1)維,x可以來源于用戶u,也可以來源于和u相似的用戶。所有的x構(gòu)成的集合為Du。θ是待估計(jì)的參數(shù)集。p(x)是連續(xù)概率分布的(聯(lián)合)概率密度函數(shù)。w(x)表示觀測樣本x的權(quán)值,若x來源于用戶u,則w(x)=1;若x來源于和u相似的用戶,則w(x)為相似程度的函數(shù),具體計(jì)算表達(dá)式見式(3)。
2、一種基于隱馬爾科夫模型的參數(shù)估計(jì)算法
在本發(fā)明提供的個(gè)性化推薦算法中,為了挖掘用戶偏好動(dòng)態(tài)演變的信息,本發(fā)明提出在似然函數(shù)(1)中的p(x|θ)采用隱馬爾科夫模型。其中,對(duì)于特定用戶u,樣本為順序統(tǒng)計(jì)量,其中表示第i個(gè)時(shí)刻,用戶u所購買的商品集。
不同于原始隱馬爾科夫模型(在隱變量ht條件下一個(gè)可觀測的變量為一維變量),本發(fā)明提出,在某一時(shí)刻t,一個(gè)可觀測的變量為長度不定的多維變量,其在隱變量ht條件下的概率密度函數(shù)為:
其中,為t時(shí)刻商品集合的勢,(z|θ,ht)服從泊松分布,服從參數(shù)為B的多項(xiàng)式分布。
因此,涉及的參數(shù)包括:隱馬爾科夫模型中初始狀態(tài)分布π、狀態(tài)轉(zhuǎn)移概率分布矩陣A以及多項(xiàng)式分布參數(shù)B,即:θ={π,A,B}。
對(duì)于上述的參數(shù)估計(jì),本發(fā)明提供了一種參數(shù)估計(jì)算法,如圖1所示。
該參數(shù)估計(jì)算法是一個(gè)參數(shù)θ循環(huán)迭代更新算法,參數(shù)θ={π,A,B}的更新的具體計(jì)算方法見公式(5)、公式(6)和公式(7)。
3、商品推薦算法
在得到模型參數(shù)的估計(jì)后,本發(fā)明提出的商品推薦算法如圖3所示。
基于用戶過去的一段時(shí)間的購物記錄,商品v的評(píng)分用該商品在下一時(shí)刻的概率來計(jì)算,其中是估計(jì)出的參數(shù)值。的具體計(jì)算方法見公式(8)。因此,本推薦的商品就是商品評(píng)分排名靠前的商品,根據(jù)實(shí)際情況,如果僅僅只需要推薦一個(gè)商品那么就是評(píng)分最高的商品,如果推薦需要推薦n個(gè)商品則將排名靠前的前n個(gè)商品作為集合推薦給用戶。
附圖說明
圖1是本發(fā)明所提供的一種適用于用戶偏好動(dòng)態(tài)演變的個(gè)性化推薦算法的流程圖;
圖2是圖1中S3“參數(shù)估計(jì)”的算法流程圖;
圖3是圖1中S4“商品推薦”的算法流程圖。
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
Notation
n-推薦商品個(gè)數(shù)
m-商品個(gè)數(shù)
h-隱變量
ι-隱變量參數(shù)的維度
k-觀測樣本的時(shí)間段的長度
σ-用戶相似度閾值
t-觀測時(shí)刻
τ-迭代次數(shù)
g-計(jì)數(shù)函數(shù)名
w-權(quán)重函數(shù)名
具體實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明提供的一種適用于用戶偏好動(dòng)態(tài)演變的個(gè)性化推薦算法做具體說明。
本發(fā)明的具體實(shí)施方式包括兩個(gè)主要部分:參數(shù)估計(jì)(圖1中S3)和商品推薦(圖1中S4)。
參數(shù)估計(jì)的算法如圖2所示,采用基于本發(fā)明提供的一種新的似然概率函數(shù)的隱馬爾科夫模型。
U={u1,u2,...,ul}表示所有觀測樣本中所涉及的用戶的集合,給定一個(gè)用戶ui,向量vi用于描述該用戶的基本屬性,在過去k個(gè)時(shí)間段內(nèi)的用戶ui觀測樣本為表示第j個(gè)時(shí)間段的觀測樣本子集。用戶ui的相似用戶集N(ui)={uj|||vi-vj||2<σ,uj∈U}為屬性向量的歐式距離小于給定閾值的用戶集合,其中,σ是預(yù)先給定的閾值用于篩選屬性相似的用戶。用戶ui的模型訓(xùn)練的訓(xùn)練樣本集為其中N(ui)j表示用戶ui的第j個(gè)近鄰用戶,|N(ui)|表示用戶ui的近鄰用戶集的大小。
用戶ui的訓(xùn)練樣本的似然函數(shù)用式(1)計(jì)算,其中表示樣本的樣本權(quán)值,樣本權(quán)值的計(jì)算公式如下:
在本發(fā)明提供的個(gè)性化推薦算法中,用戶觀測樣本的概率密度函數(shù)由隱馬爾科夫模型來計(jì)算,模型參數(shù)θ={π,A,υ}。
一個(gè)典型的隱馬爾科夫模型包括:隱變量和可見變量兩部分,對(duì)于每個(gè)時(shí)刻t,均有一個(gè)可見變量和隱變量,對(duì)于t時(shí)刻的隱變量只依賴于上一時(shí)刻t-1的隱變量,t時(shí)刻的可見變量只依賴于當(dāng)前時(shí)刻t的隱變量。其中,對(duì)于初始時(shí)刻的隱變量服從參數(shù)向量長度為ι的參數(shù)π={π1,π2,...,πι}的多項(xiàng)式分布,即:ht=1~Mutinomi(aπl(wèi))。對(duì)于t(t>1)時(shí)刻的隱變量,其分布依賴于前一時(shí)刻,即:
其中,A是從變量ht|ht-1的概率密度函數(shù)的參數(shù),A中元素aij表示ht-1=i條件下ht=j(luò)的概率,即:p(ht=j(luò)|ht-1=i)=aij。
本發(fā)明提供的基于隱馬爾可夫模型的個(gè)性化推薦算法中,可見變量的概率密度由公式(2)計(jì)算。因此,在上訴的似然函數(shù)和隱馬爾可夫模型前提下的參數(shù)估計(jì)算法(即本文提供的基于隱馬爾可夫模型的個(gè)性化推薦算法)包括參數(shù)更新和參數(shù)收斂判斷。其中,對(duì)于給定的用戶ui,每次迭代的初始分布的參數(shù)更新計(jì)算如下:
其中,{πτ,Aτ,Bτ}表示第τ次迭代參數(shù)計(jì)算的結(jié)果。由前向傳播算法[1],由前向傳播算法和后向傳播算法[1]計(jì)算得出。
每次迭代的狀態(tài)轉(zhuǎn)移概率更新公式如下:
其中,表示觀測序列的長度。的計(jì)算方法由參考文獻(xiàn)[1]給出。
每次迭代的生成概率更新公式如下:
其中,函數(shù)g計(jì)算商品j在商品集中出現(xiàn)的次數(shù)。
在得到模型參數(shù)的估計(jì)后,基于用戶過去的一段時(shí)間的購物記錄,商品i的評(píng)分用該商品在下一時(shí)刻的概率來計(jì)算,的具體計(jì)算方法如下:
其中,的具體計(jì)算方法由參考文獻(xiàn)[1]給出。
因此,本推薦的商品就是商品評(píng)分排名靠前的商品,根據(jù)實(shí)際情況,如果僅僅只需要推薦一個(gè)商品那么就是評(píng)分最高的商品,如果推薦需要推薦n個(gè)商品則將排名靠前的前n個(gè)商品作為集合推薦給用戶。
下面結(jié)合附圖具體說明本發(fā)明提供的基于隱馬爾科夫模型的個(gè)性化推薦算法,算法具體包括如下步驟:
S1、初始化候選用戶集U‘,即把所有用戶都作為候選用戶;
S2、從候選用戶集U‘選擇一個(gè)用戶u;
S3、對(duì)于用戶u,執(zhí)行本發(fā)明提供的參數(shù)估計(jì)算法,具體包括如下步驟:
S3.1、初始化參數(shù)集,包括:初始狀態(tài)分布參數(shù)π、狀態(tài)轉(zhuǎn)移概率分布參數(shù)A、多項(xiàng)式分布參數(shù)B、參數(shù)收斂閾值σ、用戶u的觀測數(shù)據(jù)集Du以及推薦商品集大小n;
S3.2、初始化迭代次數(shù),即:τ=0;
S3.3、更新參數(shù)π,具體更新公式見式(5);
S3.4、更新參數(shù)A,具體更新公式見式(6);
S3.5、更新參數(shù)B,具體更新公式見式(7);
S3.6、迭代次數(shù)加一,即:τ=τ+1;
S3.7、判斷參數(shù)估計(jì)算法是否收斂,如果算法收斂,則進(jìn)入步驟S4;否則進(jìn)入步驟S3.3;
S4、執(zhí)行本發(fā)明提供的商品推薦算法,具體包括如下步驟:
S4.1、初始化商品集;
S4.2、從商品集中選擇商品i;
S4.3、計(jì)算商品i的評(píng)分p(i|θ,Du),具體計(jì)算公式見式(8);
S4.4、將商品i從商品集I中刪除;
S4.5、判斷商品集是否為空集,如果為空集,則進(jìn)入步驟S4.6;否則,進(jìn)入步驟S4.2;
S4.6、對(duì)所有的商品i,將p(i|θ,Du)排序;
S4.7、p(i|θ,Du)值最大的n個(gè)商品的集合即為推薦商品集;
S5、U‘=U‘-u,即將用戶u從候選用戶集U‘中剔除;
S6、判斷候選用戶集U‘是否為空集,如果U‘為空集,則算法結(jié)束;如果U‘不為空集,則返回步驟S2.
參考文獻(xiàn)
[1]Rabiner L,Juang B.An introduction to hidden Markov models[J].IEEE ASSP Magazine,1986,3(1):4-16.