国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于因子分解機(jī)和隱馬爾可夫的推薦算法

2019-06-14 07:36王曉耘
關(guān)鍵詞:馬爾可夫矩陣因子

王曉耘,李 賢,袁 媛

(1.杭州電子科技大學(xué) 管理學(xué)院,浙江 杭州 310018;2.杭州電子科技大學(xué) 計算機(jī)學(xué)院,浙江 杭州 310018)

0 引 言

近年來,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,數(shù)據(jù)呈現(xiàn)出了爆炸式的增長。如何快速又有效地從海量數(shù)據(jù)中尋找用戶所需要的信息成為了一個迫切的問題。為了應(yīng)對海量的數(shù)據(jù)信息,搜索系統(tǒng)和推薦系統(tǒng)應(yīng)運(yùn)而生。對于那些有著明確目的的用戶,信息搜索系統(tǒng)是一種非常有效的方法,但通常用戶并不是非常清楚自己所需要什么,在這種情況下使用推薦系統(tǒng)便是一個較好的應(yīng)對策略,現(xiàn)如今推薦系統(tǒng)的應(yīng)用已經(jīng)遍布網(wǎng)絡(luò)的各個領(lǐng)域。協(xié)同過濾是一種常見且有效的推薦方法,協(xié)同過濾是通過尋找與當(dāng)前用戶最相似的用戶,根據(jù)相似用戶的歷史購買記錄來進(jìn)行推薦的。此外還有基于內(nèi)容的推薦方法和其他一些傳統(tǒng)的推薦方法,這類傳統(tǒng)的推薦方法起初往往在推薦過程中并不會引入上下文信息,這導(dǎo)致在推薦精度存在一些不足。在這種情況下,研究者們開始在推薦系統(tǒng)中引入上下文信息,通過結(jié)合上下文信息來對用戶進(jìn)行個性化推薦。這便出現(xiàn)了將傳統(tǒng)的“用戶-產(chǎn)品”二維的評分模型User×Item→Rating擴(kuò)充為含有上下文信息的模型User×Context×Item→Rating。

文中主要基于上下文信息來對用戶進(jìn)行個性化推薦,提出了一種結(jié)合因子分解機(jī)[1]和隱馬爾可夫模型的方法來進(jìn)行個性化推薦,通過因子分解機(jī)進(jìn)行初始預(yù)測,之后利用隱馬爾可夫模型對用戶的興趣愛好進(jìn)行預(yù)測,從而為用戶進(jìn)行個性化推薦。通過引入上下文信息來構(gòu)建包含用戶和產(chǎn)品的上下文信息矩陣,但該矩陣通常是稀疏矩陣,而因子分解機(jī)能夠較好地對稀疏矩陣進(jìn)行學(xué)習(xí),能夠較好地解決實際情況中一些數(shù)據(jù)稀疏的問題,而擁有隱藏狀態(tài)的隱馬爾可夫模型則能夠模擬以用戶興趣為隱藏狀態(tài)的用戶評分模型。在MovieLens數(shù)據(jù)集上的實驗結(jié)果表明,該方法能夠有效提高個性化推薦的準(zhǔn)確度。

1 相關(guān)工作

1.1 推薦算法

目前推薦系統(tǒng)[2-4]可以分為兩類:上下文感知推薦系統(tǒng)和非上下文感知推薦系統(tǒng)。它們之間的主要區(qū)別可以表述如下。對于一個用戶集合U={u1,u2,…,um}和一個產(chǎn)品集合I={i1,i2,…,im},傳統(tǒng)的推薦技術(shù)即非上下文感知推薦系統(tǒng),是基于用戶對產(chǎn)品的評分矩陣M∈Rm×n來進(jìn)行的,通過擬合矩陣特征模型來預(yù)測那些空白的數(shù)據(jù),這類被稱為非上下文感知的推薦。這種推薦模型能夠適應(yīng)很多的案例,但那些上下文信息,例如:時間、地點、用戶情緒等[5]并未參與其中。這些信息能為推薦提供更多的維度??梢詾樯舷挛男畔6]定義一系列上下文的維度{C3,C4,…,Ck},每個上下文維度Ci是由一系列在某一情境下所捕獲的屬性集所組成的。事實上用戶和產(chǎn)品也可以由上下文維度C1,C2來表示。

