王昕智 吳產(chǎn)樂(lè)
摘要:對(duì)當(dāng)今推薦系統(tǒng)冷啟動(dòng)方法中存在的新用戶(hù)類(lèi)型選擇以及流行度趨勢(shì)描述不精確的問(wèn)題,提出了一種基于最大熵預(yù)測(cè)模型的協(xié)同過(guò)濾推薦算法.在類(lèi)型選擇時(shí),通過(guò)構(gòu)建最大熵預(yù)測(cè)模型,預(yù)測(cè)用戶(hù)最喜歡的項(xiàng)目類(lèi)型. 實(shí)驗(yàn)表明:該方法對(duì)冷啟動(dòng)問(wèn)題的解決有效,提升了推薦系統(tǒng)準(zhǔn)確率。
關(guān)鍵詞:最大熵;協(xié)同過(guò)濾;冷啟動(dòng)
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)02-0268-03
Maximum Entropy Model for An Application Research of Collaborative Filtering Recommendation
WANG Xin-zhi1 , WU Chan-le2
(1.Class 16 of Grade 12 of No.1 Middle School Affiliated to Central China Normal University, Wuhan 430074, China; 2. Computer School Wuhan University, Wuhan 430070, China)
Abstract: Aiming to solve the problems of type selection and imprecise project popularity trend description of new users in the existing methods to solve the cold start problem in a recommendation system, this paper proposes a collaborative filtering recommendation algorithm Based on maximum entropy prediction model. In type selection stage, this method establishes a maximum entropy prediction model to predict the users favorite type of project. The experimental results show that this method can effectively solve the cold start problem and improve the accuracy of recommendation system.
Key words: Maximum Entropy ;Collaborative Filtering; Cold Start
當(dāng)今以用戶(hù)為中心的信息生產(chǎn)模式造成了互聯(lián)網(wǎng)信息的爆炸式增長(zhǎng)[1],為了幫助用戶(hù)快速準(zhǔn)確地獲取自身需要的信息,推薦系統(tǒng)應(yīng)運(yùn)而生[2,3].目前的推薦系統(tǒng)主要分為基于規(guī)則、內(nèi)容和協(xié)同過(guò)濾三種方式[4],其中協(xié)同過(guò)濾作為一種高效實(shí)用的方法,在推薦系統(tǒng)中應(yīng)用最為廣泛[5]。
協(xié)同過(guò)濾推薦算法在推薦系統(tǒng)中應(yīng)用較廣,但仍存在冷啟動(dòng)、稀疏性等問(wèn)題.其中,冷啟動(dòng)問(wèn)題是這幾個(gè)問(wèn)題中的重點(diǎn)。
冷啟動(dòng)問(wèn)題是指新用戶(hù)和新項(xiàng)目加入系統(tǒng)中時(shí),由于不存在歷史瀏覽、消費(fèi)等數(shù)據(jù),系統(tǒng)無(wú)法對(duì)其進(jìn)行個(gè)性化推薦[6,7]。目前對(duì)冷啟動(dòng)問(wèn)題的研究主要分為兩種:1)類(lèi)型-項(xiàng)目形式[8];2)將傳統(tǒng)協(xié)同過(guò)濾算法的評(píng)分?jǐn)?shù)據(jù)與特定的方法相結(jié)合[9,10]。
雖然上述研究取得了一定的效果,但新用戶(hù)冷啟動(dòng)問(wèn)題仍然面臨以下問(wèn)題:1)在建立分類(lèi)模型時(shí),文獻(xiàn)[6-8]都將用戶(hù)的不同屬性對(duì)推薦結(jié)果的影響權(quán)重看作是相同的;2)在進(jìn)行項(xiàng)目推薦時(shí),文獻(xiàn)[5,9]直接將所有項(xiàng)目的流行度隨時(shí)間變化的趨勢(shì)假定為指數(shù)衰減函數(shù),沒(méi)有考慮每個(gè)項(xiàng)目的流行度變化趨勢(shì)的不同.針對(duì)這兩個(gè)問(wèn)題,本文提出了基于最大熵預(yù)測(cè)模型的協(xié)同過(guò)濾推薦算法。
1 算法模型
1.1 算法描述
首先,在類(lèi)型選擇方面,提出了基于最大熵預(yù)測(cè)模型的項(xiàng)目類(lèi)型選擇算法,主要考慮用戶(hù)屬性權(quán)重對(duì)分類(lèi)結(jié)果的影響,從統(tǒng)計(jì)學(xué)角度探究用戶(hù)不同屬性與項(xiàng)目之間的關(guān)系,進(jìn)而構(gòu)建最大熵預(yù)測(cè)模型,當(dāng)新用戶(hù)進(jìn)入系統(tǒng)時(shí),根據(jù)新用戶(hù)的屬性即可預(yù)測(cè)出用戶(hù)最喜歡的項(xiàng)目類(lèi)型;其次,在項(xiàng)目選擇上,提出基于曲線(xiàn)擬合的流行度計(jì)算方法,首先統(tǒng)計(jì)數(shù)據(jù)集中項(xiàng)目的頻次-時(shí)間矩陣,然后通過(guò)多項(xiàng)式擬合方法,擬合出流行度變化趨勢(shì)曲線(xiàn)。
本文提出的改進(jìn)算法流程圖如圖1所示:
1.2 基于最大熵預(yù)測(cè)模型的類(lèi)型選擇算法
本文利用最大熵預(yù)測(cè)模型預(yù)測(cè)給定用戶(hù)屬性的情況下,用戶(hù)喜歡某種項(xiàng)目類(lèi)型的概率,即尋找用戶(hù)屬性與項(xiàng)目類(lèi)型之間的對(duì)應(yīng)關(guān)系模型.模型中用到的符號(hào)表示如表1所示。
由于推薦系統(tǒng)中存在某個(gè)項(xiàng)目屬于多個(gè)項(xiàng)目類(lèi)型的情況,例如,在電影推薦系統(tǒng)中,某些電影既屬于動(dòng)作類(lèi)又屬于愛(ài)情類(lèi),而某些電影僅僅屬于動(dòng)作或愛(ài)情類(lèi),因此用 [itemi(num)]表示項(xiàng)目[i]具有的項(xiàng)目類(lèi)型個(gè)數(shù),[Rpi]表示用戶(hù)[userp]對(duì)項(xiàng)目[i]是否有評(píng)分,有評(píng)分記為1,沒(méi)有評(píng)分記為0,[Rpi]的表達(dá)式如下:
[Rpi= 1, 用戶(hù) p 對(duì)項(xiàng)目 i 有評(píng)分 0, 用戶(hù) p 對(duì)項(xiàng)目 i 沒(méi)有評(píng)分 ] (1)
經(jīng)過(guò)統(tǒng)計(jì)分析后可以構(gòu)建類(lèi)似如表2的樣本集。
從表2可以看出,若要知道某個(gè)具有屬性[X]的用戶(hù)[userp]最喜歡的項(xiàng)目類(lèi)型,需要分別計(jì)算該用戶(hù)喜歡所有項(xiàng)目類(lèi)型中任意項(xiàng)目類(lèi)型[j]的概率.若用[p(Ypj)]表示具有屬性[X]的用戶(hù)[userp]喜歡項(xiàng)目類(lèi)型[j]的概率,[p(Ypj)]的計(jì)算公式表示如下:
[pYpj=i=1N1iteminumRpi] [如果 yj∈itemi] (2)endprint
通過(guò)上式計(jì)算出概率[p(Ypj)]的大小之后,用戶(hù)[userp]最喜歡的項(xiàng)目類(lèi)型[yj]可以通過(guò)下式求得:
[yj=maxpYpj] (3)
在得出用戶(hù)[userp]最喜歡的項(xiàng)目類(lèi)型[yj]后,需要進(jìn)一步求出具有屬性[X]的各個(gè)用戶(hù)最喜歡的項(xiàng)目類(lèi)型表,那么我們需要預(yù)測(cè)用戶(hù)[p]的各個(gè)屬性值[xi]對(duì)其最喜歡項(xiàng)目類(lèi)型[yj]的影響。
首先利用概率統(tǒng)計(jì)的知識(shí),任意選擇[X]中某個(gè)屬性值[xi],循環(huán)計(jì)算項(xiàng)目類(lèi)型分別為:[yj(j=1,2......m)]時(shí)的各個(gè)條件概率[p(Y=yj|X=xi)],其計(jì)算公式如下:
[pY=yj|X=xi=countX=xi,Y=yjcountX=xi], (4)
其中,[count(X=xi,Y=yj)]表示訓(xùn)練集中某個(gè)屬性值[xi]與項(xiàng)目類(lèi)型[yj]同時(shí)出現(xiàn)時(shí)的用戶(hù)個(gè)數(shù),[count(X=xi)]表示訓(xùn)練集中某個(gè)屬性值[xi]出現(xiàn)時(shí)的用戶(hù)個(gè)數(shù).屬性值[xi]下用戶(hù)最喜歡的項(xiàng)目類(lèi)型可以通過(guò)下式求得:
[yp|xi=maxpY=yj|X=xi]. (5)
1.3 基于流行度趨勢(shì)擬合的項(xiàng)目推薦算法
在1.2節(jié)中已經(jīng)利用最大熵預(yù)測(cè)模型判斷出用戶(hù)[userp]喜歡的項(xiàng)目類(lèi)型為[yj],且項(xiàng)目類(lèi)型為[yj]的項(xiàng)目列表為[F],對(duì)于[F]中每一個(gè)項(xiàng)目[fi(i=1,2......m)],分別將其最早被評(píng)分時(shí)間[tb],與最晚被評(píng)分時(shí)間[te]之間的時(shí)間區(qū)間,按照某個(gè)時(shí)間間隔(年、月、日、星期)分成[k]個(gè)小區(qū)間,這些小區(qū)間表示為[tj(j=1,2......k)].對(duì)每個(gè)小區(qū)間分別統(tǒng)計(jì)該項(xiàng)目在該段時(shí)間區(qū)間的被評(píng)分次數(shù),其中用[freij]表示某項(xiàng)目[fi]在時(shí)間[tj]內(nèi)的流行度。雖然統(tǒng)計(jì)結(jié)果只是統(tǒng)計(jì)了最近[k]個(gè)時(shí)間區(qū)間的評(píng)價(jià)頻次信息,但是它也包含流行度隨時(shí)間變化的趨勢(shì)信息.我們可以根據(jù)上述中的項(xiàng)目-流行度-時(shí)間統(tǒng)計(jì)結(jié)果,擬合出每個(gè)項(xiàng)目的流行度隨時(shí)間變化的曲線(xiàn),其中擬合曲線(xiàn)的方法有很多種,例如多項(xiàng)式擬合、指數(shù)衰減函數(shù)擬合、線(xiàn)性回歸等方法。
2 實(shí)驗(yàn)結(jié)果與分析
2.1 實(shí)驗(yàn)數(shù)據(jù)
本實(shí)驗(yàn)所使用的硬件環(huán)境為:Intel(R) Core(TM) i5-3210M CPU @2.50Ghz,內(nèi)存4G;硬盤(pán)500G.軟件:數(shù)據(jù)庫(kù)mysql5.7.16,開(kāi)發(fā)工具:Pycharm。
本文用到的數(shù)據(jù)集是Minnesota大學(xué)的GroupLens實(shí)驗(yàn)室于2015年8月份最新公布的MovieLens數(shù)據(jù)集,該數(shù)據(jù)集包括從1995年2月到2015年8月234934位用戶(hù)對(duì)30106部電影的評(píng)分?jǐn)?shù)據(jù),共有21622187 條評(píng)分記錄。為保證實(shí)驗(yàn)的穩(wěn)定性,最終選取了評(píng)分時(shí)間跨度一年以上的371位用戶(hù)對(duì)9157部電影的86132條評(píng)分作為實(shí)驗(yàn)數(shù)據(jù).為保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,本文將選取實(shí)驗(yàn)數(shù)據(jù)的80%作為訓(xùn)練數(shù)據(jù),另外的20%作為測(cè)試數(shù)據(jù)。
在MovieLens數(shù)據(jù)集中,本文主要關(guān)注用戶(hù)屬性信息和項(xiàng)目類(lèi)型信息以及用戶(hù)對(duì)電影的評(píng)分信息,其中用戶(hù)的屬性信息結(jié)構(gòu)如表3所示。
在MoviesLens數(shù)據(jù)集中,用戶(hù)從屬的職業(yè)有21種,在實(shí)驗(yàn)中,為了便于建立用戶(hù)屬性與項(xiàng)目類(lèi)型之間的特征關(guān)系,將用戶(hù)職業(yè)劃分為5大類(lèi):管理類(lèi)、技術(shù)類(lèi)、文藝類(lèi)、服務(wù)類(lèi)和其他;年齡劃分為兒童(0-18)、青年(19-34)、中年(35-55)和老年(56-100)。
2.2 評(píng)價(jià)標(biāo)準(zhǔn)
對(duì)用戶(hù)來(lái)說(shuō),推薦系統(tǒng)能否推薦用戶(hù)感興趣的東西是衡量這個(gè)系統(tǒng)優(yōu)劣的標(biāo)準(zhǔn),所以,需要對(duì)推薦系統(tǒng)的準(zhǔn)確度進(jìn)行評(píng)估,以此來(lái)判斷推薦系統(tǒng)算法能否推薦合適的資源給用戶(hù).為此,在類(lèi)型判斷中,需要對(duì)分類(lèi)準(zhǔn)確率進(jìn)行計(jì)算,[right]表示分類(lèi)準(zhǔn)確率,[number]表示測(cè)試的用戶(hù)數(shù),[count(right)]表示分類(lèi)準(zhǔn)確的用戶(hù)數(shù).則分類(lèi)準(zhǔn)確率的公式如下:
[right=countrightnumber] (6)
2.3 實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)部分將本文提出的算法與當(dāng)前具有代表性的4種算法:結(jié)合項(xiàng)目類(lèi)別相似性和動(dòng)態(tài)時(shí)間加權(quán)的協(xié)同過(guò)濾推薦算法(CTCF)、基于項(xiàng)目?jī)?nèi)容和評(píng)分的時(shí)間加權(quán)協(xié)作過(guò)濾算法(CRTCF)、基于用戶(hù)的協(xié)同過(guò)濾算法(UBCF)和基于項(xiàng)目的協(xié)同過(guò)濾算法(IBCF)進(jìn)行比較,屬性數(shù)目設(shè)置為1~10,步長(zhǎng)為1,擬合階數(shù)設(shè)置為9階,比較結(jié)果分別如圖2~3所示。
圖2描述了不同分類(lèi)算法對(duì)分類(lèi)準(zhǔn)確率的影響.從圖2可以看出,隨著屬性個(gè)數(shù)的增加,分類(lèi)準(zhǔn)確率不斷上升,其中UBCF和IBCF算法與本文算法性能較為接近,因?yàn)檫@三個(gè)算法都是從用戶(hù)和項(xiàng)目方面進(jìn)行的改進(jìn)算法,而CTCF和CRTCF是基于內(nèi)容的改進(jìn)算法.當(dāng)屬性個(gè)數(shù)達(dá)到10個(gè)時(shí),本文算法分類(lèi)準(zhǔn)確率達(dá)到98.0%,比當(dāng)前最好的算法IBCF提高1.0%,而比CTCF算法提高7.7%;當(dāng)屬性個(gè)數(shù)較少時(shí)(屬性個(gè)數(shù)=1),本文算法分類(lèi)準(zhǔn)確率仍然能夠達(dá)到77.0%.圖2說(shuō)明本文提出的基于最大熵預(yù)測(cè)模型的項(xiàng)目分類(lèi)算法是有效的。
圖3描述了不同算法中流行度計(jì)算方法對(duì)項(xiàng)目推薦準(zhǔn)確率的影響。從圖3中可以看出,隨著流行度統(tǒng)計(jì)年份的增加,本文及對(duì)比算法的項(xiàng)目推薦準(zhǔn)確率均有所提高。在統(tǒng)計(jì)年份較少時(shí),本文算法表現(xiàn)較好,這是因?yàn)榻y(tǒng)計(jì)年份較少時(shí),統(tǒng)計(jì)數(shù)據(jù)是稀疏的離散點(diǎn),而本文基于擬合的方法相比其它算法,更能準(zhǔn)確的描述稀疏離散點(diǎn)之間缺失的數(shù)據(jù)。
3 結(jié)論
本文針對(duì)現(xiàn)有冷啟動(dòng)方法中存在的類(lèi)型選擇以及流行度變化趨勢(shì)描述不精確的問(wèn)題,提出了一種基于最大熵預(yù)測(cè)模型的協(xié)同過(guò)濾推薦算法.實(shí)驗(yàn)結(jié)果表明,本文提出的算法適用于屬性值較少的新用戶(hù)項(xiàng)目推薦情形,對(duì)解決推薦系統(tǒng)中冷啟動(dòng)問(wèn)題有一定效果。
參考文獻(xiàn):endprint
[1] Jin R, Si L, Zhai C. A study of mixture models for collaborative filtering[J]. Information Retrieval Journal, 2006, 9(3):357-382.
[2] Claypool M. Combining content-based and collaborative filters in an online newspaper[C]//ACM. Proceedings Of The Recommender Systems Workshop At ACM SIGIR (1999). New York: ACM, 1999: 1995-1999.
[3] Park S T, Pennock D, Madani O, et al. Na?ve filterbots for robust cold-start recommendations[C]//ACM. ACM International Conference On Knowledge Discovery And Data Mining. Philadelphia: ACM, 2006: 699-705.
[4] 孫冬婷, 何濤, 張福海, 等. 推薦系統(tǒng)中的冷啟動(dòng)問(wèn)題研究綜述[J]. 計(jì)算機(jī)與現(xiàn)代化, 2012, 4(5):59-63.
[5] 姚娟. 融合項(xiàng)目流行度的協(xié)同過(guò)濾推薦算法[D]. 西安: 西安建筑科技大學(xué), 2015.
[6] Golbandi N, Koren Y, Lempel R. Adaptive bootstrapping of recommender systems using decision trees[C]//ACM. Forth International Bootstrapping Of Recommender Systems Using Mining. Hong Kong: ACM, 2011: 595-604.
[7] 趙廣杰, 尹四清. 基于支持向量機(jī)回歸多屬性智能電視電影推薦[J]. 電視技術(shù), 2015, 39(6):32-35.
[8] 張東, 蔡國(guó)永, 夏彬彬. 一種提高推薦多樣性的概率選擇模型[J].計(jì)算機(jī)科學(xué), 2016, 43(2):72-77.
[9] 韋素云, 業(yè)寧, 楊旭兵, 等. 結(jié)合項(xiàng)目類(lèi)別和動(dòng)態(tài)時(shí)間加權(quán)的協(xié)同過(guò)濾算法[J]. 計(jì)算機(jī)工程, 2014, 40(6):206-210.
[10] 馮雨晴. 基于流行度預(yù)測(cè)的個(gè)性化媒體推薦算法研究[D]. 青島: 中國(guó)海洋大學(xué), 2013.endprint