徐永華,雷東升
(1. 金陵科技學院計算機工程學院,江蘇 南京 211169;2. 北京工業(yè)大學,北京 100124)
互聯(lián)網(wǎng)與云計算時代將網(wǎng)絡用戶的需求由資源獲取轉(zhuǎn)向為興趣資源獲取。在飛速發(fā)展的網(wǎng)絡時代中,對不同用戶的學習、工作、生活等方面均有著重要提取作用的推薦技術(shù)[1]應運而生,其憑借自身的高效優(yōu)勢,廣泛應用于電影、社交等自媒體領域中。推薦算法[2]作為技術(shù)核心,決定著推薦技術(shù)的應用性與適用性,并已經(jīng)成為近幾年的熱點研究課題之一。
基于上述背景,文獻[3]根據(jù)五免費午餐定理與rice算法,選取推薦系統(tǒng)結(jié)構(gòu),根據(jù)問題特征與算法性能間的相關(guān)性,轉(zhuǎn)化推薦問題為多分類問題,引用多分類支持向量機算法完成智能推薦;文獻[4]利用軟命題邏輯、軟決策規(guī)則以及軟真度等,完成邏輯語義解釋、決策信息系統(tǒng)轉(zhuǎn)換以及決策規(guī)則評價,得到一種智能推薦算法。
但是盡管文獻方法已被普及使用,但隨著高新技術(shù)與算法的不斷提出,推薦方法性能要求也在逐漸提升。因此,本文通過改進Slope One算法,提出大數(shù)據(jù)智能化推薦方法。結(jié)合使用者與項目相似度的度量策略,抑制使用者評分預測過程中非相似項目造成的干擾,以及使用者之間的影響,增加預測精準度;通過進一步劃分使用者屬性特征類別,使評分更有參考價值,推薦結(jié)果更具客觀性。
作為基于使用者評分的Slope One算法,一般情況下,可通過下列一元線性回歸模型來預測評分
F(u)=u+b
(1)
式中,使用者為u,代數(shù)項矩陣的偏差均值為b。讓使用者w、x、y、z給兩個項目分別打分,得到表1所示的不同使用者評分矩陣。
表1 基于各項目的不同使用者評分矩陣
因此,使用SlopeOne算法的一元線性回歸模型式(1),預測二號項目的使用者z打分結(jié)果,如下所示:
(2)
當目標使用者和其他使用者存在一致評分或者兩者一并給出同一項目的評分時,SlopeOne算法才能達成預測目的。
假設訓練集合為χ,i、j,分別表示待評分的項目,對兩項目給出過評分的使用者集合為Si,j(χ),有card(Si,j(χ))個使用者對兩項目一并給出過評分,則采用下列計算公式求解Slope One算法偏差
(3)
若與項目j一并給出評分的項目集為Rj,因此關(guān)于項目j的使用者u評分預測表達式為
(4)
由于SlopeOne算法只面向項目的使用者評分均差求解,缺乏項目的重要性考量,因此,通過在SlopeOne算法中賦予各項目權(quán)值,得到一種加權(quán)SlopeOne算法,并將其作為改進的基本算法,以用于完成大數(shù)據(jù)智能化推薦任務。該算法的項目偏差權(quán)值為一并對兩項目給出過評分的使用者個數(shù),若j是待預測的目標項目,則下式即為加權(quán)SlopeOne算法下目標使用者u對該項目的預測評分
(5)
當使用者評分矩陣中使用者x與使用者y的偏好存在差異較大時,根據(jù)使用者x的打分結(jié)果去預測使用者y,會大幅降低預測精準度,因此,基于上述SlopeOne算法,結(jié)合使用者與項目相似度的度量策略,提出一種SlopeOne優(yōu)化算法,以抑制使用者評分預測過程中非相似項目造成的干擾,以及使用者之間的影響。
從使用者角度出發(fā),構(gòu)建一種信任機制[5]的SlopeOne優(yōu)化算法,度量各個使用者之間的相似性。當推薦系統(tǒng)中的信任相關(guān)性顯著時,網(wǎng)絡傳播將助推使用者間信任相關(guān)性的延伸,若使用者ue對使用者uf具有信任顯著,使用者uf對使用者ug具有信任顯著,則即使使用者ue與使用者ug間無明顯信任相關(guān)性,依然存在一定的信任相關(guān)性。假設使用者ue與uf明顯信任的相關(guān)性及其最短間距分別為tueuf、d,因此推導出信任值的計算公式,如下所示:
(6)
信任值t′ueuf取值范圍為[0,1],1與0分別描述兩使用者間信任相關(guān)性的有與無。隨著明顯信任最短間距d的增加,內(nèi)耗、噪聲以及誤差不斷升高,因此,以簡化運算流程、減少內(nèi)耗為目標,將間距d限制在3以下。
綜上所述,為求解項目i、j之間的誤差,改寫偏差計算式(3)為下列表達式
(7)
根據(jù)上式解得的項目i、j誤差值dev′i,j,結(jié)合加權(quán)SlopeOne算法式(5)解得的預測評分結(jié)果P′u,j,獲取基于使用者相似度的預測評分。
(8)
該相似度sim(i,j)的取值范圍為sim(i,j)∈[-1,1],在不同取值區(qū)間中,項目i、j存在不同的相關(guān)性,如下列條件方程式所示
(9)
由此可知,當項目i、j存在正比關(guān)系時,sim(i,j)趨近于1,相似性較大;當關(guān)系是反比關(guān)系時,sim(i,j)趨近于-1,相似性較小;當兩者不相關(guān)時,無相似關(guān)系。
綜上所述,基于項目相似度,用戶u對項目j的預測評分結(jié)果如下所示
(10)
根據(jù)上式解得的預測評分,結(jié)合下列加權(quán)Slope One算法解得的項目誤差結(jié)果dev″i,j,獲取項目相似度的最終預測評分
(11)
式中,使用者集Si,j的人數(shù)為|Si,j|。
為提升智能化推薦結(jié)果的精準性,融合使用者相似度SlopeOne算法與項目相似度SlopeOne算法的預測結(jié)果,通過進一步劃分使用者屬性特征類別,使評分更有參考價值,推薦更具客觀性。
引用蟻群聚類算法[7],劃分使用者特征類別,步驟如下
1)對于|Si,j|個使用者,設定各年齡段中的任意使用者為初始簇中心Cu;
2)對比各簇中心的使用者與其他使用者,求解使用者間距,完成簇劃分。假設使用者ue與uf的年齡、性別以及職業(yè)等屬性特征相似度分別是simH(e,f)、simX(e,f)以及simO(e,f),則基于屬性特征相似度simu(e,f)的計算公式如下所示:
simu(e,f)=αsimH(e,f)+βsimX(e,f)
+(1-α-β)simO(e,f)
(12)
式中,α、β取值范圍均為[0,1],用于調(diào)整綜合相似度中各特征的干擾度。
關(guān)于性別屬性特征值,假設使用者ue與uf的性別分別為Xue、Xuf,則性別屬性相似度simX(e,f)的計算公式如下所示
(13)
關(guān)于年齡屬性特征值,以不同年齡段的使用者為年齡相似度的整體運算對象,設定完全相似值為年齡差不大于5,若使用者ue與uf的年齡分別為Hue、Huf,則年齡屬性相似度simH(e,f)的計算公式如下所示
(14)
關(guān)于職業(yè)屬性特征值,設定使用者ue與uf的職業(yè)分別為Oue、Ouf,則職業(yè)屬性相似度simO(e,f)的計算公式如下所示
(15)
3)設定新的簇中心為最近似于簇中心的使用者,按照以下步驟完成簇中心更新,返回第步驟2)進行循環(huán)計算:
①求解各類別中全部使用者的平均年齡;
②獲取各類別中使用者性別與職業(yè)數(shù)的極大值;
③將類別的當前簇中心設為平均年齡、性別與職業(yè)極大值;
④求解年齡、性別以及職業(yè)等屬性特征下當前簇中心與類別內(nèi)全部用戶的相似性;
⑤新簇中心即為與當前簇中心具有最小歐幾里得距離[8]的使用者。
4)在分類完全全部使用者后,取得使用者類簇。
結(jié)合使用者屬性相似度simu(e,f)與使用者相似度的預測評分,得到下列基于使用者的綜合相似度界定公式
simnew_u(e,f)=μsimPu(e,f)+(1-μ)simu(e,f)
(16)
式中,μ為修正系數(shù)[9],負責修正兩相似度的互相干擾力度。
綜上所述,推導出充分考慮了項目、使用者及其屬性的預測評分公式,如下所示
(17)
根據(jù)所得預測評分值,與預設評分閾值作對比,若預測分值比閾值大,則該分值對應的數(shù)據(jù)即為大數(shù)據(jù)智能化推薦結(jié)果,將其推薦給相應使用者。
仿真環(huán)節(jié)選取Epinions與FilmTrust兩個數(shù)據(jù)集[10],前者包含項目的輔助數(shù)據(jù),個數(shù)增幅比使用者個數(shù)增幅大,而后者則在預處理之后,有關(guān)噪聲已被去除,得到的文本元素均呈小寫形式。表2與表3所示分別為兩數(shù)據(jù)集與實驗環(huán)境相關(guān)參數(shù)。
表2 數(shù)據(jù)集相關(guān)參數(shù)
表3 實驗環(huán)境相關(guān)參數(shù)
為客觀評價本文方法的評分與推薦性能,分別采用均方根誤差、平均絕對誤差以及歸一化折現(xiàn)累計收益等指標進行量化評估,計算公式分別如下所示
(18)
(19)
(20)
式中,T為待預測評分的集合,i,u與Pi,u分別為預測評分結(jié)果與實際評分結(jié)果,Zk為歸一化折現(xiàn)累計收益指標的標準化因子,Pφ為推薦列表中項目i所在位置φ的對應分數(shù)。
按一定比例劃分Epinions與Film Trust兩個數(shù)據(jù)集,利用五折線交叉驗證方法展開多次仿真,求取各指標結(jié)果均值后,將其與文獻方法進行對比,檢驗方法有效性。
圖1所示為文獻方法與本文方法對Epinions與Film Trust兩數(shù)據(jù)集分別給出推薦的均方根誤差指標評估結(jié)果。由此可以看出,本文方法對比文獻方法的推薦均方根誤差更小,且Epinions數(shù)據(jù)集的推薦結(jié)果更能滿足使用者需求。這是因為從使用者角度出發(fā),構(gòu)建了信任機制Slope One優(yōu)化算法,度量了各使用者間的相似性。
圖1 均方根誤差對比圖
兩數(shù)據(jù)集在不同推薦方法下的平均絕對誤差結(jié)果如圖2所示。根據(jù)圖中對比情況可以看出,相較于文獻方法,本文方法的平均絕對誤差值大幅下降,說明該方法能夠相對理想地將目標項目針對性地推薦給使用者。究其原因是針對智能化推薦項目,引入了皮爾森相關(guān)系數(shù)來改進加權(quán)Slope One算法,度量了各項目間的相似程度。
圖2 平均絕對誤差對比圖
經(jīng)各方法對兩數(shù)據(jù)集展開推薦后,得到圖3所示的歸一化折現(xiàn)累計收益指標評價結(jié)果。通過數(shù)值對比可知,相對文獻方法,本文方法因融合了使用者相似度Slope One算法與項目相似度Slope One算法的預測結(jié)果,并對用戶特征類別做了進一步劃分,因此指標評估水平始終處于較高標準。
圖3 歸一化折現(xiàn)累計收益對比圖
大數(shù)據(jù)推薦技術(shù)為幫助使用者在大規(guī)模數(shù)據(jù)中探索到有用信息提供了一種有效途徑。本文構(gòu)建的大數(shù)據(jù)智能化推薦方法具有高精度的推薦性能,但仍需針對以下弊端加以改進:根據(jù)使用者興趣與時間的負相關(guān)性關(guān)系,將使用者興趣遷移問題作為方法的變量指標,完善推薦性能;下一階段應針對離線運算能力做深入探究;應嘗試結(jié)合更新型的推薦技術(shù)與算法,研究出推薦更優(yōu)、運算更快的方法;使用者不同的行為特征也存在一定的隱藏信息,將行為特征考慮在內(nèi),有助于提升推薦精準度;在今后的研究中,需編程實現(xiàn)推薦的代碼,令方法更高效地運行。