使用用戶對產(chǎn)品的評分來進(jìn)行個性化推薦,在部分情況下有著不錯的效果,但在許多應(yīng)用場景下并不能進(jìn)行精確的推薦。上下文感知推薦系統(tǒng)是通過利用用戶以及產(chǎn)品的額外信息來構(gòu)建適應(yīng)面更加廣泛的推薦系統(tǒng),以達(dá)到提高個性化推薦準(zhǔn)確度的目的,具有重要的研究意義和應(yīng)用價值。

通常用戶的選擇是受當(dāng)前上下文信息影響的,包括時間、地點、人物、環(huán)境等等。Karatzoglou等[7]提出了一種將用戶,產(chǎn)品,上下文信息作為N維張量的多層推薦模型。對特征因子采用了高階奇異值分解。然而,這種模型只能應(yīng)用在一些特定的上下文信息之中,而且計算復(fù)雜度較高。Rendle等[8]通過使用因子分解機(jī)(FM)來進(jìn)行上下文感知推薦。因子分解機(jī)中可以將大量的上下文信息轉(zhuǎn)換到特征矩陣中。與多層推薦模型相比,因子分解機(jī)具有較短的計算時間,并且在預(yù)測結(jié)果和預(yù)測的質(zhì)量上都要優(yōu)于多層推薦模型。Hong等[9]提出了一種co-FM方法來對用戶的興趣進(jìn)行建模,并進(jìn)行個性化推薦。Cheng等[10]提出了一種具有損失函數(shù)的因子分解機(jī)模型,將一種特征選擇算法和因子分級機(jī)進(jìn)行合并。Wang等[11]提出了一種隨機(jī)分割的因子分解機(jī)模型來進(jìn)行上下文感知推薦。在訓(xùn)練隨機(jī)分割的因子分解機(jī)模型之前隨機(jī)選擇樹需要手動進(jìn)行,另外還具有非常高的計算復(fù)雜度。Yin[12-15]等采用主題模型進(jìn)行興趣點推薦,利用一個包含隱藏變量的中間層以及用戶和產(chǎn)品空間的鏈接,但該模型面對大量信息時效果不佳。

1.2 隱馬爾可夫模型

隱馬爾可夫模型的主要特點是具有隱藏的狀態(tài)序列,以及在觀測序列的一般隨機(jī)過程。目前,基于隱馬爾可夫模型的改進(jìn)包括對隱馬爾可夫模型的改進(jìn)和將隱馬爾可夫模型與其他模型的結(jié)合。文獻(xiàn)[16-17]將一階隱馬爾可夫模型改為二階隱馬爾可夫模型,這在實際應(yīng)用中能更加符合對象特征,但算法的計算復(fù)雜度將會是一個重要的問題。Krishnalal[18]提出一種將隱馬爾可夫模型和支持向量機(jī)相結(jié)合的方法,先使用隱馬爾可夫模型進(jìn)行預(yù)分類,再使用支持向量機(jī)進(jìn)行二元分類。為解決小波系數(shù)之間的依賴問題,Crouse等[19]提出一種小波域馬爾可夫模型,該模型在分類、預(yù)測等方面也有不錯的表現(xiàn)。

2 方 法

2.1 因子分解機(jī)

因子分解機(jī)是一種基于矩陣分解的機(jī)器學(xué)習(xí)方法,對于稀疏數(shù)據(jù)有較好的學(xué)習(xí)效果。因子分解機(jī)[20]的2維模型可表示為:

(1)

