黃沁芳
(集美大學(xué)誠毅學(xué)院 福建省廈門市 361021)
當(dāng)前隨著互聯(lián)網(wǎng)信息技術(shù)的快速發(fā)展,各大高校紛紛建立智慧圖書館來實(shí)現(xiàn)圖書的信息化管理。為了滿足高校學(xué)生對于圖書館服務(wù)的個(gè)性化需求,圖書推薦算法也在日益改進(jìn)和創(chuàng)新。推薦系統(tǒng)被認(rèn)為是一種非常有效的信息過濾工具,通過分析用戶的歷史行為數(shù)據(jù),為用戶推薦個(gè)性化的內(nèi)容[1]。協(xié)同過濾是推薦系統(tǒng)中應(yīng)用最廣泛的算法之一[2],但它存在數(shù)據(jù)稀疏性和冷啟動問題。深度學(xué)習(xí)基于數(shù)據(jù)來進(jìn)行特征學(xué)習(xí),而卷積神經(jīng)網(wǎng)絡(luò)是其中的一種學(xué)習(xí)方法,它能從大量的輸入輸出數(shù)據(jù)中找出相應(yīng)的映射關(guān)系。本文將卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)容推薦應(yīng)用到推薦系統(tǒng)的協(xié)同過濾算法中,從而緩解數(shù)據(jù)稀疏性和冷啟動的問題,提高推薦結(jié)果準(zhǔn)確率。
深度學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)發(fā)展的產(chǎn)物,神經(jīng)網(wǎng)絡(luò)是對人腦或一些生物神經(jīng)網(wǎng)絡(luò)特征的抽象和建模,能夠從外界進(jìn)行學(xué)習(xí),并以生物類似的交互方式來適應(yīng)外界環(huán)境[3]。深度學(xué)習(xí)分為監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)包含了多層感知機(jī)、卷積神經(jīng)網(wǎng)絡(luò)等學(xué)習(xí)模型;而無監(jiān)督學(xué)習(xí)包含了自動編碼器、稀疏編碼器和深度置信網(wǎng)等學(xué)習(xí)模型。
卷積神經(jīng)網(wǎng)絡(luò)是由多層的神經(jīng)元構(gòu)成,其網(wǎng)絡(luò)結(jié)構(gòu)主要包括輸入層、卷積層、池化層、全連接層和輸出層。實(shí)際上,卷積神經(jīng)網(wǎng)絡(luò)就是將大量輸入的數(shù)據(jù)進(jìn)行訓(xùn)練,從而學(xué)習(xí)到數(shù)據(jù)中的特征,找出輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的映射關(guān)系。

圖1:基于卷積神經(jīng)和協(xié)同過濾的混合推薦算法

圖2:卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

圖3:卷積神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確率和損失率

