張永會
(中國戲曲學(xué)院 圖書館,北京 100373)
隨著智能手機(jī)的飛速發(fā)展,人們在溝通方式上更加依賴實(shí)時通信,微信在這樣的時代背景下應(yīng)運(yùn)而生,微信不僅能夠滿足人們對信息交換實(shí)時性的要求,還提供視頻、群聊等各種功能供用戶建立社交關(guān)系[1]。微信自2011年推出以來,迅速在傳播領(lǐng)域占據(jù)領(lǐng)先地位。《2021年微信數(shù)據(jù)報告》顯示,平均每天微信活躍用戶超過8億人,與此同時,微信的月活躍用戶也呈逐月上漲趨勢。可見,微信的使用已成為大家不可分割的一部分[2]。如何利用微信公眾平臺功能結(jié)合推薦算法進(jìn)行讀者喜好圖書推薦,對服務(wù)宣傳進(jìn)行拓展以及增強(qiáng)圖書館業(yè)務(wù)服務(wù)效果已經(jīng)成為圖書館急需解決的問題。
秦健[3]研究了高校圖書館智能推薦系統(tǒng),提出了基于信息可視化與數(shù)據(jù)挖掘圖書推薦系統(tǒng)的算法;林郎碟[4]采用“分割-整合”方法改進(jìn)了Apriori算法;李偉[5]提出了基于數(shù)據(jù)分塊方法的關(guān)聯(lián)規(guī)則改進(jìn)算法;劉雨聲[6]研究了基于用戶的協(xié)同過濾算法,提出評分矩陣填充算法,結(jié)合協(xié)同過濾算法進(jìn)行有效推薦,從而有效提升了該類算法的推薦準(zhǔn)確率。
本論述提出了一種改進(jìn)的Pure CF-SVD算法的圖書館微信平臺推薦系統(tǒng),該系統(tǒng)能夠照顧到不同目標(biāo)用戶的喜好,并為其推薦適合于各自喜好的電子資源,將算法系統(tǒng)和協(xié)同過濾算法的推薦系統(tǒng)進(jìn)行對比實(shí)驗(yàn),發(fā)現(xiàn)該方法在推薦信息的準(zhǔn)確率和推薦覆蓋率上均表現(xiàn)良好,為圖書館更好服務(wù)于讀者群眾提供了參考思路[7]。
由于教育信息化建設(shè)正在如火如荼的展開,圖書的個性化推薦服務(wù)也將會是高校圖書館館藏走向大眾視野的重要手段,主要是為了提高館藏圖書資源的利用率[8-10]。那么在圖書館圖書推送系統(tǒng)的相關(guān)研究中,基于個性化推薦的服務(wù)逐漸受到了諸多重視與推崇,不同國家的學(xué)者也陸續(xù)提出了各種算法推送模型,為圖書館用戶提供智能圖書推薦服務(wù)[11-12]。目前圖書館的圖書推薦算法主要分為以下3種。
(1)以協(xié)同過濾算法為代表的基于模型的推薦算法,在1992年被首次提出,該算法將每個項(xiàng)目中不同用戶的具體得分代入用戶相似度公式進(jìn)行計算,為目標(biāo)用戶找到最接近的興趣點(diǎn)[13],然后進(jìn)行推薦。該類算法的優(yōu)點(diǎn)是可以高效地處理非結(jié)構(gòu)化對象,缺點(diǎn)是存在數(shù)據(jù)稀疏問題[14]。
(2)以TF?IDF算法為代表的基于內(nèi)容的推薦算法,該方法通過詞頻統(tǒng)計提取特征,建立興趣模型。廣泛使用的算法主要有神經(jīng)網(wǎng)絡(luò)算法、決策樹算法和基于向量的表示法[15],該類算法的優(yōu)點(diǎn)是用戶的歷史行為數(shù)據(jù)和用戶的興趣模型會同步更新,所以推薦的結(jié)果可解釋性就很強(qiáng),唯一的缺點(diǎn)是特征提取較為困難[16]。
(3)以Apriori算法為代表的關(guān)聯(lián)規(guī)則的推薦算法,由Agrawal等人于1993年首先提出,主要體現(xiàn)事物之間的相關(guān)性[17],基本原理是從海量數(shù)據(jù)中找到不同項(xiàng)目之間的內(nèi)在聯(lián)系,即通過算法挖掘關(guān)聯(lián)規(guī)則[18],該類推薦算法的優(yōu)點(diǎn)主要是無需具有領(lǐng)域的知識以及較為容易發(fā)現(xiàn)項(xiàng)目間的關(guān)聯(lián),該算法的缺點(diǎn)是容易產(chǎn)生無效規(guī)則、靈活性差[19]。
Pure CF算法匯總的是所有
作為最流行的推薦算法之一,Pure CF推薦算法在信息推薦服務(wù)中得到了廣泛應(yīng)用,Pure CF算法的架構(gòu)主要分為3個階段。
(1)項(xiàng)表示:為每個元素提取特征屬性,即描述結(jié)構(gòu)化元素,該操作對應(yīng)的處理稱為內(nèi)容分析;
(2)概要的文件學(xué)習(xí):利用任意用戶過去喜好的項(xiàng)特征數(shù)據(jù),從而算法將學(xué)習(xí)該用戶的喜好特征;
(3)推薦產(chǎn)生:通過比較第二步中獲得的用戶喜好特征,為該類用戶推薦其一系列相關(guān)性最大的項(xiàng)即可。
文檔表示常采用向量空間模型,這是向量模型的基 本 概 念。如 果 要 將 文 檔[21]表 示 為 向 量(W1,W2,W3,...,Wn),在權(quán)重Wi的計算公式如下:
用戶的興趣模型包含任意m個詞的興趣模型用向量P(t1,t2,...,tm),以用戶u和d的相似度計算方法如下:
其中,代表用戶u感興趣的模型向量,代表文檔d向量,和是兩個向量的模,·表示標(biāo)量積算法推薦的信息來自與用戶感興趣的模型相似度高的書籍[22],采用了文檔表示和向量空間模型相似度的計算可以更好的將用戶喜好的信息傳給模型,從而進(jìn)行推薦。
聯(lián)合算法中的SVD算法為Basic SVD,算法流程如下。
第一步,可以求得SSE在puk變量處的梯度大?。?/p>
其中,puk為讀者借閱數(shù)據(jù)。利用求導(dǎo)鏈?zhǔn)椒▌t,e2先對e求導(dǎo)再乘以e對puk的求導(dǎo):
由于
其中,eui為圖書喜好相似度,rui為圖書相似度數(shù)據(jù),qki為相似度系數(shù),所以
如果將式6中括號內(nèi)的表達(dá)式展開,與puk相關(guān)的元素只有puk和qki,其他與puk無關(guān)的元素推導(dǎo)等于0,所以推導(dǎo)結(jié)果為:
所以
為了讓式8更簡潔,令
得到:
則puk的更新式為
同樣的方式可得到qki的更新式為
得到了更新式,現(xiàn)在開始來討論這個更新要怎么進(jìn)行。以下為解決方案:
計算所有已知分?jǐn)?shù)的預(yù)測誤差后,更新p和q。每計算完一個eui后立即對puk和qki進(jìn)行更新。兩者的區(qū)別在于批量梯度下降在下一次換代中只能運(yùn)用這次換代的更新值,而當(dāng)前樣本在本次隨機(jī)梯度下降迭代中使用的值可以是前一次樣本的更新值。
有助于避免局部最優(yōu)解這是隨機(jī)性帶來的好處,所以對于更新大多都傾向于使用隨機(jī)梯度下降,結(jié)合使用以上兩種算法后,可以將用戶喜好的興趣模型結(jié)合書籍相似度進(jìn)行結(jié)合,同時由于SVD算法梯度下降特性,可有效避免局部最優(yōu)解,故可較好的進(jìn)行讀者喜好書目信息推薦任務(wù),以下是Pure CF-SVD算法的流程圖,如圖1所示。
圖1 Pure CF-SVD算法的流程圖
圖書館智能推薦系統(tǒng)的核心模塊是Hadop技術(shù)堆棧,同時MapReduce提供了數(shù)據(jù)結(jié)構(gòu)投影機(jī)制,且將會對大數(shù)據(jù)進(jìn)行查詢。把已有的數(shù)據(jù)集加載到HCatalog中,然后通過基于內(nèi)容推薦的推薦算法,根據(jù)用戶的喜好把數(shù)據(jù)分別發(fā)送、傳輸?shù)紿Base模塊,進(jìn)行圖書推薦下載、分析,Hadoop技術(shù)棧的基本路徑如圖2所示。
圖2 Hadoop技術(shù)棧的基本路徑
步驟1:利用系統(tǒng)查尋書名與指定日期范圍內(nèi)借閱該書名最多的用戶ID,并顯示在微信公眾號平臺;
步驟2:將采用Ambari模塊進(jìn)行配置Hadoop服務(wù),同時執(zhí)行系統(tǒng)中監(jiān)控與管理模塊,從而協(xié)調(diào)以及監(jiān)控獨(dú)立的Hadoop作業(yè);
步驟3:采用系統(tǒng)內(nèi)外不同平臺(OPAC系統(tǒng)、教務(wù)管理系統(tǒng)等)的信息,將讀者ID鏈接至個人網(wǎng)絡(luò)郵件;
步驟4:根據(jù)系統(tǒng)中我的圖書館功能,能夠利用帳號下載電子書資源,任意讀者能夠在當(dāng)前學(xué)年下載3到10冊電子書資源;
步驟5:結(jié)合讀者在訪問圖書館購買推薦系統(tǒng)時記錄的相關(guān)信息,包括查詢、借閱、下載等,系統(tǒng)將分析生成讀者的個人屬性和個性化偏好,然后系統(tǒng)會根據(jù)分析信息對比相關(guān)書籍的相似度,最后根據(jù)相似度來推薦書籍;讀者可以根據(jù)系統(tǒng)推薦的喜歡的內(nèi)容,在微信端下載電子資源[23]。
圖書館推薦系統(tǒng)主要由圖書館用戶數(shù)據(jù)、內(nèi)容推薦算法、智能推送系統(tǒng)以及微信推送界面組成,同時結(jié)合館藏信息資源庫進(jìn)行信息整合加工,從而完成推薦。該系統(tǒng)工作原理如圖3所示,圖中四類功能形成了一個閉環(huán),功能之間相互調(diào)用,內(nèi)容推薦算法根據(jù)用戶瀏覽或者下載的內(nèi)容進(jìn)行內(nèi)容推薦[24]。
圖3 微信端圖書館圖書推薦系統(tǒng)結(jié)構(gòu)
本論述通過作者所在地級市的某圖書館部門后臺端選取了2019年10月到2021年10月兩年間,共1 500名微信端讀者的數(shù)據(jù)作為模型訓(xùn)練數(shù)據(jù)集,數(shù)據(jù)包括ISBN、書作者、書名、出版商、借閱時間、查看時間和用戶專業(yè)等信息。按照8:2將其劃分為訓(xùn)練集和測試集,整體數(shù)據(jù)集的前3列見表1所列。
表1 讀者數(shù)據(jù)
其中讀者借閱數(shù)據(jù)不同學(xué)科的占比如圖4所示。
圖4 讀者借閱數(shù)據(jù)的各學(xué)科占比
從圖4中可以看出,這所學(xué)校的學(xué)生借閱文學(xué)類書籍最多,其次是工程類書籍,旅游類占比最低,其余學(xué)科占比均相當(dāng),可見學(xué)生對文學(xué)類的書籍興趣較大,工程類的書籍由于專業(yè)性較強(qiáng),工科類的學(xué)生對此較為喜愛[25]。同一個讀者數(shù)據(jù)集下,將本論述算法和協(xié)同過濾算法分別封裝在IOS的微信端進(jìn)行對比實(shí)驗(yàn),主要探究二者的推薦準(zhǔn)確率,信息覆蓋率以及均方誤差(Mean squared error),該3類指標(biāo)是內(nèi)容推薦領(lǐng)域的主流指標(biāo),可以量化的解釋推薦的圖書內(nèi)容和讀者喜好的具體關(guān)系,該3類指標(biāo)包含了圖書信息、用戶推薦的信息、算法預(yù)測的推薦信息等,以上信息和算法訓(xùn)練過程結(jié)合密切,具有較好的解釋性,推薦準(zhǔn)確率的公式如式13。
其中,S為用戶喜好的圖書集合,S為算法推薦的圖書集合,二者結(jié)合構(gòu)成準(zhǔn)確率,其中算法的信息覆蓋率如式14。
其中,covi為單個手機(jī)終端為用戶推薦的全部信息,為算法在單個手機(jī)終端為用戶推薦的信息,n為用戶數(shù),同時引入了均方誤差,采用該指標(biāo)聯(lián)合ACC共同確定推薦準(zhǔn)確率。均方誤差的表達(dá)式如式15。
其中,M為用戶數(shù),ym為讀者真實(shí)需要的圖書信息,ym為算法推送的預(yù)測出的用戶感興趣的圖書信息,其對比試驗(yàn)結(jié)果見表2所列。
表2 對比試驗(yàn)結(jié)果
從對比試驗(yàn)的結(jié)果可知,本論述所提出的算法的準(zhǔn)確率相比于協(xié)同過濾算法高8%,由于算法本身是基于項(xiàng)表示的,可以更好的覆蓋輸入信息,其信息覆蓋率方面較協(xié)同過濾算法高了9%,均方誤差方面本論述的算法較協(xié)同過濾算法低6%,其推送誤差更小,Pure CFSVD更加適用于大體量數(shù)據(jù)情況下圖書館讀者圖書推薦的情況,由于硬件環(huán)境相同,故二者的運(yùn)算速度并無太大差別[26]。
(1)本論述主要研究了目前圖書館圖書推薦系統(tǒng)的具體情況,綜述了當(dāng)前圖書館主流圖書推薦系統(tǒng)及相關(guān)算法的改進(jìn),為圖書館的智能推薦系統(tǒng)提供了算法思路。
(2)根據(jù)基于內(nèi)容推薦算法工作原理,結(jié)合了讀者數(shù)據(jù)設(shè)計了其算法流程架構(gòu),以及設(shè)計了基于微信端圖書館推薦算法系統(tǒng)架構(gòu),具體實(shí)現(xiàn)技術(shù)路線,最后介紹了其功能組成。
(3)在同一個數(shù)據(jù)集下,將Pure CF-SVD推薦算法和內(nèi)容推薦算法進(jìn)行對比試驗(yàn),對比了其推薦準(zhǔn)確率、推薦信息覆蓋率和運(yùn)算速度等指標(biāo),比較協(xié)同過濾算法,其內(nèi)容的推薦準(zhǔn)確率高了5%,信息覆蓋率高了10%,故能夠在數(shù)據(jù)體量較大的圖書館微信推薦系統(tǒng)中得以更好地應(yīng)用。