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