王紅霞,鐘愛(ài)琳
(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159)
計(jì)算機(jī)行業(yè)的迅速發(fā)展使得互聯(lián)網(wǎng)滲透到了生活中的方方面面,是人們獲取信息最有效的途徑,但海量的網(wǎng)絡(luò)信息在給予方便與快捷的同時(shí)也使大眾進(jìn)入了信息碎片化的時(shí)代,冗余的信息往往會(huì)降低用戶的體驗(yàn)感。面對(duì)如此現(xiàn)狀,用戶如何能從中閱讀到真正滿足其需求的信息是迫待解決的關(guān)鍵問(wèn)題。
協(xié)同過(guò)濾推送算法是最為常用的信息推送算法之一。通過(guò)用戶的行為特征構(gòu)建用戶興趣模型,根據(jù)協(xié)同過(guò)濾推送算法找到用戶的興趣愛(ài)好。協(xié)同過(guò)濾推送算法分為基于用戶的協(xié)同過(guò)濾推送算法[1]和基于項(xiàng)目的協(xié)同過(guò)濾推送算法。前者通過(guò)計(jì)算用戶間的相似度,找到與目標(biāo)用戶相似度較高的其他用戶所喜愛(ài)的項(xiàng)目進(jìn)行推送。而基于項(xiàng)目的協(xié)同過(guò)濾推送算法[2],關(guān)注點(diǎn)則是項(xiàng)目之間的相似度,首先找到用戶評(píng)分歷史中評(píng)分較高的項(xiàng)目,然后通過(guò)計(jì)算項(xiàng)目之間的相似度,把相似度較高的其他項(xiàng)目作為待推送結(jié)果。
盡管協(xié)同過(guò)濾推送算法有較高的使用率,但不得不承認(rèn)該算法依然存在弊端。在實(shí)際生活中往往用戶評(píng)分這一項(xiàng)會(huì)有大量空缺,導(dǎo)致用戶項(xiàng)目評(píng)分矩陣稀疏,另外也因?yàn)樾律唐返睦鋯?dòng)導(dǎo)致推送結(jié)果的覆蓋范圍不夠廣泛。因此,針對(duì)這種推送方法的弊端,本文提出了基于本體的協(xié)同過(guò)濾信息推送算法,在推薦過(guò)程中引入本體,通過(guò)本體的概念層次結(jié)構(gòu)關(guān)系和概念之間的關(guān)系與用戶興趣詞之間產(chǎn)生關(guān)聯(lián),進(jìn)而對(duì)用戶的興趣詞進(jìn)行詞義擴(kuò)展,使推薦內(nèi)容更為精確豐富。
本文以圖書(shū)閱讀網(wǎng)站的個(gè)性化推送作為研究背景。用戶興趣模型是對(duì)用戶愛(ài)好的準(zhǔn)確描述,是服務(wù)推送過(guò)程中的重要一環(huán)。而書(shū)籍建模是用戶興趣建模的基礎(chǔ),二者缺一不可。
書(shū)籍建模采取基于向量空間[3]的模型表示方法。
Project={(project1,style1,author1,pub1),…,(projectm,stylem,authorm,pubm)}
式中:project為書(shū)籍編號(hào);style為書(shū)籍類(lèi)別;author為書(shū)籍作者;pub為書(shū)籍出版社。
用戶興趣模型的建立采取改進(jìn)的向量空間模型表示方式,因?yàn)橛脩舻呐d趣不是一成不變的,在不同的時(shí)間段用戶的興趣可能不同,因此在基本的向量空間模型中加入時(shí)間元素,表現(xiàn)形式如下。
User={(userID1,action1,score1,time1),…,(userIDn,actionn,scoren,timen)}
式中:userID為用戶ID;action為行為類(lèi)型,分為瀏覽、搜索、收藏,對(duì)應(yīng)數(shù)值設(shè)為1、2、3來(lái)表示其感興趣的程度;score為用戶對(duì)書(shū)籍的評(píng)分;time為以t為單位時(shí)間,表示用戶的感興趣程度,若用戶的操作行為發(fā)生在過(guò)去的t時(shí)間段內(nèi),設(shè)time為5;若用戶的操作行為發(fā)生在過(guò)去的t~2t時(shí)間段內(nèi),設(shè)time為4;若用戶的操作行為發(fā)生在過(guò)去的2t~3t時(shí)間段內(nèi),設(shè)time為3;若用戶的操作行為發(fā)生在過(guò)去的3t~4t時(shí)間段內(nèi),設(shè)time為2;若用戶的操作行為發(fā)生在過(guò)去的4t~5t時(shí)間段內(nèi),設(shè)time為1。
本體[4]是概念模型形式化的規(guī)范說(shuō)明,具有概念性、明確性、形式性和共享性。
(1)書(shū)籍領(lǐng)域本體的構(gòu)建
初步?jīng)Q定使用protege4.3,按照中圖分類(lèi)法[5]構(gòu)建部分書(shū)籍領(lǐng)域本體。對(duì)于部分書(shū)籍領(lǐng)域?qū)嶓w可分為出版商、作者、類(lèi)別,詳細(xì)分類(lèi)如下。
部分書(shū)籍領(lǐng)域整體本體圖如圖1所示
圖1 部分書(shū)籍領(lǐng)域本體圖
圖中:BookAreas為部分書(shū)籍領(lǐng)域本體類(lèi);Book表示書(shū)籍種類(lèi);Publication表示書(shū)籍出版商;Author表示書(shū)籍作者;Thing表示事物。
(1)采用改進(jìn)的基于向量的空間模型表示方法構(gòu)建用戶的興趣模型。
(2)根據(jù)公式(1),計(jì)算用戶之間的相似度。
sim(Useri,Userj)=cos(Useri,Userj)=
(1)
式中:Useri、Userj為用戶i、j的興趣模型向量。
(3)最近鄰居集的構(gòu)建:將相似度最高的前r個(gè)用戶篩選出來(lái),組成用戶的最近鄰居集Ue(U1,U2…Ur)。
(4)選取鄰居集中用戶的所有歷史項(xiàng)目作為待推送商品集。
(5)預(yù)測(cè)項(xiàng)目評(píng)分:計(jì)算待推送集合中書(shū)籍的評(píng)分,不同用戶對(duì)目標(biāo)用戶的影響不同,因而選取鄰居用戶的加權(quán)評(píng)分值作為權(quán)重因子[6],計(jì)算公式(2)如下,S(a,i)表示用戶a對(duì)書(shū)籍i的評(píng)分。
(2)
根據(jù)評(píng)分預(yù)測(cè)選取評(píng)分最高的前j個(gè)書(shū)籍構(gòu)建興趣書(shū)籍集G1(g1,g2…gj);
(6)根據(jù)建立的商品模型提取興趣書(shū)籍集中商品所包含的特征詞。
(1)根據(jù)建立的用戶興趣模型,選取書(shū)籍用戶在3t時(shí)間內(nèi)評(píng)分書(shū)籍最高的前k個(gè)書(shū)籍。
(2)通過(guò)公式(3)計(jì)算書(shū)籍之間的相似度,得到k個(gè)書(shū)籍的商品鄰居集P。
(3)
式中:Projecti、Projectj表示書(shū)籍i、j的模型向量。
(3)據(jù)公式(4)計(jì)算鄰居集P中各個(gè)項(xiàng)目的預(yù)測(cè)評(píng)分
(4)
(4)根據(jù)評(píng)分預(yù)測(cè)選取評(píng)分最高的前k個(gè)書(shū)籍構(gòu)建興趣書(shū)籍集G2(g1,g2…gk)。
(5)將特征詞映射到本體模型中,通過(guò)搜索找到特征詞在本體中的位置,若本體中沒(méi)有該特征詞,則將該特征詞添加到本體中,然后搜索該特征詞同一父類(lèi)下的特征詞,以及相鄰父類(lèi)下的特征詞,通過(guò)特征詞找到與之對(duì)應(yīng)的書(shū)籍。構(gòu)成書(shū)籍集G′2(g1,g2…gk)。
(6)將G′2做為待推送書(shū)籍集。
圖2所示為本體與協(xié)同過(guò)濾信息推送算法結(jié)合的具體流程圖。
圖2 算法流程圖
(1)下載BookCrossingDataset數(shù)據(jù)集[7]。
(2)采用空間向量模型的方法構(gòu)建商品模型,在空間向量模型方法之上有所改進(jìn),加入time因素,構(gòu)建用戶興趣模型。
(3)將本體結(jié)合到協(xié)同過(guò)濾推送算法中。
(4)選取絕對(duì)平均誤差和覆蓋率作為評(píng)價(jià)指標(biāo),驗(yàn)證融入本體后的協(xié)同過(guò)濾算法的有效性。
本課題需要的數(shù)據(jù)選自BookCrossingDataset數(shù)據(jù)集,該數(shù)據(jù)集包含三張表:用戶信息表、書(shū)籍信息表、用戶對(duì)書(shū)籍的評(píng)價(jià)。
表1 數(shù)據(jù)集基本信息
(1)原始的書(shū)籍?dāng)?shù)據(jù)表中imageURL屬性并不需要,可以將其刪除。
(2)原始的出版時(shí)間數(shù)據(jù),其中有一些錯(cuò)誤條目(如出版商的名字被錯(cuò)誤地加載為出版日期),將對(duì)這些錯(cuò)誤進(jìn)行更正。
修改后的結(jié)果如圖3、圖4所示。
圖3 刪除imageURL后的書(shū)籍?dāng)?shù)據(jù)
圖4 更正后的出版時(shí)間數(shù)據(jù)
本課題選取絕對(duì)平均誤差(Mean Absolute Error,MAE)[8]和覆蓋率(F)作為評(píng)估指標(biāo)來(lái)驗(yàn)證算法的準(zhǔn)確性。
(1)MAE值度量預(yù)測(cè)打分與實(shí)際打分的絕對(duì)平均誤差。
(5)
式中:pi表示信息推送系統(tǒng)對(duì)書(shū)籍i的預(yù)測(cè)打分;ri表示用戶對(duì)書(shū)籍i的實(shí)際評(píng)分;N為測(cè)試集中書(shū)籍個(gè)數(shù)。
表2為傳統(tǒng)的協(xié)同過(guò)濾推送算法與結(jié)合本體后推送算法的MAE值比較,100-100表示100個(gè)用戶對(duì)一百本書(shū)評(píng)價(jià),以此類(lèi)推。
表2 與本體結(jié)合的協(xié)同過(guò)濾推送算法的MAE值
由表2的MAE值可得出如下結(jié)論:用戶協(xié)同過(guò)濾推送算法的效率要高于書(shū)籍協(xié)同過(guò)濾推送算法;與本體結(jié)合后的推送算法比傳統(tǒng)的協(xié)同過(guò)濾推送算法準(zhǔn)確性更高。
(2)根據(jù)精確度(Precision)、召回率(Recall)、和覆蓋率(F)[9]來(lái)進(jìn)行驗(yàn)證。覆蓋率的高低能反映出推送系統(tǒng)推送信息的豐富性,覆蓋率越高推送的內(nèi)容覆蓋范圍就越廣。
(6)
(7)
(8)
式中:PreSet為預(yù)測(cè)的待推送的項(xiàng)目集合;RefSet為真實(shí)的用戶購(gòu)買(mǎi)的項(xiàng)目集合;F為最終的評(píng)價(jià)標(biāo)準(zhǔn)。
表3為幾種推送算法的精確度、召回率和覆蓋率的結(jié)果比較。
由表3可看出,與本體結(jié)合后的協(xié)同過(guò)濾推送算法覆蓋率更高,說(shuō)明本文提出的基于本體的協(xié)同過(guò)濾信息推送算法準(zhǔn)確性更高,推送內(nèi)容也更為豐富。
表3 不同算法的精確度、召回率、覆蓋率的比較 %
提出基于本體的協(xié)同過(guò)濾信息推送算法,采取經(jīng)典的絕對(duì)平均誤差及覆蓋率作為評(píng)價(jià)指標(biāo),經(jīng)實(shí)驗(yàn)結(jié)果表明,與本體結(jié)合的協(xié)同過(guò)濾推送算法較為有效的解決了傳統(tǒng)協(xié)同過(guò)濾推送算法存在的用戶興趣矩陣稀疏問(wèn)題及新商品的冷啟動(dòng)問(wèn)題。