在該模型中,模型參數(shù)Θ={w0,w1,…,wn,v1,1,…,vn,k}為w0∈R,W∈Rn,V∈Rn×k。并且

(2)

(3)

對于不同的目的,損失函數(shù)的選擇也可以有所不同,通常采用的是:

lLS(y1,y2):=(y1-y2)2

(4)

或者對于二分類問題(y∈{-1,1}),有:

lC(y1,y2):=-lnσ(y1,y2)

(5)

由于FM模型通常含有大量的模型參數(shù)Θ,因此容易出現(xiàn)過擬合??梢酝ㄟ^引入正則化進(jìn)行處理。

(6)

其中,λθ∈R+是模型參數(shù)θ的正則化系數(shù)。

對于上述優(yōu)化問題可以采用SGD算法來求解,SGD算法具有較低的計算復(fù)雜度和存儲復(fù)雜度,以及易實現(xiàn)等特點,常用來優(yōu)化因子分解機(jī)模型。參數(shù)的更新如下:

(7)

(8)

(9)

(10)

其中,η∈R+是學(xué)習(xí)速率,也可理解為梯度下降的下降速度。

2.2 隱馬爾可夫

一個離散的馬爾可夫鏈?zhǔn)且幌盗芯哂旭R爾可夫性質(zhì)的隨機(jī)變量X1,X2,X3…。也就是說下一狀態(tài)的可能取值只依賴于當(dāng)前狀態(tài),而與歷史狀態(tài)無關(guān)。

P(Xn+1=x|X1=x1,X2=x2,…,Xn=xn)=P(Xn+1=x|Xn=xn)

一個馬爾可夫模型可以表示為(S,P,Q),其中S為xi的所有可能取值所構(gòu)成的可數(shù)集,稱為該馬爾可夫鏈的狀態(tài)空間;P=[Pij]n×n是狀態(tài)轉(zhuǎn)移矩陣,Pij則表示在某一時刻處于狀態(tài)i而下一時刻處于狀態(tài)j的概率,其中n表示所有的狀態(tài)個數(shù);Q={q1,q2,…,qn}是初始的各個狀態(tài)的概率分布。

隱馬爾可夫模型也是一種馬爾可夫鏈,不同的是它的狀態(tài)轉(zhuǎn)移過程是不可觀察的,定義如下:X={s1,s2,…,sn}表示一組狀態(tài)集合,其中n為狀態(tài)數(shù);O={v1,v2,…,vm}為一組可觀察符號集合,m為觀察值的數(shù)目;狀態(tài)轉(zhuǎn)移概率為A={aij},B={bI(k)}為狀態(tài)i的觀察概率分布,表示狀態(tài)i為對應(yīng)觀察值的概率;π={πi}表示初始化狀態(tài)分布。至此,一個隱馬爾可夫模型可以定義為:

λ=(X,O,π,A,B)

2.3 推薦方法

在推薦系統(tǒng)中,數(shù)據(jù)稀疏是一個常見的問題,由于因子分解機(jī)能夠在稀疏數(shù)據(jù)中有較好的學(xué)習(xí)效果。因此,可以使用因子分解機(jī)來進(jìn)行處理。首先構(gòu)建含有上下文信息的矩陣,如圖1所示。

圖1 含有上下文信息的矩陣

圖1表示用戶U={u1,u2,…,um}對于產(chǎn)品I={i1,i2,…,in}在條件L={l1,l2,…,lk}的情況下進(jìn)行的評分,其中L便是由上下文信息所組成的,在L中可以添加想要加入的上下文信息,當(dāng)與該信息所描述的情況符合時由1表示,否則為0。例如,第一行的x1向量表示用戶u1在l1的條件下對于產(chǎn)品i1的評分為3。在構(gòu)建完含有上下文信息的矩陣后便可使用因子分解機(jī)來進(jìn)行學(xué)習(xí)。

