林榮智, 苗耀鋒
(西安外事學院 工學院, 西安 710077)
隨著互聯網技術的發展,社交網絡、大數據等技術也不斷地被應用到社會各個場景中[1-4].由于海量數據不斷涌向網絡用戶,學界提出了推薦系統來解決其嚴重的信息過載問題[5-8].該系統通過采集用戶的個人信息和操作數據,精準地向用戶提供有效信息[9-10],然而,由于該系統存儲了用戶的敏感隱私信息,所以用戶的信息與財產安全面臨較大的威脅,即互聯網中的推薦系統存在用戶隱私保護的問題[11-16].
為了解決系統中用戶隱私保護的問題,本文擴展并改進了傳統的推薦系統,提出了保護用戶隱私的新型推薦系統.其主要原理是以推薦項目為中心,基于項目特征相似度的計算結果,將系統中所有推薦項目進行詳細劃分,推薦給系統中不同興趣愛好的用戶.因該系統只需采集用戶對項目的評價信息,并不會存儲其隱私信息和敏感數據,所以這種新型的推薦系統可以有效地保護用戶的隱私信息.
一般而言,互聯網推薦系統中推送信息的準確度與用戶信息的完整度是成正比的,而與隱私保護程度成反比.在推薦系統中,用戶隱私泄露的主要途徑包括服務器直接獲取、黑客竊取和其他系統泄露等幾種方式.而用戶隱私信息主要包括個人信息、操作數據和關注信息三個方面,其中,個人信息主要是指用戶的姓名、性別和身份證號等高敏感度隱私信息;操作數據是指用戶的網頁訪問數據、提交信息等具體數據;關注信息主要包括用戶在各個網站的定制信息等內容.目前,學術界在該問題的研究上主要使用三種隱私保護技術,即基于密碼學技術、數據干擾技術和k匿名技術.基于密碼學的常用技術就是安全多方計算、同態加密算法等,而這些都使用了復雜的密碼學計算方法,推薦系統的用戶信息都具有龐大的規模,所以基于密碼學的技術安全性雖高,但并不實用;k匿名技術即是去除敏感信息來保證用戶的隱私信息不泄露,這種技術不能抵抗鏈接攻擊,同時也會減少數據表中的信息,所以也難以應用到實際的推薦系統中;數據干擾技術是使用一些算法修改或干擾原始數據,從而保護用戶的隱私,這種算法會直接導致數據的準確性和完整性受損.綜上所述,以上技術并不能解決推薦系統的隱私保護問題,而本文使用的推薦算法與這三種技術都不一樣,本文的算法計算相對簡單,不像基于密碼學技術那樣復雜,并且不直接對用戶的隱私信息進行操作,所以也不會減少系統中的數據,較好地保持系統數據的準確性與完整性.


圖1 系統工作流程Fig.1 Workflow of system
圖1中項目之間的相似性模型計算過程包含項目屬性數據量化、項目之間相似性計算和確定項目鄰居集合.具體過程如下:
1) 項目屬性數據量化.一般而言,項目的屬性數據是使用向量表示的,即對項目的屬性數據分為n個相互獨立的分量,從而刻畫出項目的具體特征.項目屬性矩陣為[ci1,ci2,…,cin],cin表示第i個項目的第n個特征屬性的特征值,該特征值的類型有描述型和數值型兩種.系統通常使用TF-IDF公式描述屬性特征值,數值型的特征值包括固定值和區間值兩種,固定值可以直接參與計算,而對于區間值,系統使用區間占用的比例值來計算.

(1)
3) 根據式(1)項目之間相似度的計算結果便可度量項目之間的相似性,從而確定項目的鄰居集合.通常相似性度量方法具有不準確和數據稀疏的問題,為了避免這些問題,本文使用了新算法度量項目之間相似性,工作流程為:
① 總結所有評價了第i個項目或第j個項目的用戶集合,用Sij來表示,rui表示任意用戶u評價第i個項目的評價信息,令S代表所有用戶,則Sij表達式為
Sij={u|u∈S∩(rui≠0∪ruj≠0)}
(2)
② 根據Sij中用戶的評分,預測未被用戶評分項目的評價結果,在用戶集合Sij中使用Pearson相關性分析度量i項目和j項目之間的相似性,得到當前項目的鄰居集合.系統中預測用戶u對未評價的第i個項目評價結果為
(3)
式中,Ei為第i個項目的鄰居集合.之后系統便可以計算Sij中任意用戶u評價第i個項目的評價信息Rui,即
(4)
具體推薦系統實現步驟如下:


4) 根據預測評分信息對用戶推薦排名靠前的項目.

本文對提出的推薦系統進行了必要的實驗.其中,實驗需要的原始數據集來自MovieLens,由Minnesota大學的GroupLens課題組提供.Movie-Lens數據集主要用于同名的電影推薦系統,而該推薦系統需要用戶評價瀏覽過的電影,并利用評價信息預測并推薦用戶喜歡的電影.需要指出的是,MovieLens數據集是學術界用來實驗推薦系統的經典數據集,其內容包括了943位用戶評價1 682個項目的10萬條評分數值.其數值是1~5的離散整數,代表了用戶對某項目的喜歡程度,其基本信息如表1所示.

圖2 推薦系統的實現框架Fig.2 Implementation framework of recommendation system

