隨著移動互聯(lián)網(wǎng)和移動閱讀的發(fā)展,高校館紙質(zhì)圖書借閱率下滑,如何提升館藏紙質(zhì)資源建設(shè)和個性化圖書推薦服務(wù)成為高校館研究方向之一。精準(zhǔn)的學(xué)科化圖書推薦,依賴于宏觀上洞察館藏結(jié)構(gòu)和資源分布,更需要微觀上把握讀者學(xué)科學(xué)習(xí)需求、使用偏好、借閱心理和借閱行為等因素。若能通過讀者借閱行為揭示館藏紙質(zhì)資源的利用與需求,挖掘隱含的借閱關(guān)聯(lián)演變過程,將對個性化圖書推薦非常有參考價值。故此,本文從圖書的主題表示法出發(fā),提出基于讀者借閱序列的多主題表示方法,在中圖分類法的基礎(chǔ)上將一個圖書類別轉(zhuǎn)換為多種圖書類別表示的向量。通過基于序列的方式展現(xiàn)圖書類別的變化過程,提高各類別之間關(guān)聯(lián)變化的可解釋性。以期探索高校圖書館個性化圖書推薦的新服務(wù)途徑。
近年基于圖書主題法實證研究高校館藏資源個性化圖書推薦的研究較多。彭博[1]提出引入包含用戶屬性和圖書分類信息的三部圖推薦方法,實現(xiàn)針對不同讀者提供滿足不同專業(yè)需求的借閱推薦。侯銀秀等[2]使用情感分析方法對用戶圖書評論進行屬性層文本挖掘,得到細粒度的用戶偏好信息,并通過與圖書屬性的得分進行匹配,提升圖書個性化推薦的效果。王連喜[3]通過挖掘用戶的背景信息構(gòu)建用戶特征模型,研究多種不同的圖書推薦方法,以挖掘用戶的潛在信息需求,從而實現(xiàn)用戶與圖書相互關(guān)聯(lián)的個性化圖書推薦服務(wù)。漆月等[4]則以圖書分類號為依據(jù),構(gòu)建用戶個性化興趣庫及圖書綜合推薦庫,并通過分類號的匹配形成個性化的圖書檢索信息及圖書推薦結(jié)果。蔣小峰[5]提出結(jié)合專業(yè)需求、閱讀傾向和閱讀心理等進行精準(zhǔn)的個性化圖書推薦服務(wù)。鄭祥云等[6]針對傳統(tǒng)推薦算法精準(zhǔn)度不高的問題,通過對目標(biāo)借閱者的歷史借閱數(shù)據(jù)與其他圖書數(shù)據(jù)進行內(nèi)容相似度分析,得到與目標(biāo)借閱者歷史借閱圖書內(nèi)容相似度較高的其他圖書,提出了新的適用于圖書推薦的數(shù)據(jù)挖掘模型。林澤鴻等[7]挖掘讀者在社交論壇所在的版塊、交互次數(shù)和評論等方面的喜好,實現(xiàn)精準(zhǔn)圖書推薦。李樹青等[8]將讀者借閱行為特征和圖書借閱關(guān)系相結(jié)合,設(shè)計一種測度圖書可推薦質(zhì)量的迭代算法,提出三種不同類型的個性化圖書推薦服務(wù)。然而,基于圖書主題法的高校圖書館個性化推薦系統(tǒng)的實用性還不盡如人意,如需要讀者加入標(biāo)簽信息;對讀者需求細化不足,停留在大類和主題層次;或者以圖書類別作為讀者興趣表示和推薦的依據(jù),這些做法都沒展現(xiàn)外借圖書的序列借閱關(guān)系演變。為探索基于讀者借閱行為的圖書推薦模型,本文通過讀者借閱圖書分類、興趣偏好和讀者學(xué)科專業(yè)屬性等多方面特征值構(gòu)建圖書類別多層表示學(xué)習(xí)方法,從而探索出更為有益和精準(zhǔn)的個性化圖書推薦方式。
個人借閱數(shù)據(jù)由一段時間內(nèi)個人借閱序列構(gòu)成,每次的借閱行為包含多種圖書相關(guān)概念,如圖書分類號、圖書描述詞匯、讀者所在專業(yè)。該層次結(jié)構(gòu)提供了兩類關(guān)聯(lián)信息:借閱序列和同一次借閱中并發(fā)出現(xiàn)的圖書概念。
在借閱數(shù)據(jù)集中,用C1、C2、...C|C|構(gòu)成的集合C表示圖書概念編碼。每位讀者的借閱序列(每次借閱)可用V1、V2、...VT表示,每次借閱包含圖書類別概念的子集,即Vt?C。Bib2Vec算法的目的是學(xué)習(xí)圖書類別的兩類表述:(1)編碼表述。目的是學(xué)習(xí)一個嵌入函數(shù)fC∶C->R+M,即將每個類別編碼映射到一個維度為m的非負實數(shù)向量;(2)借閱表述。任務(wù)是學(xué)習(xí)另一種嵌入函數(shù)fV∶V->Rn,該函數(shù)將每次借閱(圖書類別的集合)映射到一個維度為n的實數(shù)向量。此處集合V是編碼集合C的冪集。
圖1描述了Bib2Vec結(jié)構(gòu)。給定一次借閱vt,使用一個多層感知機(MLP)生成對應(yīng)的借閱表述vt。借閱Vt表示為一個二元向量xt∈{0,1}|C|,當(dāng)且僅當(dāng)ci∈Vt時,第i項的值為1。這樣xi可以轉(zhuǎn)換為借閱的中間表述ut∈Rm,見公式(1)。
其中,Wc∈Rm×|C|是編碼權(quán)重矩陣;bC∈Rm是偏置矩陣;使用ReLU函數(shù)作為激活函數(shù)以提高交互性,其定義為ReLU(v)=max(v,0)。此處的max()是個向量函數(shù),基于各元素進行計算。
為提高學(xué)習(xí)的準(zhǔn)確性,需要加入讀者基本信息,如年齡、性別、籍貫、專業(yè)、班級等。通過將ut與讀者基本信息連接,得到最終的借閱表述vt∈Rn,見公式(2)。
其中,rt∈Rd表示讀者基本信息,d是讀者基本信息向量的大??;借閱權(quán)重向量Wc∈Rn×(m+d);偏置權(quán)重bv∈Rn;此處的n為借閱表述的預(yù)定義大??;激活函數(shù)仍使用ReLU。
圖1 Bib2Vec的結(jié)構(gòu)
利用借閱的序列信息,能訓(xùn)練借閱和潛在編碼的表述。在訓(xùn)練MLP過程時,可將讀者借閱經(jīng)歷當(dāng)作一個持續(xù)過程,而一次借閱便是其中的一個狀態(tài)。因此,給定某次借閱的表述,可以用之預(yù)測過去的借閱信息,也可以用之預(yù)測未來的借閱信息。換句話說,給定一次借閱表述vt,可以訓(xùn)練一個softmax分類器,用來預(yù)測該讀者在前后借閱窗口中所借閱書本的類別??赏ㄟ^公式(3)所示的方法最小化交叉熵代價函數(shù)。
WS∈R|C|×n和bS∈R|C|分別是softmax分類器的權(quán)重矩陣和偏置矩陣;w是預(yù)定義的前后借閱窗口大?。籩xp是向量的指數(shù)函數(shù),返回向量每個元素對應(yīng)的exp次方值;而1表示全1向量。
除了借閱序列信息外,圖書借閱歷史隱含的另一個重要信息是圖書編碼同時出現(xiàn)信息,即每次借閱中同時出現(xiàn)的圖書類別。本文擬在Bib2Vec引入Skip-gram方法以獲取圖書類別在同一次借閱時的共現(xiàn)信息。Skip-gram方法是許多概念表述學(xué)習(xí)方法的基礎(chǔ)?;陬A(yù)定義大小的上下文窗口中單詞的共現(xiàn)信息,該方法可在給定單詞序列w1,w2,...,wT中學(xué)習(xí)單詞的表述。具體做法是訓(xùn)練Wc∈Rm×|C|,使其第i列能表示對應(yīng)的第i個圖書類別。為使習(xí)得的編碼表示更易于理解,編碼表示應(yīng)為非負的。因此,如公式(4)(5)所示,在使用Skip-gram算法時,本文訓(xùn)練的是非負權(quán)重ReLU(Wc),而非Wc。這樣,所學(xué)的權(quán)重變成Wc'=ReLU(Wc)∈Rm×|C|。當(dāng)存在借閱序列V1,V2,...,VT,可通過最大化下列似然函數(shù)得到基于編碼的概念表示:
合并公式(4)和公式5)的目標(biāo)函數(shù),可以得到一個聯(lián)合的訓(xùn)練框架,見公式(6)。通過兩個目標(biāo)函數(shù)的結(jié)合,可以從同一個借閱記錄學(xué)到基于中圖法和基于主題法的圖書類別表述,以便同時利用借閱內(nèi)部的類別號并發(fā)出現(xiàn)信息和不同次借閱之間的序列信息。
本節(jié)在廈門理工學(xué)院圖書館歷年借閱數(shù)據(jù)的基礎(chǔ)上進行實驗,評估Bib2Vec算法的有效性。筆者對實驗數(shù)據(jù)集和評價指標(biāo)進行描述,并對基于編碼表述和借閱表述的實驗結(jié)果進行討論,總結(jié)算法的適用性。
(1)數(shù)據(jù)集描述。實驗數(shù)據(jù)集來自廈門理工學(xué)院2010年1月1日~2013年12月31日的讀者借閱數(shù)據(jù)。為對實驗結(jié)果進行更準(zhǔn)確的分析,本文從中抽取計算機相關(guān)院系的學(xué)生借閱記錄作為實驗數(shù)據(jù)集,包括計算機與信息工程學(xué)院、電氣工程與自動化學(xué)院、光電與通信工程學(xué)院、應(yīng)用數(shù)學(xué)學(xué)院。其中,用前三年的數(shù)據(jù)作為訓(xùn)練集,用最后一年的數(shù)據(jù)作為測試集。對于類別編碼,文中使用兩種,一種是中圖法分類號,另一種是圖書標(biāo)題中所出現(xiàn)主題詞的聚類id,總共200個聚類。中圖法分類采用多層級編碼,為了統(tǒng)一各類的細分度,筆者將編碼定為5級,5級以下的分類號統(tǒng)一合并到第5級。比如,程序設(shè)計的分類號是TP311.1,為便于與其他類別作比較,將其歸并到TP311。數(shù)據(jù)集的統(tǒng)計信息如表1所示。
表1 訓(xùn)練集和測試集的基本統(tǒng)計
(2)評價指標(biāo)描述。鑒于分類號級別的評價需引入該領(lǐng)域的知識專家,對習(xí)得分類號進行相關(guān)性驗證,工作量大。本文僅采用基于借閱的評價,根據(jù)習(xí)得分類號對未來借閱類別的預(yù)測性,評價Bib2Vec算法的準(zhǔn)確度。以兩次連續(xù)借閱Vi和Vj為例,以Vj的中圖法分類號作為預(yù)測目標(biāo)y,Vi的圖書類別表述(中圖法和標(biāo)題對應(yīng)的主題聚類)作為輸入x,即上下文窗口大小為1的情形。
筆者采用命中率指標(biāo)HR作為預(yù)測性能的評價指標(biāo)。所謂命中指預(yù)測的圖書類別與用戶欲借閱的圖書類別一致。鑒于大學(xué)生思想活躍,容易受外部影響,借閱興趣不夠穩(wěn)定,可預(yù)測性較低,實驗中不使用完全命中的定義,改為topk命中:即當(dāng)推薦的topk個圖書類別在用戶欲借閱的圖書類別中,則認為本次推薦命中。這樣,HR變成HR@k,具體描述見公式(7)(8),文中取k=5和k=10兩種情況。
表2 術(shù)語聚類結(jié)果例示
為增加可推廣性,本文將把上下文窗口大小設(shè)為1、2、3等情形,以分析上下文窗口大小的變化對預(yù)測精度的影響。同時,將實驗分為兩部分,一類是僅使用中圖法類別作為類別表述;另一類的類別表述中除用到中圖法類別外,還附加圖書主題的聚類信息。
大多數(shù)讀者基于標(biāo)題內(nèi)容檢索圖書,因此,主題詞選擇對用戶檢索具有較強的指導(dǎo)意義。主題詞是通過對訓(xùn)練集和測試集的圖書標(biāo)題進行文本分詞得到,聚類時考慮主題詞同時出現(xiàn)在一本圖書的次數(shù),通過k-means聚類方法(實驗將k設(shè)為200),得到主題聚類信息。術(shù)語聚類結(jié)果如表2所示,因篇幅問題,僅顯示兩個。從中可以看出,聚類較為明顯地體現(xiàn)了用戶的興趣和圖書的類別。第3個聚類顯示了計算機技術(shù)方面的術(shù)語,該聚類的術(shù)語偏重于操作系統(tǒng)和硬件方面的內(nèi)容。即便是防火墻、入侵、修復(fù)、監(jiān)控等詞也與網(wǎng)絡(luò)安全相關(guān),而網(wǎng)絡(luò)安全方面的研究更多從操作系統(tǒng)層面實現(xiàn)。而第10個聚類體現(xiàn)了對考研數(shù)學(xué)資料的檢索需求,如gct(碩士專業(yè)學(xué)位研究生入學(xué)資格考試)、lingo(數(shù)學(xué)建模中的常用軟件)、李永樂(考研數(shù)學(xué)輔導(dǎo)專家)、同濟(同濟大學(xué)出版的高等數(shù)學(xué)教材是高校的主流教材)。由于術(shù)語聚類體現(xiàn)了一定的語義,因此,擬將其與分類號相結(jié)合,幫助圖書館人員更準(zhǔn)確地對書本進行編碼,提高圖書推薦的準(zhǔn)確度。
圖2和圖3顯示隨著上下文窗口大小的變化,基于中圖法的多層表述、基于中圖法+主題聚類的多層編碼表述在借閱預(yù)測上的實驗效果。區(qū)別在于前者用HR@5評價準(zhǔn)確率,而后者用HR@10。橫軸為用HR表示的預(yù)測準(zhǔn)確度,縱軸是預(yù)測的類型。實驗數(shù)據(jù)集中,由于缺乏高性能的推薦系統(tǒng),用戶無法迅速找到要借閱的書,其實際需求可能在多次借閱以后才發(fā)現(xiàn)。因此,在評價預(yù)測準(zhǔn)確性時,要取未來多次借閱的結(jié)果作為評判依據(jù)。圖中所述對下兩次的預(yù)測,評判結(jié)果包括了緊接的第一次和第二次借閱的書籍。每個類別都有三個實驗,分別對應(yīng)上下文窗口大小為1、2、3時HR@5和HR@10的值。圖中反映了多種現(xiàn)象。
圖2 基于多層分類號表述的預(yù)測結(jié)果(HR@5)
圖3 基于多層分類號表述的預(yù)測結(jié)果(HR@10)
現(xiàn)象1:相同條件下,基于中圖法和主題聚類的預(yù)測結(jié)果較僅基于中圖法的預(yù)測結(jié)果要高得多,基本都能提升10個百分點,最高能達到20個百分點。一方面說明增加了詞匯信息對提升準(zhǔn)確率有較大幫助;另一方面也說明,加入多層表示后,能展示圖書的交叉學(xué)科屬性,提高其描述準(zhǔn)確度。
現(xiàn)象2:對未來兩次借閱的預(yù)測精度較未來一次有大幅提升,提升幅度接近20%。該現(xiàn)象說明多主題表示圖書的適應(yīng)性。因為比較對未來兩次借閱的預(yù)測和對未來一次借閱的預(yù)測,其預(yù)測內(nèi)容是一樣的。從HR@k指標(biāo)值的計算公式來看,{推薦的前k個圖書類別}是相同的。之所以預(yù)測精度提高,是由于對未來兩次借閱的預(yù)測將用戶未來兩次借閱圖書的類別作為{用戶欲借閱的圖書類別},因而所預(yù)測圖書類別的命中率也隨之提升。這說明圖書推薦系統(tǒng)沒有將學(xué)生所需的圖書一次性推薦給學(xué)生,導(dǎo)致學(xué)生需要多次借閱才能滿足其需求。因此,加入多層學(xué)習(xí)表示有助于精確地捕獲學(xué)生借閱興趣,提高推薦準(zhǔn)確度。
現(xiàn)象3:上下文窗口大小的變化與預(yù)測準(zhǔn)確度并無直接關(guān)聯(lián)。從圖2和圖3看出,很多情況下,窗口大小為2時,預(yù)測準(zhǔn)確率反而比1的時候差。這種現(xiàn)象在純基于中圖法學(xué)習(xí)編碼表述的時候最為明顯。根據(jù)常理,上下文窗口越大,考慮因素越多,預(yù)測精確度會越高。此種情況更能說明采用多層主題表示的方法更能全面描述讀者的圖書借閱需求,有助于提升個性化圖書推薦的準(zhǔn)確率。
現(xiàn)象4:采用基于中圖法和主題聚類的多層表示學(xué)習(xí),預(yù)測精度最高能超過70%。這說明該方法具有一定的有效性。但是,需要注意的是,圖2中HR@5體現(xiàn)出的推薦準(zhǔn)確度較圖3的HR@10要低得多,這說明只推薦5個的效果還比較差,需引入更多的信息,使得多層主題表示的結(jié)果能更好反映用戶的需求。
通過bib2vec多層編碼表述,每次借閱都被轉(zhuǎn)化為由分類號和術(shù)語聚類表示的向量。每個分量對應(yīng)一個分類號或主題聚類,分量的值為該次借閱與分類號和術(shù)語聚類的關(guān)聯(lián),從而根據(jù)上次借閱的信息推導(dǎo)出下次可能借閱哪些類別的圖書。根據(jù)得到的借閱向量,進行處理后可以發(fā)現(xiàn):引入聚類信息后,得出借閱過程中緊密相關(guān)的分類號和主題聚類,發(fā)現(xiàn)被關(guān)聯(lián)到一起的分類號在中圖法分類體系上不再僅僅是祖先-后代關(guān)系,還出現(xiàn)了橫向關(guān)聯(lián)。具體的例子如表3所示,因篇幅所限,僅選出若干最具有代表性的分類號集合。這說明隨著學(xué)科交叉的深入和發(fā)展,傳統(tǒng)的樹型分類體系越來越不適用,引入多層表述對圖書編目和圖書推薦將越來越重要。
表3 多層編碼表述學(xué)習(xí)得到的相關(guān)分類號組
如表3的第一層所示,該組分類號與表2的術(shù)語聚類3緊密相關(guān),體現(xiàn)了計算機安全方向的借閱需求;第二層體現(xiàn)了軟件金融方向?qū)W生的借閱需求(廈門理工學(xué)院為更好地培養(yǎng)金融軟件系統(tǒng)的開發(fā)人才,特別在軟件工程專業(yè)下設(shè)立該方向,要求學(xué)生既要掌握軟件開發(fā)能力,又要了解金融、會計相關(guān)知識);第三層則體現(xiàn)了空間信息工程專業(yè)學(xué)生的借閱需求,該專業(yè)屬于計算機類,學(xué)生還需要學(xué)習(xí)測繪、遙感等知識,以便解決無人機航拍數(shù)據(jù)的結(jié)構(gòu)化、可視化和分析等問題。由此可見,基于多層編碼表述學(xué)得的分類號群與學(xué)生的學(xué)習(xí)需求緊密相關(guān),因此不僅能提升圖書的推薦精確度,還能有效識別學(xué)生的新需求。
本文將多層表示學(xué)習(xí)方法引入高校圖書館的圖書推薦中,它采用一個可擴展的兩層神經(jīng)網(wǎng)絡(luò)框架,學(xué)習(xí)圖書類別的低維表示。該方法使用在同一次借閱中圖書分類號和標(biāo)題詞的共現(xiàn)信息,以及同一個讀者的順序借閱信息,以提高編碼和借閱表述的準(zhǔn)確性。通過多個實驗,筆者發(fā)現(xiàn)該方法能有效提升廈門理工學(xué)院圖書館的推薦準(zhǔn)確性,較傳統(tǒng)方法提高20個百分點。鑒于高校學(xué)生的借閱行為受所學(xué)課程、所參加競賽、所指導(dǎo)教師的影響較大,本研究僅考慮了班級、專業(yè)、院系之間的影響。在今后的研究與實踐中,筆者將在多層學(xué)習(xí)中引入學(xué)生與學(xué)生之間、學(xué)生與教師之間在課程、競賽之間的社交網(wǎng)絡(luò)信息,以進一步提升圖書推薦準(zhǔn)確性。