圖4:推薦結(jié)果準(zhǔn)確性對比圖
推薦系統(tǒng)主要分為協(xié)同過濾推薦、基于內(nèi)容推薦和混合推薦,其中協(xié)同過濾是目前使用最廣泛的推薦算法之一。協(xié)同過濾算法是通過收集用戶的歷史記錄來發(fā)現(xiàn)用戶和物品之間的關(guān)聯(lián)性,借此向用戶提供可能感興趣的推薦。它分為基于鄰居的協(xié)同過濾和基于模型的協(xié)同過濾,基于鄰居的協(xié)同過濾又分為基于用戶協(xié)同過濾和基于項(xiàng)目協(xié)同過濾[4]。基于用戶的協(xié)同過濾是通過收集用戶歷史行為或偏好數(shù)據(jù)生成用戶-物品矩陣,利用相似度算法找到與當(dāng)前用戶有相似興趣愛好的用戶,將此用戶喜好的物品推薦給當(dāng)前用戶。基于項(xiàng)目的協(xié)同過濾是通過收集偏好物品的相似性生成物品-用戶矩陣,利用相似度算法找到用戶喜歡的相似物品推薦給用戶。在協(xié)同過濾算法中如果出現(xiàn)新用戶或物品時(shí),或者數(shù)據(jù)少比較稀疏時(shí),很難收集到偏好信息找到相似用戶或物品,導(dǎo)致無法生成推薦,這就存在冷啟動和數(shù)據(jù)稀疏問題。
本文針對的是高校圖書館,用戶以學(xué)生教師為主,采用基于用戶的協(xié)同過濾算法。通過收集學(xué)生教師對圖書的評分和評價(jià)行為構(gòu)建讀者-圖書矩陣,尋找相似讀者形成推薦結(jié)果。再將卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型所產(chǎn)生的推薦結(jié)果與協(xié)同過濾的推薦結(jié)果進(jìn)行線性組合,形成更為準(zhǔn)確的推薦列表,也從而解決了圖書信息少,用戶評價(jià)少的冷啟動和數(shù)據(jù)稀疏問題。具體步驟如圖1 所示。
(1)收集相關(guān)信息包括用戶圖書搜索記錄和圖書信息例如書名、作者、出版社、簡介等,作為輸入數(shù)據(jù)進(jìn)行模型訓(xùn)練,得出用戶最可能感興趣的三類圖書,生成推薦列表1。
(2)提取用戶的圖書評分信息以及評論信息,形成用戶-圖書矩陣,通過計(jì)算相似度尋找相似用戶,根據(jù)相似用戶的喜愛產(chǎn)生推薦列表2。
(3)將推薦列表1 和推薦列表2 進(jìn)行內(nèi)容線性組合,生成最后的推薦列表。
通過訪問圖書信息數(shù)據(jù)庫和讀者搜索記錄數(shù)據(jù)庫,提取所需要數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗和過濾,利用jieba 分詞工具進(jìn)行分詞,生成詞向量訓(xùn)練所需要的圖書語料庫。使用Word2Vec 中Skip-Gram 模型對圖書語料庫進(jìn)行訓(xùn)練生成詞向量。Word2Vec 是基于中文語料庫的,可以處理自然語言。生成的詞向量作為卷積神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),進(jìn)行下一步的訓(xùn)練。
本文的卷積神經(jīng)網(wǎng)絡(luò)模型主要由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成,如圖2 所示。
輸入層:此層中輸入的數(shù)據(jù)是中文詞語的詞向量,圖中的k 表示300 維,n 為100。一行詞向量為一個(gè)詞語,將n 個(gè)詞語則構(gòu)成一個(gè)句子,可表示為:x1:n=x1⊕x2⊕x3⊕…⊕xn,其中xi∈Tk表示第i個(gè)詞語的K 維的詞向量。
卷積層:此層作用是提取詞向量的特征,輸入數(shù)據(jù)大小為100×300。卷積結(jié)果為di,即di=f(v·xi:i+h-1+a),其中f 為非線性函數(shù),本文采用的是ReLU 函數(shù);v∈Thk為卷積核,v 表示寬度為k維高度維h 個(gè)單詞的向量;a 表示函數(shù)的截距。在本文的模型中卷積核有三種,大小分別是3×300、4×300,5×300,其中n-h+1 的值為96,所以最后輸出大小為96*128。
池化層:此層是實(shí)現(xiàn)降維和過濾噪聲。它將卷積層的輸出結(jié)果集合D 的最大值取出來,組成輸出結(jié)果。池化窗口大小也分為三種3、4 和5;輸入數(shù)據(jù)大小是96×128,對應(yīng)的輸出數(shù)據(jù)大小分別為32×128、24×128 和19×128。池化層輸出結(jié)果將會進(jìn)入下一個(gè)卷積層進(jìn)行特征提前。

