李恒
(陜西省圖書館, 網(wǎng)絡(luò)技術(shù)部, 陜西, 西安 710006)
工信部2020年居民移動(dòng)互聯(lián)網(wǎng)使用習(xí)慣報(bào)告書中指出,2019年國(guó)內(nèi)手機(jī)閱讀功能的總服務(wù)時(shí)間占到手機(jī)使用時(shí)間的26.7%,較2018年提升3.6%,且近5年來一直保持較大增幅,成為僅次于手機(jī)新聞(31.4%)的第二大手機(jī)服務(wù)功能[1]。該占比高于手機(jī)游戲、手機(jī)購(gòu)物等功能耗時(shí)。移動(dòng)互聯(lián)網(wǎng)2.0時(shí)代,公共圖書館改變以往借閱模式,將海量圖書進(jìn)行數(shù)字化轉(zhuǎn)化,供用戶在線借閱。該服務(wù)成為手機(jī)閱讀內(nèi)容供應(yīng)的重要構(gòu)成部分[2]。
公共圖書館在線借閱功能在手機(jī)閱讀服務(wù)中的最大競(jìng)爭(zhēng)對(duì)手是互聯(lián)網(wǎng)小說功能,在邏輯上,公共圖書館的圖書質(zhì)量,特別是文學(xué)紀(jì)實(shí)類圖書的質(zhì)量,遠(yuǎn)高于互聯(lián)網(wǎng)小說[3]。但互聯(lián)網(wǎng)小說服務(wù)方采用了成熟的閱讀推廣算法,使得每個(gè)用戶打開App后的推薦內(nèi)容均可基本符合用戶喜好,這讓互聯(lián)網(wǎng)小說App在圖書質(zhì)量遠(yuǎn)不如公共圖書館在線借閱App的前提下,獲得更高的用戶黏性[4]。
所以,該研究擬開發(fā)一種算法簡(jiǎn)單、可操作性強(qiáng)的圖書館App閱讀推廣算法模型[5],以提升公共圖書館在線借閱App的用戶使用體驗(yàn),使圖書館公共資源可以發(fā)揮更為有效的社會(huì)價(jià)值[6]。
圖書管理學(xué)傳統(tǒng)理論下,圖書檢索信息卡主要包括書名、作者、出版社、出版時(shí)間、中圖分類號(hào)、文獻(xiàn)識(shí)別碼、圖書內(nèi)容摘要、關(guān)鍵詞等。通過該檢索模式可以根據(jù)圖書中的部分關(guān)鍵詞或作者姓名快速檢索圖書,但該模型在基于用戶畫像的App推薦過程中難以有效使用[7]。
閱讀推廣算法的核心數(shù)據(jù)需求,是對(duì)每?jī)?cè)圖書提供人工智能算法可以識(shí)別的檢索信息卡數(shù)字化畫像,即面向人工智能的數(shù)字化圖書檢索卡,以及用戶閱讀習(xí)慣大數(shù)據(jù)畫像。將用戶閱讀習(xí)慣畫像與圖書檢索信息卡數(shù)字化畫像進(jìn)行匹配,可以篩選出有針對(duì)性的圖書[8]。圖1為上述算法模型的數(shù)據(jù)關(guān)系。
圖1中,該模型共使用3個(gè)基于神經(jīng)網(wǎng)絡(luò)的算法架構(gòu)。其中:11詞頻陣列算法的統(tǒng)計(jì)學(xué)意義是根據(jù)圖書文本詞頻提取后的50個(gè)非助詞高頻詞和20個(gè)非助詞低頻詞形成一個(gè)32字符的內(nèi)容標(biāo)識(shí)碼,該標(biāo)識(shí)碼肉眼觀察下并無(wú)任何統(tǒng)計(jì)學(xué)意義,但可以幫助計(jì)算機(jī)人工智能系統(tǒng)通觀了解該書的內(nèi)容;22用戶畫像算法是將用戶瀏覽或收藏的圖書關(guān)聯(lián)的32字符內(nèi)容識(shí)別碼與用戶特征畫像的32字符用戶識(shí)別碼通過神經(jīng)網(wǎng)絡(luò)算法進(jìn)行合并,形成新的32字符用戶識(shí)別碼,即用戶識(shí)別碼的更新過程;33匹配算法是比較所有圖書的32字符內(nèi)容識(shí)別碼和訪問用戶的32字符用戶識(shí)別碼,給出一個(gè)在[0,1]區(qū)間上的評(píng)價(jià)值,通過該評(píng)價(jià)值對(duì)所有圖書進(jìn)行排序,可以提取出新算法體系下的推薦圖書[9]。傳統(tǒng)推薦算法是根據(jù)用戶提交的圖書關(guān)鍵詞與圖書入庫(kù)時(shí)標(biāo)記的固定關(guān)鍵詞進(jìn)行比對(duì),從而計(jì)算其關(guān)聯(lián)度,其對(duì)用戶畫像的影響也是登記用戶瀏覽圖書中包含的用戶未提交的關(guān)鍵詞。
圖1 圖書館App2.0系統(tǒng)的閱讀推廣算法模型數(shù)據(jù)流圖
詞頻陣列算法的應(yīng)用場(chǎng)景,是在每本書入庫(kù)時(shí)對(duì)其內(nèi)容進(jìn)行一次分析,主要包含書名、固定關(guān)鍵詞、全書詞頻分析結(jié)果等。該算法模型無(wú)須經(jīng)常運(yùn)行,所以可以投入更大的算力,對(duì)響應(yīng)時(shí)間要求也不高,可以適當(dāng)增加算法模塊的節(jié)點(diǎn)量,使挖掘過程更為深入[10]。包括神經(jīng)網(wǎng)絡(luò)模塊節(jié)點(diǎn)在內(nèi),其挖掘數(shù)據(jù)流節(jié)點(diǎn)架構(gòu)設(shè)計(jì)如圖2所示。
圖2中,神經(jīng)網(wǎng)絡(luò)部分共分為2段。前段根據(jù)書名、固定關(guān)鍵詞和圖書文本得到的170個(gè)輸入節(jié)點(diǎn)進(jìn)行卷積處理,輸出結(jié)果形成32列多列神經(jīng)網(wǎng)絡(luò),每列神經(jīng)網(wǎng)絡(luò)輸出1個(gè)目標(biāo)字符,將該32列字符連接成字符串,即成為圖書識(shí)別碼字符串。該字符串包含了書名、固定關(guān)鍵詞和圖書文本的信息,雖然肉眼無(wú)法分辨其實(shí)際意義,但可以用作后續(xù)的人工智能介入推薦過程。
圖2 詞頻陣列算法模塊邏輯圖
上述170個(gè)輸入層節(jié)點(diǎn)的生成過程需要將文本字符進(jìn)行數(shù)字化,以中文為例,部分節(jié)點(diǎn)包含單字信息,僅需要通過CtoD函數(shù)將文本型變量轉(zhuǎn)化為四字節(jié)長(zhǎng)整型變量即可實(shí)現(xiàn)該數(shù)字化過程,但部分節(jié)點(diǎn)為多字中文詞語(yǔ),此時(shí)需要將每個(gè)單字使用CtoD函數(shù)轉(zhuǎn)化后進(jìn)行累加,形成一個(gè)四字節(jié)長(zhǎng)整型變量。多列神經(jīng)網(wǎng)絡(luò)模塊輸出的雙精度浮點(diǎn)型變量,使用反向的CtoD函數(shù)將數(shù)值型變量轉(zhuǎn)化為文本型變量。
綜合上述數(shù)據(jù)輸入數(shù)字化模式,上述2段神經(jīng)網(wǎng)絡(luò)中,卷積神經(jīng)網(wǎng)絡(luò)的輸入層為170個(gè)四字節(jié)長(zhǎng)整型變量,經(jīng)過第1層151節(jié)點(diǎn),第2層113節(jié)點(diǎn),第3層87節(jié)點(diǎn),第4層53節(jié)點(diǎn),第5層31節(jié)點(diǎn),第6層13節(jié)點(diǎn),第7層5節(jié)點(diǎn),第8層3節(jié)點(diǎn),共設(shè)計(jì)8層隱藏層。將數(shù)據(jù)通過多項(xiàng)式節(jié)點(diǎn)函數(shù)設(shè)計(jì)的卷積節(jié)點(diǎn)進(jìn)行卷積,形成一個(gè)可供多列神經(jīng)網(wǎng)絡(luò)適應(yīng)的輸入變量。多項(xiàng)式節(jié)點(diǎn)函數(shù)可寫作式(1):
(1)
式中,Xi為上一層輸入的第i個(gè)節(jié)點(diǎn)變量值,Y為節(jié)點(diǎn)輸出值,j為多項(xiàng)式階數(shù),Aj為第j階多項(xiàng)式的待回歸變量。
多列神經(jīng)網(wǎng)絡(luò)共32列,每一列的結(jié)構(gòu)相同,根據(jù)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需求進(jìn)行獨(dú)立訓(xùn)練并使其按需收斂。每一列多列神經(jīng)網(wǎng)絡(luò)均為1個(gè)輸入節(jié)點(diǎn)和1個(gè)輸出節(jié)點(diǎn),采用5層隱藏層設(shè)計(jì),分別為第1層3節(jié)點(diǎn),第2層11節(jié)點(diǎn),第3層23節(jié)點(diǎn),第4層13節(jié)點(diǎn),第5層3節(jié)點(diǎn)。其節(jié)點(diǎn)函數(shù)選擇數(shù)據(jù)特征放大效果較佳的對(duì)數(shù)節(jié)點(diǎn)函數(shù)進(jìn)行節(jié)點(diǎn)設(shè)計(jì)。對(duì)數(shù)節(jié)點(diǎn)函數(shù)可寫作式(2):
Y=∑[A·logeXi+B]
(2)
式中,Xi為上一層輸入的第i個(gè)節(jié)點(diǎn)變量值,Y為節(jié)點(diǎn)輸出值,e為自然常數(shù),A、B為節(jié)點(diǎn)待回歸系數(shù)。
用戶每次點(diǎn)擊瀏覽或每次收藏圖書時(shí),均會(huì)觸發(fā)該算法,所以該算法模型必須在一般圖書館在線借閱系統(tǒng)中有較高的響應(yīng)效率,這就要求其神經(jīng)網(wǎng)絡(luò)算法的算力需求必須足夠小,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)也應(yīng)充分簡(jiǎn)化。
該模型的統(tǒng)計(jì)學(xué)意義是根據(jù)用戶的點(diǎn)擊行為或收藏行為,根據(jù)其點(diǎn)擊或收藏的圖書識(shí)別碼對(duì)其用戶識(shí)別碼產(chǎn)生影響,在用戶瀏覽行為中逐漸優(yōu)化其用戶識(shí)別碼。該算法模型的數(shù)據(jù)流節(jié)點(diǎn)架構(gòu)如圖3所示。
圖3 用戶畫像算法模型
圖3中,字符數(shù)據(jù)的數(shù)字化模型依然采用CtoD強(qiáng)制轉(zhuǎn)化函數(shù),多列神經(jīng)網(wǎng)絡(luò)輸出的雙精度浮點(diǎn)型變量轉(zhuǎn)化為字符串的過程依然采用DtoC強(qiáng)制轉(zhuǎn)化函數(shù)。神經(jīng)網(wǎng)絡(luò)核心架構(gòu)是32列多列神經(jīng)網(wǎng)絡(luò),每一列神經(jīng)網(wǎng)絡(luò)分列架構(gòu)均為對(duì)應(yīng)的用戶識(shí)別碼字符串1個(gè)輸入變量,整合用戶行為碼變量(用戶單純點(diǎn)擊瀏覽時(shí)為1,用戶收藏圖書時(shí)為10),以及圖書識(shí)別碼對(duì)應(yīng)的32個(gè)輸入變量,所以每個(gè)多列神經(jīng)網(wǎng)絡(luò)模塊共34個(gè)輸入變量,1個(gè)輸出變量,隱藏層2層,分別為第1層17節(jié)點(diǎn),第2層5節(jié)點(diǎn)。此種設(shè)計(jì)會(huì)大幅度壓縮神經(jīng)網(wǎng)絡(luò)的總節(jié)點(diǎn)量以減少其對(duì)算力的需求,加快網(wǎng)頁(yè)響應(yīng)效率。神經(jīng)網(wǎng)絡(luò)的節(jié)點(diǎn)函數(shù)使用對(duì)數(shù)函數(shù),如前文式(2)。
匹配算法模型在用戶每次刷新圖書推薦目錄時(shí)被調(diào)用,且即便根據(jù)用戶設(shè)定關(guān)鍵詞對(duì)圖書進(jìn)行初步檢索,其也需要在每次刷新圖書推薦目錄時(shí)被多次調(diào)用以形成圖書查詢列表的匹配度賦值,所以該算法的算力優(yōu)化更為苛刻,需要更小的神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)架構(gòu)。該算法采用單一神經(jīng)網(wǎng)絡(luò)模塊進(jìn)行數(shù)據(jù)分析,且確保其總節(jié)點(diǎn)量得到最小化優(yōu)化,詳見圖4。
圖4 圖書匹配算法模型
圖4中,識(shí)別碼字符的數(shù)字化過程采用CtoD函數(shù)進(jìn)行強(qiáng)制轉(zhuǎn)化,共形成64個(gè)輸入節(jié)點(diǎn),系統(tǒng)需求1個(gè)輸出節(jié)點(diǎn),該算法的統(tǒng)計(jì)學(xué)意義是實(shí)現(xiàn)數(shù)據(jù)卷積,形成一個(gè)[0,1]區(qū)間上的雙精度浮點(diǎn)變量評(píng)價(jià)結(jié)果,用于圖書查詢結(jié)果的排序(ORDER函數(shù))和頭部截取(TOP函數(shù))。采用前文式(1)的多項(xiàng)式函數(shù)進(jìn)行節(jié)點(diǎn)設(shè)計(jì),采用多項(xiàng)式函數(shù)的最大卷積比進(jìn)行數(shù)據(jù)卷積,即后一層節(jié)點(diǎn)量為前一層節(jié)點(diǎn)量的35%,其隱藏層第1層23節(jié)點(diǎn),第2層8節(jié)點(diǎn),第3層3節(jié)點(diǎn),共3層隱藏層結(jié)構(gòu)。該算法模型節(jié)點(diǎn)結(jié)構(gòu)可以在最小算力需求下提供最高的數(shù)據(jù)挖掘響應(yīng)效率。
該算法的核心目的是分析用戶的實(shí)際閱讀需求并推薦相關(guān)圖書,避免用戶在圖書館海量藏書中自行查找,以提升用戶體驗(yàn)。判斷該算法的實(shí)際效能主要有2個(gè)指標(biāo):一是使用該算法后用戶的平均閱讀時(shí)長(zhǎng)、黏性用戶比及用戶增長(zhǎng)速度;二是用戶對(duì)App的主觀評(píng)價(jià)。
平均閱讀時(shí)長(zhǎng)和用戶增長(zhǎng)速度算法較為簡(jiǎn)單,無(wú)須展開論事,但用戶黏性比計(jì)算過程略顯復(fù)雜,其核心計(jì)算思路是將每天使用時(shí)間超過4小時(shí)用戶(高黏性用戶)占比、每天保持登錄但使用時(shí)間低于4小時(shí)用戶(A型用戶)占比、無(wú)法保證每天登錄但可保證每周登錄的用戶(B型用戶)占比、無(wú)法保證每周登錄但在之前半年內(nèi)曾登錄用戶(C型用戶)占比、超過半年未登錄用戶(D型用戶)占比等進(jìn)行加權(quán)累加,其計(jì)算公式如式(3):
N=10·NA+6·NB+3·NC+1·ND
(3)
式中,NA、NB、NC、ND分別為上述A、B、C、D四型用戶的占比,均為百分比格式轉(zhuǎn)為[0,1]區(qū)間上的小數(shù)表示,N為用戶黏性總評(píng)價(jià)值。
使用該模型算法的圖書推薦頁(yè)面已經(jīng)在3個(gè)月前投入公測(cè),分析公測(cè)期間投入該系統(tǒng)前及投入該系統(tǒng)90天戶的上述3個(gè)評(píng)價(jià)指標(biāo)的變化量,可以得到表1。
表1中,數(shù)據(jù)比較方法為SPSS下雙變量t校驗(yàn)方法,當(dāng)t<10.000時(shí)認(rèn)為存在統(tǒng)計(jì)學(xué)差異,當(dāng)P<0.05時(shí)認(rèn)為結(jié)果處于置信空間內(nèi),當(dāng)P<0.01時(shí)認(rèn)為結(jié)果有顯著的統(tǒng)計(jì)學(xué)意義。分析中,應(yīng)用該系統(tǒng)后3個(gè)月,所有用戶的日均閱讀時(shí)長(zhǎng)增長(zhǎng)4.54倍,A型用戶(日均閱讀超過4小時(shí)用戶)占比增長(zhǎng)2.38倍,用戶黏性評(píng)價(jià)結(jié)果增長(zhǎng)5.53倍,日用戶增長(zhǎng)率增長(zhǎng)4.61倍。實(shí)際用戶數(shù)據(jù)表現(xiàn)證明,該算法對(duì)用戶體驗(yàn)有顯著促進(jìn)作用(P<0.01)。
表1 用戶表現(xiàn)結(jié)果對(duì)比表
2020年12月1日~10日(應(yīng)用前),2021年4月1日~10日(應(yīng)用后),分2次在App內(nèi)推送調(diào)查問卷,第一次回收有效問卷1 135份(推送時(shí)注冊(cè)用戶量26.54萬(wàn)人,成功推送問卷9.17萬(wàn)份)第二次回收有效問卷1 861份(推送時(shí)注冊(cè)用戶量30.93萬(wàn)人,成功推送問卷12.69萬(wàn)份),要求用戶給出1~5星評(píng)價(jià)。評(píng)價(jià)分?jǐn)?shù)折算中,5星評(píng)價(jià)計(jì)10分,4星評(píng)價(jià)計(jì)7分,3星評(píng)價(jià)即3分,2星評(píng)價(jià)計(jì)1分,1星評(píng)價(jià)計(jì)0分。整體評(píng)價(jià)結(jié)果如表2所示。
表2 用戶滿意度調(diào)查結(jié)果表
表2中,t值與P值計(jì)算方法如前文表1,可以看到,問卷回收量在問卷推送量中的占比提升18.55%,4星及5星評(píng)價(jià)人數(shù)提升1.64倍,綜合評(píng)價(jià)得分提升1.42倍。發(fā)現(xiàn)用戶參與軟件的積極性得到一定程度提升(0.01
針對(duì)圖書館App2.0的閱讀推廣算法模型,充分提升了對(duì)特定用戶推薦滿足其閱讀期望圖書的人工智能應(yīng)用效果,進(jìn)而提升了用戶黏性和用戶滿意度,加速了平臺(tái)注冊(cè)用戶的增長(zhǎng)速度,進(jìn)而使得公共圖書館社會(huì)資源可以在移動(dòng)互聯(lián)網(wǎng)時(shí)代發(fā)揮更大的社會(huì)效益。該算法仍然存在一定不足,即其只能對(duì)文本型圖書進(jìn)行推薦(文史類、小說類、紀(jì)實(shí)傳記類及部分教輔書和工具書),畫冊(cè)、圖冊(cè)等圖書并不能在該算法支持的范圍內(nèi)。所以該算法仍需要之前基于關(guān)鍵詞檢索排序的傳統(tǒng)算法進(jìn)行輔助支持才可以滿足系統(tǒng)運(yùn)行需求。未來研究中將研究用戶對(duì)圖畫類內(nèi)容的閱讀傾向,使該算法效能得到更大程度提升。