表1 MovieLens數據集基本信息Tab.1 Basic information of MovieLens data set
在該數據集中,本文選取了300個用戶、600部電影項目的評分數值,同時,得到了按照用戶統計信息排布的所有電影項目的屬性特征矩陣.本文設置80%的評價數據作為推薦系統的訓練數據集,20%的數據作為推薦系統的測試數據集.由于本文的推薦系統是以項目為中心,所以需要設定項目的屬性分類,600部電影項目的屬性分類被分為18種類型,分別是動作、冒險、動畫、兒童、喜劇、犯罪、紀錄片、戲劇、幻想、恐怖、音樂劇、懸疑、浪漫、科幻、驚悚、戰爭、西部和黑色電影.
具備所有的屬性分類之后,則需要量化所有項目的屬性數據.在MovieLens數據集中,假設電影m是一個懸疑驚悚片,即該電影具有兩個或多個屬性,則其具備的屬性向量的分量就是1,其他分量是0,則電影m的屬性矩陣就是[0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0].使用這種方法量化所有的電影項目之后,便可根據本文提出的方法計算項目的屬性相似矩陣.再使用式(1)計算項目之間的相似度,從而將所有的項目劃分為多個群組,并設群組數量為Ng.其中,一個群組所包含的項目數為s,該項目參數是根據相似度的計算結果閾值來確定的.
本文實驗引入了3個評價指標:均方根誤差(RMSE)、平均絕對誤差(MAE)和歸一化累計增益(NDGG),分別描述了推薦系統的評分準確性、評分偏差性和推薦準確度.均方根誤差的表達式為
(5)

平均絕對誤差定義為任意觀測值與均值差的絕對值均值,其計算表達式為
(6)

在實驗中歸一化累計增益(NDGG)用來測量推薦系統的排序質量,即對比推薦系統的排序和實際數據集中的評分排序.歸一化累計增益的計算表達式為
(7)
(8)
式中:NDGGp為推薦系統中排名前p的NDGG值;DGGp為根據實際評分結果計算出的排名前p的累計增益;IDGGp為排名前p的理想累計增益;reli為該項目的實際評分.

一般而言,第1組對比實驗的推薦效果是相對較差的,其原因主要是該實驗未對項目本身進行研究學習,只將用戶對于電影項目的平均評分因素加入計算過程.而第2組實驗的準確度要高于本文的推薦系統,其原因主要是該方法使用了更細數據粒度的訓練數據集.
本文的實驗可以被分為2部分,第1部分的實驗主要研究了項目屬性維度和項目之間相似性關系,對比了兩組方案與本文推薦系統在不同屬性維度時的推薦效果.為了便于比較本文推薦系統的應用效果,引入損失率δ這一指標,即
(9)
式中:aPMF為概率分解算法計算的評分值;a為實際評分值.本文分別選擇了項目屬性維度D為5、10和18,其他輸入均設為令推薦效果最佳的最優值.運行本文的推薦系統與兩組實驗進行對比,對比結果如表2所示.表3給出了推薦系統不同維度損失率的結果對比.

表2 RMSE和NDGG的結果對比Tab.2 Comparison in results between RMSE and NDGG

表3 損失率的結果對比Tab.3 Comparison in results of loss rate %
從表2中可以看出:若項目屬性維度增加,第1組對比實驗的準確性不變;第2組對比實驗的準確性剛開始有一點降低,隨后有所提高;本文推薦系統的準確性隨維度變化不大,其原因是隨著項目屬性維度的增加,項目的數據信息更加詳細,進而降低推薦誤差,從而提高了算法的推薦準確度.如果算法的設計比較合理,其準確度也沒有太大的變化,甚至會略微降低一點.然而需要指出的是,屬性維度的增加將使用更多的計算資源,過多增加屬性維度也會降低系統運行效率,但本文推薦系統的NDGG5指標不易受到項目屬性維度數量的影響,效果明顯,實用且值得推廣.
第2部分的實驗主要研究了項目的屬性數量和最近鄰居數量對數據粒度的影響,數據粒度是指推薦數據的細致度,可以衡量出推薦系統的推薦效果.圖3、4為數據粒度隨屬性數量和最近鄰居數量的變化狀態.

圖3 項目屬性數量對推薦系統數據粒度的影響Fig.3 Influence of project attribute number on data granularity of recommendation system
由圖3可知,若項目屬性數量增加,能夠反映推薦系統推薦效果的3個指標MAE、RMSE和NDGG5也會逐漸穩定.其主要原因是項目屬性數量的增加能夠使電影項目屬性數據更加詳細,其相似度的計算結果也會更精確,進而推薦效果也會變好.而項目屬性數量增加也會增大用戶隱私暴露的風險,同時增加系統計算資源的消耗.
由圖4可知,項目屬性數量確定時,若最近鄰居數量增加,反映推薦效果的指標MAE、RMSE和NDGG5就會逐漸變壞.其主要原因是項目群組的規模增加,推薦系統的數據粒度便會增加,由此會引起提取數據的困難.根據圖3可知,項目的屬性數量增加到15之后,系統的推薦準確度基本保持不變,所以項目屬性數量最佳區間應是[10,15].
本文對社交網絡中推薦系統的隱私保護問題進行了深入研究,在一般推薦系統的基礎上,基于項目屬性的相似度將所有項目劃分為若干個項目群組,從而得到項目的最近鄰居集合,推薦給具體的用戶.該系統無需采集用戶的隱私信息,大幅降低了用戶隱私泄露的風險.實驗結果證明:雖該系統在推薦準確性上有損失,但能夠更好地保護用戶的隱私,具有較高的實用與推廣價值.