杜 蘭,陳琳琳,張 麗,田 越
(南京理工大學(xué)紫金學(xué)院,江蘇 南京 210023)
如今,大數(shù)據(jù)、區(qū)塊鏈和人工智能等技術(shù)席卷各個(gè)領(lǐng)域,沖擊了傳統(tǒng)圖書館的運(yùn)行模式,驅(qū)動(dòng)著圖書館向數(shù)字化、智能化和智慧化演進(jìn)。智慧圖書館的核心是“感知、智能、融合”,它借助高新智能技術(shù)來推動(dòng)圖書館轉(zhuǎn)型,滿足讀者個(gè)性化、專業(yè)化和人性化的智慧型知識服務(wù)需求[1]。智慧圖書館服務(wù)實(shí)踐主要有基于RFID/手機(jī)/網(wǎng)絡(luò)的自助借還服務(wù)、智能清點(diǎn)/定位服務(wù)、智能座位預(yù)約服務(wù)、3D/AR/VR 虛擬導(dǎo)航服務(wù)等[2]。
近年來,人臉識別技術(shù)在人工智能生物特征識別領(lǐng)域發(fā)展迅速,已在大眾生活中被廣泛使用。然而,人臉數(shù)據(jù)泄露事故頻發(fā),人臉識別技術(shù)的安全性與隱私保護(hù)受到廣泛關(guān)注。人臉識別技術(shù)并不是本身不安全,而是人臉數(shù)據(jù)沒有有效監(jiān)管從而存在隱私泄露的風(fēng)險(xiǎn),因此研究在安全可信的環(huán)境下進(jìn)行人臉識別迫在眉睫。與此同時(shí),推薦系統(tǒng)已逐漸成為智慧圖書館研究人員關(guān)注的研究熱點(diǎn)。然而推薦系統(tǒng)的基石是用戶歷史數(shù)據(jù)集,它模糊了隱私和隱私數(shù)據(jù)的邊界,存在隱私泄露風(fēng)險(xiǎn)。因此,在有效保護(hù)用戶隱私的基礎(chǔ)上進(jìn)行精準(zhǔn)推薦是一項(xiàng)值得挑戰(zhàn)的工作。
在不可信的開放“互聯(lián)網(wǎng)+”時(shí)代,區(qū)塊鏈恰逢其時(shí),它的技術(shù)特性使其很適合存儲(chǔ)和保護(hù)隱私數(shù)據(jù),給人臉識別技術(shù)和推薦系統(tǒng)的隱私保護(hù)帶來發(fā)展契機(jī)。因此,本文設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)基于區(qū)塊鏈的可信智慧圖書館系統(tǒng),充分運(yùn)用人臉識別技術(shù)和推薦系統(tǒng)的優(yōu)勢,為用戶提供方便。
1.1.1 區(qū)塊鏈概述
區(qū)塊鏈?zhǔn)钦狭朔植际酱鎯?chǔ)、P2P 傳輸服務(wù)、共識機(jī)制、加密算法等技術(shù)的分布式記賬技術(shù),它通過加密塊鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)來生成和更新數(shù)據(jù),利用自動(dòng)化腳本代碼生成的智能合約來編程和操作數(shù)據(jù)。它具有去中心化(Decentralized)、免信任(Trustless)、時(shí)間戳(Time Stamp)、加密算法(Cryptography)和智能合約(Smart Contract)等技術(shù)特征。
1.1.2 區(qū)塊鏈在圖書館領(lǐng)域的研究與應(yīng)用
國內(nèi)外圖書館界已經(jīng)開展了很多相關(guān)研究工作。ROD C 在2016 年指出區(qū)塊鏈?zhǔn)菙?shù)字資產(chǎn)的新架構(gòu),開啟了區(qū)塊鏈技術(shù)在圖情檔領(lǐng)域的研究[3]。2018 年4 月美國圖書館協(xié)會(huì)(American Library Association,ALA)將區(qū)塊鏈技術(shù)列為未來圖書館重大變革性技術(shù)。MANLEY S 在2019 年提出區(qū)塊鏈有助于保護(hù)版權(quán)[4]。區(qū)塊鏈在我國圖書館的應(yīng)用研究有信息安全共享模型[5]、讀者隱私保護(hù)[6]、數(shù)字版權(quán)管理[7]等。
1.2.1 人臉識別概述
自從1988 年人臉身份識別首篇論文[8]發(fā)表以來,經(jīng)過幾十年的發(fā)展,人臉識別技術(shù)已經(jīng)日臻成熟。目前,人臉識別技術(shù)已廣泛應(yīng)用在支付系統(tǒng)、門禁系統(tǒng)、身份驗(yàn)證等業(yè)務(wù)上。
1.2.2 人臉識別在圖書館領(lǐng)域的研究與應(yīng)用
國內(nèi)外已有很多關(guān)于人臉識別在圖書館領(lǐng)域的相關(guān)研究,RAVIKANTH M 等設(shè)計(jì)與實(shí)現(xiàn)了新的圖書館門禁系統(tǒng)[9];周東等介紹了中國計(jì)量大學(xué)圖書館開發(fā)人臉識別應(yīng)用系統(tǒng)的實(shí)施方案[10];西南大學(xué)、哈爾濱工業(yè)大學(xué)和上海海事大學(xué)等開展了自助刷臉借書和刷臉預(yù)約座位等應(yīng)用。
1.3.1 推薦系統(tǒng)概述
推薦系統(tǒng)是解決信息過載的利器,目前已被Google、Amazon、百度、淘寶、去哪兒網(wǎng)、攜程網(wǎng)實(shí)際應(yīng)用,也得到了良好的推薦效果。
1.3.2 推薦系統(tǒng)在圖書館領(lǐng)域的研究及應(yīng)用
推薦系統(tǒng)在我國圖書館的研究主要有基于聚類的推薦方法、基于協(xié)同過濾的推薦方法、基于關(guān)聯(lián)規(guī)則的推薦方法、混合推薦方法和基于用戶畫像的推薦方法[11]。
系統(tǒng)流程圖如圖1 所示。
(1)用戶注冊。將用戶注冊信息(姓名、照片、年齡、性別、專業(yè)、職業(yè)、地址等)錄入數(shù)據(jù)庫。
(2)入館。用戶A、用戶B 刷臉進(jìn)行區(qū)塊鏈和人臉識別雙重身份認(rèn)證。
(3)個(gè)性化推薦。系統(tǒng)根據(jù)區(qū)用戶最近的行為信息、內(nèi)容信息和互動(dòng)信息推薦相關(guān)書籍。
(4)借/還書。用戶A 提出借書申請,如果圖書館里有可借閱的書籍,則用戶A 既可以從圖書館直接借走,也可以通知目前圖書館區(qū)塊鏈上記錄的這本書的借閱者用戶B 直接借給用戶A。
用戶B 提出還書申請,既可以直接還給圖書館,也可以直接借給經(jīng)圖書館區(qū)塊鏈上記錄的圖書借閱申請者用戶A。
(5)互動(dòng)。用戶提出互動(dòng)申請,推薦引擎會(huì)把學(xué)習(xí)交流、討論分享信息推薦到具有相同興趣的其他用戶。
本文基于Django 開源框架,使用Fabric 的Python SDK 與區(qū)塊鏈網(wǎng)絡(luò)通信來搭建去中心化的可信智慧圖書館系統(tǒng),其整體架構(gòu)圖如圖2 所示。
(1)視圖層:系統(tǒng)用戶交互層,是使用HTML5 編寫的系統(tǒng)各種應(yīng)用程序頁面。
(2)業(yè)務(wù)邏輯層:系統(tǒng)的核心業(yè)務(wù)層,該層的基礎(chǔ)是使用 Hyperledger Composer 的一系列組件工具向上提供REST APIs 服務(wù)接口。
(3)數(shù)據(jù)資源層: MySQL 存儲(chǔ)系統(tǒng)中的基礎(chǔ)數(shù)據(jù),F(xiàn)abric 將數(shù)據(jù)地址保存在區(qū)塊鏈中。
圖1 系統(tǒng)流程圖
圖2 系統(tǒng)架構(gòu)圖
3.1.1 總體設(shè)計(jì)
結(jié)合人臉識別技術(shù)的圖書館雙重身份認(rèn)證流程如圖3 所示。
(1)人臉采集:當(dāng)用戶首次登錄系統(tǒng)時(shí),需要上傳一張真實(shí)的人臉照片來完成注冊操作。注冊成功后,系統(tǒng)返回Public Key。系統(tǒng)獲取上傳的圖像,經(jīng)過預(yù)處理、提取人臉特征值、對人臉特征降維之后,形成人臉特征數(shù)據(jù)集,再進(jìn)行人臉特征分類訓(xùn)練后將訓(xùn)練好的人臉信息數(shù)據(jù)寫入數(shù)據(jù)庫,將數(shù)據(jù)地址和數(shù)據(jù)操作寫入?yún)^(qū)塊鏈并驗(yàn)證。
(2)數(shù)據(jù)匹配與處理:在系統(tǒng)進(jìn)行身份認(rèn)證時(shí),利用圖書館的攝像頭實(shí)時(shí)采集用戶的人臉視頻提取圖像,提取人臉特征形成數(shù)據(jù)集,并根據(jù)用戶ID 從區(qū)塊鏈數(shù)據(jù)庫中獲取數(shù)據(jù)集的數(shù)據(jù)庫原始地址和操作記錄,查找到該用戶的注冊特征數(shù)據(jù)集,兩者比對,并返回身份認(rèn)證結(jié)果。
(3)權(quán)限應(yīng)用:人臉識別成功,身份認(rèn)證通過以后,系統(tǒng)便會(huì)分配對應(yīng)的系統(tǒng)權(quán)限和新Public Key,用戶便可無障礙地享受圖書館的多種服務(wù),比如門禁考勤系統(tǒng)實(shí)現(xiàn)人臉識別、統(tǒng)計(jì)用戶進(jìn)館時(shí)長等功能;圖書借閱管理系統(tǒng)實(shí)現(xiàn)圖書自助借閱、歸還和續(xù)借等功能;座位管理系統(tǒng)實(shí)現(xiàn)自助預(yù)約選座、預(yù)約查詢、座位使用查詢等功能;討論室預(yù)約系統(tǒng)實(shí)現(xiàn)討論室預(yù)約查詢和預(yù)訂功能;自助服務(wù)設(shè)備系統(tǒng)實(shí)現(xiàn)自助打印復(fù)印掃描、自助上網(wǎng)等功能。
圖3 區(qū)塊鏈和人臉識別雙重身份認(rèn)證流程
3.1.2 主要算法
(1)主成分分析(PCA)算法理論
PCA 的原理可以表述為:矩陣的主成分就是其協(xié)方差對應(yīng)特征向量,按照特征值的大小進(jìn)行排序,最大的特征值就是第一主成分,然后以此類推。PCA 從n 維減少到k 維的算法描述如下:
輸入:數(shù)據(jù)集X 的m 個(gè)n 維特征值,X=[x1,x2,…,xn]
①均值歸一化。計(jì)算X 所有特征的均值μj,然后令xj=xj-μj。如果特征是在不同的數(shù)量級上,還需要將其除以標(biāo)準(zhǔn)差σ2。
②計(jì)算協(xié)方差矩陣 (covariance matrix),令U=。
③計(jì)算協(xié)方差矩陣U 的特征向量(eigenvectors)和特征值。
④將特征向量按特征值大小排列成矩陣,取前k 個(gè)向量,獲得n×k 的矩陣Ureduce。
輸出: 新特征向量Y=(Ureduce)TX,Y 就是X 從n維減少到k 維的數(shù)據(jù)。
(2)支持向量機(jī)(SVM)算法理論
SVM 是一種監(jiān)督學(xué)習(xí)方法,主要目的是對數(shù)據(jù)進(jìn)行二元分類,最終在一個(gè)二分類問題中找出最優(yōu)的決策面。非線性支持向量機(jī)學(xué)習(xí)算法步驟如下:
輸入:T={(x1,y1),(x2,y2),…,(xn,yn)},xi∈Rn,yi∈{+1,-1},i∈(1,2,…,n)
①選取適當(dāng)?shù)暮撕瘮?shù)k(x,z)和懲罰參數(shù)C,構(gòu)造并求解凸二次規(guī)劃問題:
選擇a*的一個(gè)分量滿足條件,計(jì)算
輸出:分類決策函數(shù)。
3.2.1 總體設(shè)計(jì)
結(jié)合協(xié)同過濾推薦算法的推薦引擎如圖4所示。
(1)數(shù)據(jù)采集處理:數(shù)據(jù)采集處理層采集到用戶的原始數(shù)據(jù)信息后,需要進(jìn)行數(shù)據(jù)挖掘和數(shù)據(jù)預(yù)處理,得到處理后數(shù)據(jù),提取用戶的主要特征,形成用戶特征庫,保存到用戶偏好數(shù)據(jù)庫中。
(2)個(gè)性化推薦:用戶請求推薦,推薦引擎啟動(dòng)協(xié)同過濾算法,匹配目標(biāo)最近鄰居集,最終得到推薦結(jié)果。
(3)個(gè)性化服務(wù)層:個(gè)性化推薦結(jié)果為用戶提供個(gè)性化服務(wù),包括個(gè)性化檢索、個(gè)性化閱讀推薦、可視化展示、交流互動(dòng)分享、評價(jià)反饋等模塊。
3.2.2 主要算法步驟
基于用戶的協(xié)同過濾算法分為3 個(gè)步驟:(1)計(jì)算用戶之間的相似度;(2)利用統(tǒng)計(jì)學(xué)方法進(jìn)行鄰居選擇;(3)根據(jù)近鄰的歷史行為計(jì)算預(yù)測值。該算法關(guān)鍵問題是計(jì)算用戶之間的相似度,本文使用皮爾遜相關(guān)系數(shù)計(jì)算相似度,如式(1)所示:
其中,Ii∩Ij是用戶i 和用戶j 閱讀記錄的交集。rik和rjk分別表示用戶i 和用戶j 對交集中的每個(gè)具體書目k 的評分表示用戶i 和j 交集中所有書目的評分的平均值。
隨著區(qū)塊鏈和人工智能技術(shù)的日趨成熟,把這些技術(shù)應(yīng)用在現(xiàn)實(shí)場景的研究將會(huì)越來越多。本文設(shè)計(jì)與實(shí)現(xiàn)的區(qū)塊鏈下的可信高校智慧圖書館系統(tǒng),首先利用區(qū)塊鏈保障圖書館信息資源可信共享,其次,基于人臉識別和區(qū)塊鏈實(shí)現(xiàn)雙重身份認(rèn)證,最后,設(shè)計(jì)協(xié)同過濾推薦系統(tǒng)提供用戶個(gè)性化服務(wù)。本系統(tǒng)使用Django+Python+MySQL 技術(shù)路線來編程實(shí)現(xiàn)并進(jìn)行驗(yàn)證,系統(tǒng)的響應(yīng)速度在150 ms以內(nèi),并發(fā)量達(dá)到了500,結(jié)果表明該系統(tǒng)能夠快速對較多用戶的同時(shí)操作進(jìn)行響應(yīng),滿足圖書館系統(tǒng)需求。但是在具體實(shí)際推廣中還有很多可完善的地方,主要體現(xiàn)在Fabric 區(qū)塊鏈目前只支持?jǐn)?shù)據(jù)存儲(chǔ)與查詢,功能稍顯單薄,而如何克服區(qū)塊鏈在數(shù)據(jù)搜索方面速度慢的問題,提高鏈上查詢效率也是下一步的研究方向。
圖4 結(jié)合協(xié)同過濾推薦算法的推薦引擎