用戶的興趣是對用戶進(jìn)行個性化推薦的一個關(guān)鍵點,如果根據(jù)用戶的興趣來進(jìn)行推薦便可大大提高推薦的準(zhǔn)確度。用戶的興趣通常來說是無法直接觀察到的,但是可以通過用戶的歷史記錄來對用戶的興趣進(jìn)行猜測。

通過引入隱馬爾可夫模型來進(jìn)行預(yù)測操作,以用戶的興趣作為隱馬爾可夫模型中的隱藏狀態(tài),可以事先手動設(shè)置隱含狀態(tài)集合X,接著根據(jù)用戶對產(chǎn)品的評分,對每一個用戶按照時間的順序來構(gòu)建一組可觀察符號集合O,之后便可以通過這組可觀察的狀態(tài)序列來對隱馬爾可夫模型進(jìn)行學(xué)習(xí)。具體的方法可以使用前向后向算法進(jìn)行,這里就不再進(jìn)行介紹了。

文中采用的推薦方法的整體流程如圖2所示。

首先對數(shù)據(jù)集進(jìn)行隨機(jī)劃分,按一定比例分為測試集和訓(xùn)練集。接著對訓(xùn)練數(shù)據(jù)集構(gòu)建上下文信息矩陣,再對上下文信息矩陣引入因子分解機(jī)來進(jìn)行求解,便可求得用戶評分的初始預(yù)測值,之后將初始預(yù)測值加入到上述可觀察符號集O中,結(jié)合用戶的歷史評分對隱馬爾可夫模型進(jìn)行學(xué)習(xí),最后再根據(jù)得到的隱馬爾可夫模型求解用戶對產(chǎn)品的最終預(yù)測值。得到最終預(yù)測值后便可根據(jù)最終預(yù)測評分的最高n位來進(jìn)行推薦。

圖2 算法流程

3 實 驗

3.1 數(shù)據(jù)集

為驗證文中方法的有效性,使用MovieLens-1M和MovieLens-10M數(shù)據(jù)集,其中MovieLens-1M數(shù)據(jù)集包含由6 040名用戶對于3 900部電影進(jìn)行的約一百萬的評分,而Movielens-10M數(shù)據(jù)集包含71 567名用戶對10 681部電影進(jìn)行的約一千萬的評分。其中評分為1到5星,對于用戶記錄了用戶性別、年齡、職業(yè)和郵編,其中對于年齡的劃分分為:小于18,18-24,25-34,34-44,45-49,50-55以及大于55。在職業(yè)上則進(jìn)行了20種劃分,包括作家、律師、無業(yè)游民、大學(xué)生等。而對于電影分成18種類型。

用戶對電影的評分構(gòu)成可觀察的集合,再根據(jù)電影的類型作為用戶興趣集合。而對于上下文矩陣對用戶考慮性別、職業(yè)和年齡屬性。而對于電影則考慮電影類型。此外對用戶的評分按照評分時間的順序構(gòu)建每個用戶的評分序列。在數(shù)據(jù)上按照80%和20%進(jìn)行劃分,其中20%的測試集合為隨機(jī)選取,剩余的80%則是訓(xùn)練集。

3.2 評估指標(biāo)

推薦方法的評價指標(biāo)有很多,但目前使用較多也是最直接的一類指標(biāo)是準(zhǔn)確度,比較典型的有平均絕對誤差(mean absolute error,MAE)。

(11)

另外,均方根誤差(root mean squared error,RMSE)也是一個使用較為頻繁的指標(biāo)。

(12)

3.3 實驗結(jié)果

