朱子江+劉東+劉壽強(qiáng)
摘 要:推薦系統(tǒng)是對(duì)用戶(hù)的歷史行為進(jìn)行挖掘,對(duì)用戶(hù)興趣信息進(jìn)行建模,并對(duì)用戶(hù)未來(lái)行為進(jìn)行預(yù)測(cè),從而建立用戶(hù)和內(nèi)容的關(guān)系,滿足用戶(hù)對(duì)商品的推薦需求的一種智能系統(tǒng)。通過(guò)對(duì)主要的推薦算法進(jìn)行比較分析,提出一種基于用戶(hù)行為的推薦算法,挖掘用戶(hù)瀏覽閱讀行為的關(guān)聯(lián)規(guī)則,模擬實(shí)現(xiàn)了基于用戶(hù)行為的智能推薦系統(tǒng),提高了推薦算法的有效性。
關(guān)鍵詞:推薦系統(tǒng);關(guān)聯(lián)規(guī)則;用戶(hù)行為;數(shù)據(jù)挖據(jù)
DOIDOI:10.11907/rjdk.171378
中圖分類(lèi)號(hào):TP312
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):1672-7800(2017)008-0043-03
0 引言
商家為了提高商品交易額,往往非常重視推薦活動(dòng),推薦方式豐富多彩。隨著電子商務(wù)平臺(tái)的出現(xiàn)和計(jì)算機(jī)技術(shù)發(fā)展,推薦方法升級(jí)到了智能推薦系統(tǒng)。智能推薦系統(tǒng)是建立在海量數(shù)據(jù)挖掘基礎(chǔ)上的一種商務(wù)智能平臺(tái),在電子商務(wù)網(wǎng)站中為顧客購(gòu)物提供決策支持和信息服務(wù),旨在根據(jù)顧客的購(gòu)物信息和對(duì)所購(gòu)商品的反饋信息推薦顧客需求的商品,以及具有相同效能不同種類(lèi)的商品[1-3]。
推薦系統(tǒng)主要由推薦候選對(duì)象、用戶(hù)、推薦算法3個(gè)要素組成[2],能否達(dá)到智能推薦效果的關(guān)鍵是推薦算法。推薦系統(tǒng)分為單一推薦模式和協(xié)同推薦模式。例如,利用顧客和顧客之間的相似度進(jìn)行推薦,或者利用商品與商品之間的相似度進(jìn)行推薦,均為單一推薦模式,而兩者相結(jié)合取其相應(yīng)比重進(jìn)行的推薦則為協(xié)同推薦模式。推薦系統(tǒng)的有效性取決于所采用的推薦算法。
本文在分析推薦算法的基礎(chǔ)上,模擬實(shí)現(xiàn)了一種新的基于用戶(hù)行為的推薦系統(tǒng),同時(shí)根據(jù)協(xié)同推薦系統(tǒng)中存在的問(wèn)題,結(jié)合實(shí)際提出了一種改進(jìn)算法和推薦策略。
1 主要推薦算法
推薦系統(tǒng)中比較關(guān)鍵的算法是相似度計(jì)算,有顧客與顧客之間的相似度計(jì)算,也有商品與商品之間的相似度計(jì)算。相似度計(jì)算函數(shù)要具有同樣的函數(shù)簽名、返回值為浮點(diǎn)數(shù)等特征,其返回?cái)?shù)值越大表示相似度越大。目前主要的推薦算法有基于內(nèi)容的推薦、基于協(xié)同過(guò)濾的推薦、基于關(guān)聯(lián)規(guī)則的推薦、基于效用推薦、基于知識(shí)推薦等。
由文獻(xiàn)[1]、[2]的研究可知:基于內(nèi)容的推薦算法優(yōu)點(diǎn)是用戶(hù)資料模型可隨用戶(hù)的偏好改變而發(fā)生變化,缺點(diǎn)是需要有用戶(hù)的歷史數(shù)據(jù);協(xié)同過(guò)濾推薦算法主要采用最近鄰技術(shù),最大優(yōu)點(diǎn)是能處理非結(jié)構(gòu)化數(shù)據(jù),能處理視頻、聲音等復(fù)雜推薦對(duì)象,但處理稀疏問(wèn)題時(shí)精確度不高;基于關(guān)聯(lián)規(guī)則的推薦算法優(yōu)點(diǎn)是可以發(fā)現(xiàn)不同商品在銷(xiāo)售過(guò)程中的相關(guān)性,但關(guān)聯(lián)規(guī)則發(fā)現(xiàn)很耗時(shí);基于效用推薦算法的優(yōu)點(diǎn)是它能把非產(chǎn)品的屬性考慮到效用計(jì)算中,但需要為每一個(gè)用戶(hù)創(chuàng)建一個(gè)效用函數(shù);基于知識(shí)的推薦算法能解釋需求和推薦之間的關(guān)系,但對(duì)用戶(hù)群具有局限性。
綜上所述,各推薦方法優(yōu)點(diǎn)和缺點(diǎn)并存,由此可見(jiàn),單一的推薦方法不能滿足推薦系統(tǒng)需求。實(shí)際應(yīng)用中,通過(guò)組合推薦的方法解決推薦系統(tǒng)運(yùn)行中所發(fā)現(xiàn)的問(wèn)題,由此產(chǎn)生了基于內(nèi)容的協(xié)同過(guò)濾推薦方法。該方法通過(guò)基于內(nèi)容的算法產(chǎn)生一個(gè)推薦結(jié)果,再用協(xié)同過(guò)濾推薦算法產(chǎn)生一個(gè)推薦結(jié)果,將兩者根據(jù)某一權(quán)值進(jìn)行結(jié)合,得出一個(gè)新的推薦結(jié)果[4]。組合推薦理論方法很多,但在同一推薦系統(tǒng)中,對(duì)不同問(wèn)題的推薦結(jié)果不一定都有效,組合推薦所要解決的問(wèn)題就是盡可能地避免推薦算法各自的缺點(diǎn)。
2 基于用戶(hù)行為的關(guān)聯(lián)規(guī)則推薦算法
在電子商務(wù)或網(wǎng)絡(luò)瀏覽行為場(chǎng)景中,通過(guò)用戶(hù)對(duì)已購(gòu)商品的評(píng)價(jià)來(lái)進(jìn)行推薦是比較普遍的做法,但用戶(hù)有時(shí)沒(méi)有給出評(píng)價(jià)。當(dāng)用戶(hù)只提供二元數(shù)據(jù)(購(gòu)買(mǎi)與否或者是有沒(méi)有點(diǎn)擊過(guò))時(shí),就無(wú)法應(yīng)用基于評(píng)價(jià)的算法。這時(shí)可以采用關(guān)聯(lián)規(guī)則挖掘算法,即僅對(duì)最鄰近用戶(hù)的購(gòu)買(mǎi)記錄分析,取得潛在的相似信息。當(dāng)用戶(hù)A在瀏覽某一商品S時(shí),購(gòu)買(mǎi)過(guò)商品S的鄰居用戶(hù)會(huì)將已買(mǎi)的商品推薦給用戶(hù)A,這種算法可以推薦給感興趣但從來(lái)沒(méi)有瀏覽過(guò)此商品的用戶(hù)。
2.1 關(guān)聯(lián)規(guī)則
以關(guān)聯(lián)規(guī)則[5-8]為基礎(chǔ)的推薦算法,把推薦對(duì)象作為規(guī)則體,把已購(gòu)商品作為規(guī)則頭,對(duì)購(gòu)買(mǎi)記錄進(jìn)行技術(shù)處理,發(fā)現(xiàn)最鄰近用戶(hù)以及商品購(gòu)買(mǎi)習(xí)慣,挖掘出相關(guān)性。具體關(guān)聯(lián)規(guī)則應(yīng)用場(chǎng)景如表1所示。
在上述場(chǎng)景中,商品1和商品2的余弦相關(guān)系數(shù)為: (1,0,0)·(0,1,1)||(1,0,0)||||(0,1,1)||=0(1)
商品1和商品3的余弦相關(guān)系數(shù)為: (1,0,0)·(1,1,0)||(1,0,0)||||(1,1,0)||=12(2)
商品2和商品3的余弦相關(guān)系數(shù)為:
(0,1,1)·(1,1,0)||(0,1,1)||||(1,1,0)||=12(3)
由公式(1)-(3)可推導(dǎo)出:瀏覽商品1的顧客會(huì)被推薦購(gòu)買(mǎi)商品3,而瀏覽商品2的顧客會(huì)被推薦購(gòu)買(mǎi)商品3,瀏覽了商品3的會(huì)被推薦購(gòu)買(mǎi)商品1(并由1推薦2)。該模型只使用了每對(duì)項(xiàng)目間的一個(gè)參數(shù)(余弦相關(guān)系數(shù))產(chǎn)生推薦。因此,如果有n個(gè)商品,則需要計(jì)算和存儲(chǔ) n(n-1)/2次余弦相關(guān)系數(shù)[9-11]。
2.2 算法實(shí)現(xiàn)
根據(jù)上述關(guān)聯(lián)規(guī)則并進(jìn)行改進(jìn),建立基于用戶(hù)行為的關(guān)聯(lián)規(guī)則推薦算法[9-12],算法流程如圖1所示。
2.2.1 用戶(hù)行為記錄庫(kù)建立
實(shí)驗(yàn)數(shù)據(jù)取5個(gè)用戶(hù)和15種讀物作為樣本。用戶(hù)編號(hào)為0-4,讀物編號(hào)為:0理想國(guó)、1論語(yǔ)、2英語(yǔ)、3悲慘世界、 4大學(xué)、5中庸、6大千世界、7數(shù)學(xué)、8地理、9物理、10生物、11化學(xué)、12國(guó)富論、13模電、14信號(hào)系統(tǒng)。用戶(hù)行為標(biāo)記:讀過(guò)標(biāo)記為1,沒(méi)有讀標(biāo)記為0。構(gòu)建用戶(hù)行為數(shù)據(jù)樣本庫(kù)如表2所示。
2.2.2 運(yùn)算矩陣建立
建立用戶(hù)-讀物矩陣A1,讀物和用戶(hù)編號(hào)為從0開(kāi)始的整數(shù),橫向15個(gè),為讀物編號(hào)。
2.2.3 矩陣運(yùn)算假設(shè)有用戶(hù)U想讀理想國(guó)和論語(yǔ),當(dāng)選擇了理想國(guó)和論語(yǔ)這兩個(gè)讀物后(編號(hào)為0和1),系統(tǒng)開(kāi)始進(jìn)行推薦運(yùn)算:在運(yùn)算矩陣A2中取理想國(guó)和論語(yǔ)這兩個(gè)列,第0列和第1列,然后進(jìn)行&(and)運(yùn)算得到右邊的列(第3列,理想國(guó)&論語(yǔ)),見(jiàn)矩陣A3。第1行、第2行、第3行的值都為1,則代表這個(gè)編號(hào)為1、2、3的用戶(hù)(下標(biāo)從第0行開(kāi)始計(jì)算)曾同時(shí)閱讀過(guò)理想國(guó)和論語(yǔ),即用戶(hù)U的鄰居用戶(hù)集為U鄰居{用戶(hù)1,用戶(hù)2,用戶(hù)3}。endprint
2.2.4 鄰域矩陣
由用戶(hù)U的鄰居用戶(hù)集U鄰居可知,有相同閱讀記錄的用戶(hù)行為具有一定的相似性。只要能知道用戶(hù)1、2、3還閱讀了其它讀物,然后按閱讀比率進(jìn)行統(tǒng)計(jì),就可給用戶(hù)U進(jìn)行有效推薦[13]。
用戶(hù)1、2、3還閱讀了哪些讀物可由運(yùn)算矩陣A2推導(dǎo)得知,見(jiàn)矩陣A4, 矩陣的每一行代表每個(gè)用戶(hù)的讀物記錄。
設(shè)矩陣A4這3行分別為 T1、T2、T3,進(jìn)行與運(yùn)算(or)后,可以得出用戶(hù)1、2、3閱讀行為相似性矩陣T=T1|T2|T3 ,求得T=[1 1 1 0 0 0 0 0 0 0 1 0 1 0 0],即閱讀行為相似性矩陣T代表這3個(gè)用戶(hù)都閱讀了哪些讀物。對(duì)照讀物編號(hào)表,這3個(gè)用戶(hù)閱讀了0理想國(guó)、1論語(yǔ)、2英語(yǔ)、10生物、12國(guó)富論。
由運(yùn)算矩陣A3可知,用戶(hù)U已經(jīng)選擇了理想國(guó)和論語(yǔ),即用戶(hù)U的行為矩陣A=[1 1 0 0 0 0 0 0 0 0 0 0 0 0 0],通過(guò)矩陣減法可得用戶(hù)U的鄰域矩陣L=T-A=[0 0 1 0 0 0 0 0 0 0 1 0 1 0 0]。
2.2.5 推薦結(jié)果
由鄰域矩陣L對(duì)照讀物編號(hào)可知:2英語(yǔ)、10生物、12國(guó)富論3本讀物都可以作為用戶(hù)U的推薦讀物,這些數(shù)據(jù)來(lái)源于3個(gè)用戶(hù)的閱讀記錄。根據(jù)運(yùn)算矩陣A4閱讀記錄(0英語(yǔ),1論語(yǔ)),統(tǒng)計(jì)這些用戶(hù)(1,2,3)閱讀2英語(yǔ)、10國(guó)富論、12生物的百分比,再根據(jù)百分比的高低向用戶(hù)U列出3本讀物的推薦強(qiáng)度(強(qiáng)烈推薦、首要推薦、次要推薦),提出推薦的有效性。
由運(yùn)算矩陣A4可知:
(1)2英語(yǔ)在矩陣第3列上,所有的位置都為1,表示閱讀過(guò)英語(yǔ)的鄰居用戶(hù)占100%。
(2)10生物在矩陣第11列上,3個(gè)中有2個(gè)位置為1,表示閱讀過(guò)生物的鄰居用戶(hù)占67%。
(3)12國(guó)富論在矩陣第13列上,3個(gè)位置只有一個(gè)1,表示閱讀過(guò)國(guó)富論的鄰居用戶(hù)占33%。
綜上最終給用戶(hù)U的推薦結(jié)果為:強(qiáng)烈推薦—2英語(yǔ),首要推薦—10生物,次要推薦—12國(guó)富論。
實(shí)驗(yàn)仿真結(jié)果如圖2所示。
3 算法總結(jié)
基于用戶(hù)行為的關(guān)聯(lián)規(guī)則推薦算法是通過(guò)加權(quán)和對(duì)最鄰域運(yùn)算得出的推薦結(jié)果,可以根據(jù)系統(tǒng)要求來(lái)限定推薦條件,從而實(shí)現(xiàn)項(xiàng)目的推薦。從實(shí)驗(yàn)仿真結(jié)果來(lái)看,該算法在一個(gè)中小型系統(tǒng)中應(yīng)用完全沒(méi)有問(wèn)題,而且推薦結(jié)果有效性高。對(duì)一些大型的具有上千萬(wàn)用戶(hù)的商業(yè)網(wǎng)站應(yīng)用,將一個(gè)用戶(hù)和其他所有用戶(hù)進(jìn)行比較,然后再對(duì)每位用戶(hù)行為進(jìn)行比較,會(huì)使系統(tǒng)負(fù)荷非常大,為解決這一問(wèn)題,目前最好的方法是對(duì)相似度進(jìn)行離線計(jì)算[13-14]。在針對(duì)大規(guī)模樣本數(shù)據(jù)集進(jìn)行推薦時(shí),基于項(xiàng)目進(jìn)行過(guò)濾的方式明顯要比基于用戶(hù)行為的過(guò)濾更快,但它有離線計(jì)算、維護(hù)項(xiàng)目相似度列表等系統(tǒng)開(kāi)銷(xiāo)。從推薦的有效性來(lái)看,基于用戶(hù)行為的推薦優(yōu)勢(shì)更明顯。
4 結(jié)語(yǔ)
智能推薦系統(tǒng)是未來(lái)電子商務(wù)和社交網(wǎng)絡(luò)發(fā)展的必然需要[15]。本文介紹和分析了一些主流的推薦算法,比較分析了各自的優(yōu)缺點(diǎn),結(jié)合實(shí)際情況,闡述了推薦技術(shù)應(yīng)用和需要改進(jìn)的問(wèn)題。本文實(shí)現(xiàn)了基于用戶(hù)行為的關(guān)聯(lián)規(guī)則算法的推薦系統(tǒng),將用戶(hù)的隱形購(gòu)買(mǎi)或?yàn)g覽行為應(yīng)用到推薦系統(tǒng)上。
參考文獻(xiàn):
[1] 夏培勇.個(gè)性化推薦中的協(xié)同過(guò)濾算法[D].青島:中國(guó)海洋大學(xué),2011.
[2] 夏小伍.基于信任模型的協(xié)同過(guò)濾推薦算法的研究[D].合肥:中國(guó)科技大學(xué),2011.
[3] 王偉軍,宋梅青.一種面向用戶(hù)偏好定向挖掘的協(xié)同過(guò)濾個(gè)性化推薦算法[J]. 現(xiàn)代圖書(shū)情報(bào)技術(shù),2014(6):25-30.
[4] 張春生,圖雅,翁慧,等.基于電子商務(wù)同類(lèi)商品的推薦算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016(5):17-21.
[5] 陳潔敏,湯庸,李建國(guó),等.個(gè)性化推薦算法研究[J].華南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2014(9):8-13.
[6] 榮輝桂,火生旭,胡春華,等.基于用戶(hù)相似度的協(xié)同過(guò)濾推薦算法[J].通信學(xué)報(bào),2014(2):16-24.
[7] 王冰怡,劉楊,聶長(zhǎng)新,等.基于用戶(hù)興趣三維建模的個(gè)性化推薦算法[J].計(jì)算機(jī)工程,2015(1):65-70.
[8] 曹斌,龔佼蓉,彭宏杰,等.基于用戶(hù)閱讀時(shí)間-頻次行為的書(shū)籍推薦方法[J].計(jì)算機(jī)科學(xué),2015(11):36-54.
[9] 高山,劉煒,崔勇,等.一種融合多種用戶(hù)行為的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)科學(xué),2016(9):227-231.
[10] 杜彥永.基于用戶(hù)行為協(xié)同過(guò)濾推薦算法[D]. 淮南:安徽理工大學(xué),2015.
[11] 胡亞慧,李石君,余偉,等.基于時(shí)空感知的用戶(hù)角色推理[J].電子與信息學(xué)報(bào),2016(3):517-522.
[12] 任帥,王浙明,王明敏.基于用戶(hù)行為模型和蟻群聚類(lèi)的協(xié)同過(guò)濾推薦算法[J].微型電腦應(yīng)用,2014(3):5-8.
[13] 孟祥武,劉樹(shù)棟,張玉潔,等.社會(huì)化推薦系統(tǒng)研究[J].軟件學(xué)報(bào),2015(6):1356-1372.
[14] 趙海燕,侯景德,陳慶奎.結(jié)合時(shí)間權(quán)重與信任關(guān)系的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)應(yīng)用研究,2015(5):3565-3568.
[15] 李鵬澎,肖如良,鄧新國(guó),等.一種融合引力影響的新的矩陣分解推薦方法[J].小型微型計(jì)算機(jī)系統(tǒng),2015(4):696-700.endprint