表1:讀者-圖書評分矩陣R(m,n)
融合層:本文模型中卷積核和池化窗口都有三種,融合層將組合這三種結(jié)果,進(jìn)行線性連接。輸入數(shù)據(jù)分別是三個(gè)128 維向量,則輸出數(shù)據(jù)則變?yōu)橐粋€(gè)384 維向量。
全連接層:來自融合層的384 維向量,在全連接層最終輸出結(jié)果維度為53。此層使用了Dropout 函數(shù),取值為0.2,用來來實(shí)現(xiàn)80%神經(jīng)元的局部連接,忽略掉20%的神經(jīng)元數(shù)據(jù),這樣在某種程度上避免了過擬合。同時(shí)還使用Softmax函數(shù),來實(shí)現(xiàn)多分類功能。
本文以Tensorflow 和Keras 作為框架搭建卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練,采用交叉熵?fù)p失函數(shù)。模型的準(zhǔn)確率和損失率如圖3 所示。從圖中可以看出在剛開始訓(xùn)練時(shí)損失值很大,當(dāng)?shù)螖?shù)達(dá)到一定數(shù)量時(shí)逐漸趨向平穩(wěn);而準(zhǔn)確率在開始時(shí)不斷上升然后隨著迭代次數(shù)趨向平穩(wěn)。在詞向量維度300,迭代次數(shù)為20 時(shí)準(zhǔn)確率可以到達(dá)95.2%。因此可以將此卷積神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到推薦系統(tǒng)中。
從學(xué)校圖書館的讀者借閱信息數(shù)據(jù)庫獲取讀者對圖書的評分和評價(jià)信息,并對數(shù)據(jù)進(jìn)行清洗,將活躍程度低的用戶以及無效的數(shù)據(jù)過濾掉,最后構(gòu)建成讀者-圖書矩陣。假設(shè)有m 個(gè)讀者,讀者集合為U={U1,U2,U3,…,Um};n 種圖書,圖書集合為B={B1,B2,B3,…, Bn};m 個(gè)讀者n 種圖書構(gòu)成的m×n 階的讀者-圖書評分矩陣R(m,n),如表1 所示。
要尋找相似讀者,需要計(jì)算相似度,常用的方法有皮爾遜相關(guān)系數(shù)、歐幾里得距離法和余弦值法。本文采用的是皮爾遜相關(guān)系數(shù)。假設(shè)讀者u 與讀者v 的相似度sim(u,v),Iuv表示讀者u 與讀者v 對圖書評分的交集。相似度結(jié)果區(qū)間在[0,1],結(jié)果值越大,表示越相似。

通過讀者的相似度,計(jì)算出讀者u 對圖書i 的偏好預(yù)測值Pu,i,KNNp表示與讀者u 最相似的k 個(gè)讀者的集合,分別表示讀者u 和v 對所有圖書的平均評分。

將預(yù)測值Pu,i由大到小排列,生成Top-N 推薦列表,將其中的N 本圖書推薦給讀者。評估推薦系統(tǒng)的準(zhǔn)確性指標(biāo)最常用的是準(zhǔn)確率(Precision)、召回率(Recall)和F1 值,假設(shè)R(u)是訓(xùn)練集中得出的推薦列表,T(u)是測試集中得出的推薦列表,相應(yīng)公式如下:

本文在實(shí)驗(yàn)中將評分矩陣數(shù)據(jù)分兩部分,作為訓(xùn)練集數(shù)據(jù)占80%,測試集數(shù)據(jù)占20%。實(shí)驗(yàn)結(jié)果驗(yàn)證推薦的準(zhǔn)確率為3.54%,召回率為2.83%,F(xiàn)1 值為3.04%。
以用戶圖書搜索記錄和圖書信息作為輸入數(shù)據(jù),通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練,得出用戶最可能感興趣的三類圖書,生成最熱門評分最高的推薦列表,與協(xié)同過濾算法生成的Top-N 推薦列表,進(jìn)行內(nèi)容線性組合生成最后的推薦列表。計(jì)算最終的推薦結(jié)果準(zhǔn)確率為5.10%,召回率為4.65%,F(xiàn)1 值為4.93%,相對于協(xié)同過濾而言,推薦結(jié)果準(zhǔn)確性明顯提高了如圖4 所示。
通過實(shí)驗(yàn)對比,相對于單一的協(xié)同過濾推薦系統(tǒng),卷積神經(jīng)網(wǎng)絡(luò)和協(xié)同過濾相結(jié)合的混合推薦系統(tǒng)推薦效果更好。
為了實(shí)現(xiàn)從大量圖書資源中向高校學(xué)生推薦他們感興趣的圖書,本文提出了將卷積神經(jīng)網(wǎng)絡(luò)的推薦結(jié)果和協(xié)同過濾算法的推薦結(jié)果向結(jié)合,組成一種混合推薦系統(tǒng),從而提高了推薦的準(zhǔn)確率,并緩解了冷啟動和數(shù)據(jù)稀疏問題。