閆俊輝
(運(yùn)城學(xué)院數(shù)學(xué)與信息技術(shù)學(xué)院,運(yùn)城 044000)
“智慧圖書館”將人與人、物與物、人與物通過(guò)信息技術(shù)緊密結(jié)合在一起[1],在智慧圖書館中,讀者數(shù)據(jù)獲取更便利、更全面、更廣泛,可以更加準(zhǔn)確地刻畫讀者的信息需求,并據(jù)此進(jìn)行精準(zhǔn)推薦。因此,怎樣準(zhǔn)確把握讀者的閱讀及信息需求并向其進(jìn)行智慧型圖書推薦成為需要考慮的關(guān)鍵問(wèn)題。
推薦系統(tǒng)被證明是一種解決信息過(guò)載和長(zhǎng)尾物品問(wèn)題的有效工具,在日常閱讀新聞資訊、網(wǎng)上購(gòu)物時(shí),都能看到各種各樣的推薦。圖書個(gè)性化推薦最早是亞馬遜公司為了提升長(zhǎng)尾圖書的用戶抵達(dá)率而提出的,據(jù)VentureBeat 統(tǒng)計(jì),圖書個(gè)性化推薦為亞馬遜貢獻(xiàn)了35%的銷售額[2]。目前的推薦算法主要包括協(xié)同過(guò)濾推薦算法、基于內(nèi)容的推薦算法、基于用戶-產(chǎn)品二部圖關(guān)系的推薦算法及混合推薦算法。Mooney 等[3]開(kāi)發(fā)了一種圖書推薦系統(tǒng),它利用簡(jiǎn)單的信息提取技術(shù)從Web 收集到物品的半結(jié)構(gòu)化信息,基于給定項(xiàng)目的信息和用戶的配置文件來(lái)向用戶推薦文檔、項(xiàng)目和服務(wù)。多維度研究是從不同的角度以及不同的層次研究問(wèn)題,不再是單向和單一維度思考問(wèn)題,然而在個(gè)性化推薦系統(tǒng)領(lǐng)域中的多維度分析很少。其中,Ma 等[4]在考慮新浪微博的個(gè)性化推薦問(wèn)題時(shí),提出從用戶維度和關(guān)鍵詞語(yǔ)維度來(lái)研究微博推薦系統(tǒng)個(gè)性化以及準(zhǔn)確性的問(wèn)題。其他較少的學(xué)術(shù)論文只是提出多維研究的概念,尚沒(méi)有明確的研究方法。
因此,本文提出了一種新型的基于多維分析和用戶聚類研究的個(gè)性化圖書推薦算法。一方面,通過(guò)用戶在智慧圖書館借閱圖書的數(shù)據(jù)構(gòu)建起“用戶-圖書商品”二維矩陣,從用戶維度考慮,以每本圖書作為用戶的屬性,計(jì)算用戶相似性更新“用戶-圖書商品”矩陣。同樣,從商品的維度考慮,分析每個(gè)商品的介紹等內(nèi)容,計(jì)算商品之間的相似度,將其作為權(quán)重再次更新“用戶-圖書商品”矩陣。另一方面,利用第一部分得到矩陣計(jì)算用戶之間相似性,實(shí)現(xiàn)用戶聚類。然后在目標(biāo)用戶類別內(nèi),研究目標(biāo)用戶與其他用戶之間關(guān)系和選購(gòu)商品上的差異,實(shí)現(xiàn)top-N商品推薦。圖1 概述了本文所提出的圖書商品推薦系統(tǒng)的結(jié)構(gòu)和內(nèi)容。
圖1 個(gè)性化圖書推薦系統(tǒng)框架
本文研究的內(nèi)容都是文本詞語(yǔ)空間向量,由于余弦相似性對(duì)于詞語(yǔ)空間向量以及稀疏向量的研究有較好的適用性,因此本文使用余弦相似性方法計(jì)算對(duì)象之間的相關(guān)系數(shù)。
本文使用K 均值作為用戶聚類算法。K 均值聚類算法是基于距離的典型聚類方法,其主要的思想是利用距離的概念判定節(jié)點(diǎn)之間的相似度,距離越大,相似度越?。?]。
在n維歐氏空間中,每個(gè)點(diǎn)都是高維度數(shù)據(jù),其中兩個(gè)點(diǎn)A={A1,A2,A3,…,An},B={B1,B2,B3,…,Bn}之間的距離ρ(A,B)可以由下式計(jì)算得出:
再根據(jù)歐幾里得距離計(jì)算K 均值算法中用戶之間相似度:
針對(duì)智慧圖書館的圖書商品,本文提出了基于多維度關(guān)系和用戶聚類的個(gè)性化推薦算法。爬取用戶借閱過(guò)的圖書商品的數(shù)據(jù)、智慧圖書館館藏中圖書商品的信息以及外部百科網(wǎng)站關(guān)于圖書商品的介紹。引入用戶相關(guān)與商品相關(guān)的因素到個(gè)性化推薦中,隨后通過(guò)K均值聚類實(shí)現(xiàn)用戶聚類,研究類內(nèi)目標(biāo)用戶的圖書個(gè)性化推薦。以下展示了本文的圖書個(gè)性化推薦模型。
輸入:用戶和借閱過(guò)的圖書商品數(shù)據(jù)以及圖書商品的介紹信息
輸出:針對(duì)目標(biāo)用戶的個(gè)性化推薦列表(top-N)
Step 1:數(shù)據(jù)預(yù)處理后構(gòu)建用戶-圖書商品矩陣Mcb
Step 2:依據(jù)原始用戶-商品矩陣Mcb計(jì)算用戶之間的相關(guān)系數(shù),獲得用戶相似方陣Mc×c,firstMcb=Mc×c×Mcb,即考慮用戶維度信息,第一次更新用戶-圖書商品矩陣,將firstMcb矩陣標(biāo)準(zhǔn)化,得到M′cb
Step 3:根據(jù)百度百科和維基百科等資料網(wǎng)站得出圖書商品的介紹信息,分詞后構(gòu)建圖書-關(guān)鍵詞矩陣,在此基礎(chǔ)上計(jì)算圖書商品之間的相似性,得到圖書相關(guān)性方陣Mb×b,secondMcb=M′c×b×Mb×b,即考慮圖書維度信息,再次更新用戶-商品矩陣,將secondMcb矩陣標(biāo)準(zhǔn)化,得到
Step 5:每個(gè)類別內(nèi)的用戶聯(lián)系緊密,親密度更高。選取目標(biāo)研究對(duì)象,研究類中其他用戶購(gòu)買過(guò),而該目標(biāo)用戶沒(méi)有買過(guò)的圖書,圖書集合為B
Step 6:根據(jù)其他用戶借閱的信息,將圖書集合B中的所有圖書進(jìn)行打分,依照評(píng)分前N位生成top-N推薦列表,將該列表作為個(gè)性化推薦結(jié)果推送給目標(biāo)用戶
該個(gè)性化推薦算法的創(chuàng)新點(diǎn)在于,將用戶相關(guān)性和圖書商品相關(guān)性考慮進(jìn)“用戶-圖書商品”矩陣,以用戶借閱圖書商品的信息計(jì)算用戶相關(guān)性,以圖書的外部資料測(cè)算圖書商品相似性,實(shí)現(xiàn)兩步更新“用戶-圖書商品”矩陣。在此矩陣基礎(chǔ)上,完成用戶K 均值聚類,在每個(gè)類別內(nèi),用戶之間相關(guān)性較高,根據(jù)圖書商品的推薦得分,將目標(biāo)用戶沒(méi)有借閱過(guò),而類別內(nèi)其他用戶借閱過(guò)的商品形成top-N商品推薦,這種方式既考慮了推薦的準(zhǔn)確性,也考慮了推薦的新穎性。
本文選取了某圖書館的165條用戶數(shù)據(jù)、借閱的35 條圖書商品的數(shù)據(jù)以及外部百科網(wǎng)站的35 條圖書商品介紹數(shù)據(jù),從多維度和用戶聚類來(lái)改善個(gè)性化推薦的研究。
根據(jù)獲取到的用戶數(shù)據(jù)和其借閱過(guò)商品的數(shù)據(jù),構(gòu)建165×35的初始“用戶-圖書商品”二維矩陣M165×35,其中Ci(i= 1,2,…,165)代表用戶編號(hào),Bj(j= 1,2,…,35)代表圖書商品編號(hào),矩陣?yán)锩娴臄?shù)值0代表沒(méi)有買過(guò),1代表買過(guò)。
根據(jù)圖2所示的數(shù)據(jù),以圖書商品作為用戶的屬性,構(gòu)建165條用戶向量,使用余弦相似計(jì)算用戶之間的相似度,構(gòu)建165×165 的用戶相似矩陣M165×165。 利用矩陣相乘M165×165×M165×35= firstM165×35,將新的矩陣標(biāo)準(zhǔn)化,得到基于用戶關(guān)系更新后的“用戶-圖書商品”矩陣M′165×35,如圖3所示。
圖2 初始“用戶-圖書商品”二維矩陣
圖3 更新后的“用戶-圖書商品”矩陣
更新后的矩陣考慮了用戶相關(guān)關(guān)系和圖書商品相關(guān)關(guān)系,更加全面地體現(xiàn)了用戶與圖書商品之間的聯(lián)系。根據(jù)更新后的矩陣的數(shù)據(jù),將圖書商品作為用戶的屬性特征,實(shí)現(xiàn)K 均值用戶聚類。聚類結(jié)果如圖4所示。
圖4 K均值聚類結(jié)果示意圖
同一類別中用戶關(guān)聯(lián)性較強(qiáng),不同類別內(nèi)用戶關(guān)聯(lián)性較弱。本文取圖4 中方框內(nèi)的節(jié)點(diǎn)為代表類別進(jìn)行研究,以C16 為目標(biāo)研究對(duì)象。由聚類結(jié)果可知,與C16 在同一類別中的用戶還有C104、C144、C4、C119、C27、C84、C102、C72、C24、C14、C94、C8、C97 以及C88。在C16所在的類別中,除去C16已經(jīng)購(gòu)買過(guò)的圖書商品,考慮類內(nèi)其他用戶借閱的商品推薦得分。以更新后的“用戶-圖書商品”矩陣為基礎(chǔ),將矩陣中的系數(shù)作為權(quán)重加到原始“用戶-圖書商品”矩陣中,通過(guò)對(duì)應(yīng)相乘和商品列數(shù)值相加的方式計(jì)算出商品的總得分。從前一步全部圖書商品數(shù)據(jù)中提取出C16 所在類的圖書商品數(shù)據(jù),得出類內(nèi)其他用戶借閱(C16 沒(méi)有購(gòu)買)的圖書商品的得分。前5 個(gè)得分最高的圖書商品作為top-5 圖書推薦給用戶C16,即針對(duì)目標(biāo)用戶完成圖書商品的個(gè)性化推薦。top-5 的推薦圖書商品列表及其得分見(jiàn)表1。
表1 推薦商品得分
準(zhǔn)確度經(jīng)常用來(lái)評(píng)價(jià)推薦系統(tǒng)中推薦算法的效果,本文使用準(zhǔn)確度指標(biāo)中準(zhǔn)確率和召回率的加權(quán)平均F1指標(biāo)來(lái)評(píng)估本文的推薦算法。
通過(guò)設(shè)置推薦商品數(shù)N的不同,得到推薦系統(tǒng)在一系列推薦實(shí)踐下的評(píng)價(jià)指標(biāo)準(zhǔn)確率、召回率以及F1 的值。以此來(lái)驗(yàn)證推薦系統(tǒng)的穩(wěn)定性與持久性,排除偶然的因素。圖5 顯示的是不同推薦算法下F1值的變化。
圖5 不同推薦系統(tǒng)的評(píng)價(jià)指標(biāo)F1值比較
由圖5 可以看出,隨著推薦商品個(gè)數(shù)的增加,本文的推薦算法評(píng)價(jià)指標(biāo)F1 值在0.4~0.7之間波動(dòng),呈上升趨勢(shì)。同時(shí),與基于原始矩陣推薦商品的方法比起來(lái),本文的推薦算法F1值較大,說(shuō)明本文算法更優(yōu),推薦效果更好。
為提高圖書推薦算法的準(zhǔn)確性,解決推薦系統(tǒng)中冷啟動(dòng)的問(wèn)題,本文從多維度加權(quán)和用戶聚類兩種方法實(shí)現(xiàn)圖書商品個(gè)性化推薦。充分考慮用戶之間的相關(guān)關(guān)系和圖書商品之間的相關(guān)關(guān)系,將兩者以數(shù)據(jù)加權(quán)的形式填補(bǔ)到“用戶-圖書商品”矩陣中,不斷更新原始二維矩陣,使之更加合理準(zhǔn)確。通過(guò)K 均值聚類的方式給類別內(nèi)目標(biāo)用戶推薦得分最高的top-5 圖書商品,本文的推薦算法獲得較好的評(píng)價(jià)指標(biāo)F1值。
優(yōu)質(zhì)的個(gè)性化推薦,能夠精準(zhǔn)地為用戶提供其感興趣的圖書商品,不但提高用戶的閱讀體驗(yàn),而且增強(qiáng)閱讀者對(duì)于智慧圖書館的粘性。未來(lái)的研究可以使用外部信息對(duì)用戶維度的數(shù)據(jù)再次進(jìn)行優(yōu)化,豐富“用戶-圖書商品”二維矩陣數(shù)據(jù),進(jìn)一步提高推薦系統(tǒng)的準(zhǔn)確性。