在對提出的方法(FM-HMM)進(jìn)行實驗時,選擇了SVD++[20]和因子分解機(jī)(FM)兩種方法分別對MovieLens-1M和MovieLens-10M兩個數(shù)據(jù)集進(jìn)行對比實驗,并選擇了平均絕對誤差和均方根誤差作為評估標(biāo)準(zhǔn)。另外SVD++是一種典型的非上下文感知推薦算法,而FM和FM-HMM則是基于上下文信息來進(jìn)行推薦的。在構(gòu)建含有上下文信息的矩陣時,對于用戶選取了性別、年齡和職業(yè)作為上下文信息,在年齡和職業(yè)的劃分上,采用了數(shù)據(jù)集所使用的劃分方法分別將年齡劃分為7段,而對職業(yè)則分為21種。對于電影,使用了電影類型來作為上下文信息,將電影分為了18種類型。而在對用戶建立按照時間順序的用戶評分序列時,對于使用因子分解機(jī)初步預(yù)測得到的數(shù)據(jù)集,選擇將這些預(yù)測值作為最新的評分來進(jìn)行排列。

對于兩種數(shù)據(jù)集得到的實驗結(jié)果如表1和表2所示。分別查看可以明顯地發(fā)現(xiàn),上下文感知推薦在誤差上明顯要低于非上下文感知推薦方法。再對比FM模型和FM-HMM模型可以發(fā)現(xiàn)FM-HMM模型表現(xiàn)要略優(yōu)于FM模型。再對比表1和表2的結(jié)果可以發(fā)現(xiàn),當(dāng)數(shù)據(jù)量增加時,三種方法在誤差上都有相應(yīng)的減少并且FM-HMM方法減少的量要略微大于FM方法。以上結(jié)果表明,引入上下文信息以及隱藏信息來進(jìn)行推薦是可行的。

表1 MovieLens-1M數(shù)據(jù)結(jié)果

表2 MovieLens-10M數(shù)據(jù)結(jié)果

4 結(jié)束語

文中提出了一種應(yīng)對上下文感知的推薦算法,通過結(jié)合因子分解機(jī)和隱馬爾可夫模型來實現(xiàn)個性化推薦。該算法使用因子分解機(jī)進(jìn)行初始預(yù)測,再將用戶的興趣偏好作為隱藏屬性來構(gòu)建隱馬爾可夫模型進(jìn)行預(yù)測。通過與其他機(jī)器學(xué)習(xí)方法的對比來驗證該方法的有效性,并采用MovieLens數(shù)據(jù)集進(jìn)行實驗分析。實驗結(jié)果表明,引入因子分解機(jī)和隱馬爾可夫模型能夠有效地提升推薦結(jié)果的準(zhǔn)確性。但是文中研究也存在一些不足之處,在對用戶的興趣偏好方面比較依賴具體的應(yīng)用領(lǐng)域,而且興趣的選擇上也比較單一,今后將會嘗試在興趣的選擇上進(jìn)行更多元化的實現(xiàn)。此外,也會思考如何在大數(shù)據(jù)平臺下進(jìn)行實現(xiàn)。

猜你喜歡
馬爾可夫矩陣因子
我刊2021年影響因子年報
一些關(guān)于無窮多個素因子的問題
面向電力系統(tǒng)的繼電保護(hù)故障建模研究
基于馬爾可夫鏈共享單車高校投放研究
基于馬爾可夫鏈共享單車高校投放研究
基于馬爾科夫算法對預(yù)測窗戶狀態(tài)模型的研究
山藥被稱“長壽因子”
事業(yè)單位財務(wù)風(fēng)險預(yù)測建模及分析
多項式理論在矩陣求逆中的應(yīng)用
矩陣
竹北市| 辽阳县| 永春县| 扎鲁特旗| 策勒县| 大化| 武汉市| 长子县| 庄浪县| 星子县| 洛隆县| 昆山市| 兴业县| 泽库县| 宝山区| 西峡县| 通江县| 宁陕县| 甘肃省| 西乌| 察隅县| 旬邑县| 泸西县| 南江县| 平潭县| 乌拉特中旗| 酒泉市| 济宁市| 鹰潭市| 琼中| 新津县| 乌拉特中旗| 渭源县| 溧水县| 乡城县| 东乌珠穆沁旗| 咸阳市| 北京市| 泽库县| 临桂县| 洛宁县|