劉志中,張振興,海 燕,郭思慧,劉永利
(1.河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454002; 2.華北水利水電大學(xué) 信息工程學(xué)院,鄭州 450045)
隨著服務(wù)計(jì)算、云計(jì)算、邊緣計(jì)算以及移動(dòng)計(jì)算等新型計(jì)算模式的快速發(fā)展,網(wǎng)絡(luò)上出現(xiàn)了大量跨網(wǎng)跨域的可用服務(wù),同時(shí)無線網(wǎng)絡(luò)和智能終端的快速發(fā)展與普及,也使更多的用戶可以隨時(shí)隨地調(diào)用各個(gè)領(lǐng)域的服務(wù)來完成工作業(yè)務(wù)與生活事務(wù)。然而在海量服務(wù)為用戶帶來方便的同時(shí),也導(dǎo)致了服務(wù)發(fā)現(xiàn)與服務(wù)選擇難題。此外,當(dāng)前服務(wù)系統(tǒng)通常采用“請(qǐng)求-響應(yīng)”被動(dòng)式的服務(wù)模式來處理用戶的服務(wù)需求,該模式缺乏智能性與主動(dòng)性,嚴(yán)重影響了服務(wù)資源的利用率與用戶體驗(yàn),不能滿足當(dāng)前大數(shù)據(jù)與人工智能時(shí)代下用戶對(duì)服務(wù)應(yīng)用的體驗(yàn)要求。
針對(duì)當(dāng)前被動(dòng)服務(wù)模式存在的不足,研究者提出主動(dòng)服務(wù)的思想[1-2],以使大規(guī)模用戶能夠更快捷地獲取到其迫切需要的服務(wù)。主動(dòng)服務(wù)現(xiàn)已成為服務(wù)應(yīng)用領(lǐng)域的研究熱點(diǎn)[3],其是一種運(yùn)行于Web上的新型信息服務(wù)模式,可以解決服務(wù)信息過載以及用戶需求多變而帶來的服務(wù)可擴(kuò)展性問題,在當(dāng)前動(dòng)態(tài)、互聯(lián)、智能的信息環(huán)境下,主動(dòng)捕獲用戶的個(gè)性化服務(wù)需求,并為用戶提供滿足其個(gè)性化需求的服務(wù)[4-5]。以智慧養(yǎng)老服務(wù)為例,老人在發(fā)現(xiàn)服務(wù)、使用服務(wù)等方面比常人存在更多的困難,而主動(dòng)服務(wù)模式則可以智能、實(shí)時(shí)地感知老人的需求,主動(dòng)為老人推薦亟需使用并且最適合其自身情況的服務(wù)。因此,深入開展主動(dòng)服務(wù)相關(guān)技術(shù)的研究,具有重要的理論意義與應(yīng)用價(jià)值。
主動(dòng)服務(wù)推薦是實(shí)現(xiàn)主動(dòng)服務(wù)的主要技術(shù)之一[6-7]。目前,國(guó)內(nèi)外學(xué)者針對(duì)服務(wù)推薦問題展開了大量的研究工作[8-10],其中部分基于協(xié)同過濾[7,11]、內(nèi)容[8,12]或關(guān)聯(lián)規(guī)則[13-14]為用戶推薦服務(wù),部分則基于服務(wù)質(zhì)量(Quality of Service,QoS)預(yù)測(cè)為用戶推薦服務(wù)[10,15]。然而,當(dāng)前的研究工作多數(shù)僅關(guān)注對(duì)服務(wù)模式的研究或基于QoS預(yù)測(cè)的服務(wù)推薦,忽略了服務(wù)推薦過程中用戶需求對(duì)服務(wù)推薦效果的影響,導(dǎo)致服務(wù)推薦的準(zhǔn)確性較差。
針對(duì)上述問題,本文提出一種基于用戶需求預(yù)測(cè)的主動(dòng)服務(wù)推薦方法。利用矩陣分解(Matrix Factorization,MF)算法從大量歷史服務(wù)使用數(shù)據(jù)中快速地提取用戶特征和服務(wù)特征,基于此訓(xùn)練深度學(xué)習(xí)算法實(shí)現(xiàn)對(duì)用戶服務(wù)需求的精確預(yù)測(cè),并根據(jù)所預(yù)測(cè)的服務(wù)需求選擇最合適的服務(wù)主動(dòng)推薦給用戶。
近年來,研究者針對(duì)主動(dòng)服務(wù)開展了一系列的研究。文獻(xiàn)[16]提出一種在移動(dòng)互聯(lián)網(wǎng)下基于情景感知的透明主動(dòng)服務(wù)架構(gòu),利用傳感器設(shè)備對(duì)用戶所處情景信息進(jìn)行收集并發(fā)送給云服務(wù)端,經(jīng)過服務(wù)器端的服務(wù)選擇算法處理數(shù)據(jù),最終返回給用戶一個(gè)合適的服務(wù)推薦列表。該文以智能手機(jī)代替?zhèn)鞲衅髟O(shè)備,在云服務(wù)器端進(jìn)行了模擬實(shí)驗(yàn),驗(yàn)證了所設(shè)計(jì)架構(gòu)的有效性。文獻(xiàn)[17]提出一種基于熟人模型與最小二乘支持向量機(jī)的主動(dòng)服務(wù)選擇策略,利用最小二乘支持向量機(jī)預(yù)測(cè)隨機(jī)服務(wù)列表,并基于熟人模型進(jìn)行服務(wù)分配。實(shí)驗(yàn)結(jié)果表明,該服務(wù)選擇策略不僅縮短了通信時(shí)間,而且還減少了服務(wù)組合的執(zhí)行時(shí)間,顯著提高了服務(wù)選擇的成功率。
文獻(xiàn)[4]在物聯(lián)網(wǎng)環(huán)境下對(duì)服務(wù)模式進(jìn)行研究,通過應(yīng)用模糊邏輯對(duì)服務(wù)資源進(jìn)行等級(jí)劃分和評(píng)估,提出一種三級(jí)結(jié)構(gòu)的主動(dòng)服務(wù)資源選擇策略,并在模擬物聯(lián)網(wǎng)的分布式環(huán)境下,驗(yàn)證其性能優(yōu)于隨機(jī)策略。文獻(xiàn)[5]針對(duì)當(dāng)前車聯(lián)網(wǎng)環(huán)境下被動(dòng)服務(wù)模式帶來的誤報(bào)、延報(bào)等問題,設(shè)計(jì)一種多層次感知的主動(dòng)行車服務(wù)模型,其中每一層次都作為一個(gè)智能體存在。實(shí)驗(yàn)仿真驗(yàn)證了該模型的主動(dòng)性與高效性。
此外,文獻(xiàn)[18]設(shè)計(jì)了一種基于規(guī)則歸納推理的推薦機(jī)制來預(yù)測(cè)用戶需求,利用智能手機(jī)收集用戶的情景信息以及該情景下用戶的活動(dòng)信息,并基于收集到的信息建立<時(shí)間,條件,行為>規(guī)則模型。近年來研究者嘗試引入新的方法和技術(shù)對(duì)主動(dòng)服務(wù)進(jìn)行創(chuàng)新和改進(jìn)。文獻(xiàn)[19]提出一種將邊緣化去噪自動(dòng)編碼器(mDA)與隱含因子模型相結(jié)合的混合推薦算法。通過利用mDA算法引入輔助信息來改善傳統(tǒng)CF模型的數(shù)據(jù)稀疏性,并在4個(gè)不同數(shù)據(jù)集上驗(yàn)證了其性能的提升。文獻(xiàn)[20]將概率圖模型與深度信念網(wǎng)絡(luò)結(jié)合,提出一種在線音樂推薦方法。文獻(xiàn)[21]使用循環(huán)神經(jīng)網(wǎng)絡(luò)提取文本數(shù)據(jù)的隱含特征以提升協(xié)同過濾算法的性能,并通過在2個(gè)不同稀疏程度的數(shù)據(jù)上驗(yàn)證結(jié)果,證明了其顯著的性能優(yōu)勢(shì)。文獻(xiàn)[22]將層疊降噪自動(dòng)編碼器與隱含因子模型相結(jié)合,綜合考慮用戶評(píng)分信息和評(píng)論文本信息。在亞馬遜公開數(shù)據(jù)集上驗(yàn)證結(jié)果表明,該混合推薦算法對(duì)評(píng)分預(yù)測(cè)的準(zhǔn)確性高于傳統(tǒng)推薦模型。
上述工作分別從服務(wù)模式、服務(wù)架構(gòu)等方面對(duì)服務(wù)推薦進(jìn)行研究,但未從用戶需求預(yù)測(cè)的角度出發(fā),缺乏對(duì)用戶需求的主動(dòng)感知,導(dǎo)致服務(wù)推薦的主動(dòng)性與準(zhǔn)確性較低。因此,本文提出一種基于用戶需求預(yù)測(cè)的主動(dòng)服務(wù)推薦方法,以彌補(bǔ)當(dāng)前研究工作存在的不足。
用戶需求預(yù)測(cè)是實(shí)現(xiàn)主動(dòng)服務(wù)推薦的關(guān)鍵。在網(wǎng)絡(luò)服務(wù)平臺(tái)上,存在著大量關(guān)于用戶使用服務(wù)的數(shù)據(jù),這些數(shù)據(jù)中隱藏著用戶和服務(wù)的重要特征,可以通過數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)方法來獲這些規(guī)則特征,從而預(yù)測(cè)用戶未來對(duì)不同類型服務(wù)的需求概率。用戶需求預(yù)測(cè)為實(shí)現(xiàn)主動(dòng)的服務(wù)推薦提供了重要的信息支持。
基于用戶使用服務(wù)的歷史數(shù)據(jù)可以生成<用戶-服務(wù)>矩陣。然而,<用戶-服務(wù)>矩陣具有很強(qiáng)的數(shù)據(jù)稀疏性,嚴(yán)重影響了用戶服務(wù)需求預(yù)測(cè)的準(zhǔn)確性。針對(duì)這一問題,本文采用隱語(yǔ)義模型的矩陣分解方法,從大量用戶使用服務(wù)的歷史數(shù)據(jù)中快速提取用戶特征和服務(wù)特征,形成用戶特征矩陣和服務(wù)特征矩陣,從而有效解決數(shù)據(jù)稀疏性問題。在此基礎(chǔ)上,利用用戶特征矩陣與服務(wù)特征矩陣訓(xùn)練深度學(xué)習(xí)模型并完成對(duì)用戶需求的預(yù)測(cè)。本文方法流程如圖1所示。圖中實(shí)線部分是對(duì)用戶需求的正向預(yù)測(cè),虛線部分則是利用預(yù)測(cè)值與真實(shí)值的誤差反向訓(xùn)練用戶需求預(yù)測(cè)模型。
圖1 本文方法流程
本文方法能夠彌補(bǔ)矩陣分解方法在特征提取方面的不足,其具有以下特點(diǎn):
1)從用戶與服務(wù)的交互矩陣中提取每個(gè)用戶與服務(wù)的向量,用戶向量能夠表征用戶與所有服務(wù)的不同映射關(guān)系。
2)服務(wù)向量能夠表征服務(wù)與所有用戶的不同關(guān)系映射。
3)利用深度神經(jīng)網(wǎng)絡(luò)高效的特征提取能力,通過3個(gè)隱層不斷向上的特征抽取,獲得具有高表征能力的用戶向量和服務(wù)向量表示。
矩陣分解(MF)是一種高效的特征提取方法[19,23]。基于MF可以把用戶與服務(wù)的交互矩陣分解為用戶和服務(wù)特征的共同潛在空間,進(jìn)而分別發(fā)現(xiàn)用戶對(duì)服務(wù)需求的潛在因素。
給定用戶與服務(wù)的交互矩陣R=(ru,i)U×I,矩陣的行表示一位用戶對(duì)所有類型服務(wù)的歷史使用情況,列則表示關(guān)于某一種服務(wù)的所有用戶的歷史使用情況。經(jīng)過矩陣分解分別得到用戶和服務(wù)的低秩矩陣MU×D和NI×D,其中,矩陣MU×D是U個(gè)用戶的D維潛在空間表示,而NI×D是I類服務(wù)的D維潛在空間表示,且矩陣MU×D和NI×D的乘積能還原成原始矩陣R=(ru,i)U×I,即可以通過矩陣還原預(yù)測(cè)用戶u對(duì)服務(wù)i的需求r′u,i:
(1)
從用戶和服務(wù)的整體范圍考慮,每個(gè)用戶有自己的服務(wù)使用習(xí)慣,每個(gè)服務(wù)具有自身的服務(wù)特征,因此,也可以使用帶有平均偏差的預(yù)測(cè)模型進(jìn)行矩陣還原操作。對(duì)于每個(gè)用戶服務(wù),分別引入一個(gè)偏移量bu和bi,基礎(chǔ)部分是所有需求數(shù)值的平均值a,考慮平均偏差的矩陣分解預(yù)測(cè)公式如下:
(2)
為盡可能準(zhǔn)確地表達(dá)用戶和服務(wù)特征,本文定義一個(gè)損失函數(shù)floss來衡量預(yù)測(cè)值與真實(shí)值之間的差距,并通過最小化損失函數(shù)來預(yù)測(cè)和修改參數(shù)。
損失函數(shù)的定義有很多種,本文通過計(jì)算預(yù)測(cè)值與真實(shí)值的均方誤差作為損失函數(shù),設(shè)用戶對(duì)服務(wù)的所有交互集合為H={(u,i,r)},則最小化損失函數(shù)如式(3)所示。
(3)
其中:
(4)
基于矩陣分解的用戶特征與服務(wù)特征提取算法描述如下:
算法1基于矩陣分解的特征提取算法
輸入用戶列表U,服務(wù)類型列表I,用戶對(duì)不同服務(wù)類型的歷史需求記錄列表R
輸出用戶特征矩陣M,服務(wù)特征矩陣N
1.Begin
2.構(gòu)造用戶和服務(wù)初始特征
3.For u=1→U Do//遍歷用戶列表U中的每位用戶u
4.r(u)=embed(1,8)
//通過嵌入矩陣方法初始化用戶特征,維度為1×8
5.M=r(U)//矩陣M是由所有用戶特征組成的
6.End For
7.For i=1→I Do//遍歷每個(gè)服務(wù)類型i
8.r(i)=embed(1,8)//初始化服務(wù)特征,維度為1×8
9.N=r(I)//矩陣N是由所有服務(wù)特征組成的
10.End For
11.預(yù)測(cè)用戶需求
12.通過式(1)預(yù)測(cè)用戶u對(duì)服務(wù)i的需求r′u,i
13.矩陣分解
14.通過式(3)、式(4)計(jì)算損失函數(shù)
15.M,N=gd(floss)//采用梯度下降法優(yōu)化損失函數(shù),得//到用戶特征矩陣M和服務(wù)特征矩陣N
16.迭代訓(xùn)練
17.For j=1→1 500 Do//迭代次數(shù)
18.重復(fù)步驟11
19.重復(fù)步驟13
20.End For
21.End
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)是深度學(xué)習(xí)的通用型神經(jīng)網(wǎng)絡(luò)架構(gòu),其目的是通過確定性學(xué)習(xí)將原始數(shù)據(jù)表達(dá)為隱藏性表示。DNN通過對(duì)原始數(shù)據(jù)進(jìn)行重構(gòu)輸入,從數(shù)據(jù)中學(xué)習(xí)到具有高表征的輸入和輸出的關(guān)系映射。近年來,DNN已在多個(gè)應(yīng)用領(lǐng)域取得優(yōu)異成果[24-25]。本文利用DNN 3個(gè)隱層的數(shù)學(xué)運(yùn)算學(xué)習(xí)特征表達(dá)輸出,將前一層網(wǎng)絡(luò)的輸出作為下一層的輸入,其表達(dá)形式如式(5)所示。
al=σ(wlal-1+bl)
(5)
其中:a是DNN的輸出,表示預(yù)測(cè)的用戶需求概率值;l表示網(wǎng)絡(luò)的層數(shù);w和b分別表示對(duì)應(yīng)的權(quán)重矩陣和偏倚向量;σ是激活函數(shù)。本文采用ReLU函數(shù)作為激活函數(shù),該函數(shù)的單側(cè)抑制性使神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元具有稀疏激活性,在線性函數(shù)中有更強(qiáng)的表達(dá)能力,而對(duì)于非線性函數(shù),ReLU函數(shù)非負(fù)區(qū)間為正值的特性,也解決了神經(jīng)網(wǎng)絡(luò)反向傳播求解參數(shù)時(shí)經(jīng)常會(huì)出現(xiàn)的梯度消失的問題。ReLU激活函數(shù)如式(6)所示。
(6)
在DNN的輸出層,本文采用Softmax函數(shù)對(duì)輸出結(jié)果進(jìn)行分類,進(jìn)而得到用戶對(duì)每種服務(wù)類型的需求概率。Softmax函數(shù)模型可以看作是Logistic函數(shù)模型的推廣,其本質(zhì)是把一個(gè)n維的向量映射成另一個(gè)具有相同維度表示的向量,主要用于多分類問題,對(duì)于不同類別的輸入,分別用一個(gè)概率值表示輸出,且所有類別的概率和為1。Softmax函數(shù)表達(dá)式如下:
(7)
其中,j=1,2,…,K。DNN通過反向傳播求解最適合的神經(jīng)網(wǎng)絡(luò)參數(shù),也需要選擇一個(gè)損失函數(shù)來度量神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸出和真實(shí)值的誤差。在神經(jīng)網(wǎng)絡(luò)中,損失函數(shù)的選取直接影響網(wǎng)絡(luò)的訓(xùn)練輸出結(jié)果,本文采用均方差函數(shù)和交叉熵函數(shù)之和作為損失函數(shù)。設(shè)定真實(shí)值為y,預(yù)測(cè)值為a,下標(biāo)i表示第i個(gè)樣本,wi是權(quán)重,則神經(jīng)網(wǎng)絡(luò)每次迭代訓(xùn)練的均方差可以表示為:
(8)
交叉熵是用來度量神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)用戶需求實(shí)際輸出和期望值接近程度的一種方法,交叉熵的值越小,表示實(shí)際輸出和期望值越接近。交叉熵函數(shù)的公式表示為:
(9)
利用DNN進(jìn)行預(yù)測(cè)時(shí),為避免過擬合,在損失函數(shù)中引入正則化懲罰項(xiàng),通過控制學(xué)習(xí)參數(shù),防止網(wǎng)絡(luò)學(xué)習(xí)到特別復(fù)雜的模型,減小過擬合發(fā)生的概率,引入了正則化的損失函數(shù)如下:
(10)
其中,W表示所有學(xué)習(xí)參數(shù),λ為一個(gè)可調(diào)節(jié)的參數(shù),用來控制正則化對(duì)損失函數(shù)的影響?;贒NN的用戶需求預(yù)測(cè)算法描述如下:
算法2基于DNN的用戶需求預(yù)測(cè)算法
輸入用戶特征矩陣M,服務(wù)特征矩陣N
輸出用戶u對(duì)不同類型服務(wù)i的需求概率r′u,i
1.Begin
2.初始化參數(shù)
3.For layer=2→4 Do//DNN的3個(gè)隱層
4.parameter[w,b]=init_param(layer)//隨機(jī)生成//初始權(quán)重值和偏置值,3個(gè)隱藏層中的節(jié)點(diǎn)個(gè)數(shù)分別為//64、32和16
5.End For
6.DNN前向傳播
7.加載矩陣M、N作為輸入層的輸入數(shù)據(jù)
8.通過式(5)~式(7)預(yù)測(cè)用戶u對(duì)每種類型服務(wù)i的需求概率r′u,i
9.DNN反向傳播
10.通過式(10)計(jì)算損失函數(shù)
11.parameter[w,b]=gd(floss)//采用梯度下降法優(yōu)化//參數(shù)w、b
12.迭代訓(xùn)練
13.For j=1→1 500 Do//迭代次數(shù)
14.重復(fù)步驟6
15.重復(fù)步驟9
16.End For
17.End
經(jīng)過對(duì)用戶服務(wù)需求的預(yù)測(cè),可以得到用戶未來使用某一類服務(wù)的概率,以此選取概率值較大的服務(wù)類作為該用戶的服務(wù)需求,并依據(jù)預(yù)測(cè)的用戶服務(wù)需求,確定滿足該需求的候選服務(wù)集。在候選服務(wù)集內(nèi)部,按用戶歷史使用服務(wù)的頻率并結(jié)合服務(wù)的評(píng)價(jià)數(shù)據(jù),選擇綜合評(píng)價(jià)最優(yōu)的服務(wù)并主動(dòng)地推薦給用戶。
設(shè)滿足用戶u服務(wù)需求的候選服務(wù)集合為S={Si,i∈1,2,…,n},其中,n表示候選服務(wù)的總數(shù)。對(duì)于每個(gè)候選服務(wù)Si,計(jì)算其針對(duì)用戶u的使用頻率f(Si),并計(jì)算每個(gè)候選服務(wù)的平均評(píng)價(jià)值g(Si),在此基礎(chǔ)上,計(jì)算每個(gè)候選服務(wù)的綜合推薦指數(shù)e(Si),將綜合推薦指數(shù)最大的服務(wù)Si推薦給用戶,如式(11)所示。
e(Si)=λf(Si)+(1-λ)g(Si)
(11)
其中,λ是一個(gè)可變參數(shù),用于調(diào)整候選服務(wù)的評(píng)價(jià)值和使用頻率在綜合推薦指數(shù)中所占的比重。在推薦過程中,對(duì)于每個(gè)用戶都需要進(jìn)行上述操作,且每個(gè)候選服務(wù)的實(shí)際評(píng)價(jià)數(shù)值較大,在進(jìn)行綜合推薦指數(shù)計(jì)算時(shí)要對(duì)其進(jìn)行歸一化處理。基于需求預(yù)測(cè)的服務(wù)推薦算法描述如下:
算法3基于需求預(yù)測(cè)的主動(dòng)服務(wù)推薦算法
輸入用戶u對(duì)每種類型服務(wù)i的需求概率r(u,i),每個(gè)服務(wù)的平均評(píng)價(jià)值g
輸出推薦服務(wù)Si
1.Begin
2.確定候選服務(wù)集合s
3.S←max(r(u,i))
4.計(jì)算服務(wù)使用頻度
5.For j=1→len(S)Do
6.f(S(j)=count(S(j))/len(S)
7.EndFor
8.推薦服務(wù)
9.采用式(11)計(jì)算各服務(wù)的綜合推薦指數(shù)
10.將綜合推薦指數(shù)最大的服務(wù)Si推薦給用戶u
11.End
為驗(yàn)證本文方法的有效性,筆者進(jìn)行了模擬實(shí)驗(yàn)。從公開的數(shù)據(jù)網(wǎng)站MovieLens獲取到用戶對(duì)電影的評(píng)分?jǐn)?shù)據(jù),該實(shí)驗(yàn)把“電影”看作“服務(wù)”,把“評(píng)分”看作“需求”的概率值。選取MovieLens 1M數(shù)據(jù)集模擬用戶對(duì)服務(wù)的需求,該數(shù)據(jù)包括約6 000名用戶對(duì)4 000部電影產(chǎn)生的100萬條評(píng)分?jǐn)?shù)據(jù),評(píng)分共分為5個(gè)等級(jí),用1~5表示。為便于實(shí)驗(yàn),對(duì)數(shù)據(jù)做如下處理:將用戶對(duì)電影的前三個(gè)評(píng)分等級(jí)視為用戶未使用過此服務(wù),標(biāo)記為0;將后兩個(gè)評(píng)分等級(jí)視為1,表示用戶使用過本服務(wù)。2種交互類型數(shù)據(jù)之比約為1∶1.35,每位用戶交互過的服務(wù)記錄至少20條,以保證真實(shí)數(shù)據(jù)的獨(dú)立性和稀疏性。
實(shí)驗(yàn)環(huán)境為個(gè)人電腦,操作系統(tǒng):Windows 10家庭版64位,CPU:Intel酷睿i5 4210M;RM:4 GB。實(shí)驗(yàn)應(yīng)用Python3版本編程語(yǔ)言,基于谷歌開源深度學(xué)習(xí)框架TensorFlow 1.6.0,在Pycharm社區(qū)版編程軟件上完成。
該實(shí)驗(yàn)將數(shù)據(jù)集隨機(jī)劃分成兩部分,分別用于訓(xùn)練和測(cè)試。其中,數(shù)據(jù)集的70%作為訓(xùn)練數(shù)據(jù),30%用于對(duì)模型進(jìn)行評(píng)估。在介紹評(píng)估方法前,首先引入混淆矩陣,如圖2所示,其中,True、False分別表示分類是否正確,Positive、Negative分別表示正負(fù)樣本的分類情況。
圖2 混淆矩陣結(jié)構(gòu)
本文實(shí)驗(yàn)設(shè)置預(yù)測(cè)結(jié)果1為正樣本,0為負(fù)樣本。評(píng)估方法如下:
1)準(zhǔn)確率,即總樣本中分類正確的樣本個(gè)數(shù)所占比重,表達(dá)式為:
(12)
2)精確率,即正樣本預(yù)測(cè)結(jié)果中正確預(yù)測(cè)為正樣本個(gè)數(shù)所占比重,表達(dá)式為:
(13)
3)召回率,即正樣本總數(shù)中被正確預(yù)測(cè)為正樣本個(gè)數(shù)所占比重,表達(dá)式為:
(14)
由于分類問題是回歸模型輸出結(jié)果的離散化表現(xiàn),因此本文還引入平均絕對(duì)誤差和均方根誤差2種回歸模型的評(píng)估方法,用于衡量預(yù)測(cè)值與真實(shí)值的誤差。
4)平均絕對(duì)誤差表達(dá)式為:
(15)
5)均方根誤差表達(dá)式為:
(16)
根據(jù)實(shí)驗(yàn)評(píng)價(jià)指標(biāo),依次對(duì)比矩陣分解(MF)模型、DNN模型和基于矩陣分解的DNN混合模型的性能,以1 500次迭代為機(jī)器學(xué)習(xí)終止條件,預(yù)測(cè)準(zhǔn)確率對(duì)比如圖3所示??梢钥闯?與MF模型相比,DNN模型在預(yù)測(cè)準(zhǔn)確率上效果并不理想,最終結(jié)果略低于MF模型。在1 500次的迭代訓(xùn)練中,MF模型的預(yù)測(cè)準(zhǔn)確率從42.5%左右開始逐步增加,最終穩(wěn)定在73.5%,DNN模型的預(yù)測(cè)精確度則從56.3%左右增加至73%。混合模型MF+DNN的表現(xiàn)要優(yōu)于2種單一的模型,不僅比MF擁有較高的起點(diǎn),并且最終準(zhǔn)確率達(dá)到了78.8%,相比于MF和DNN分別提高了近5%和6%,表明基于矩陣分解的DNN方法具有更高的用戶需求預(yù)測(cè)準(zhǔn)確性。
圖3 3種模型的準(zhǔn)確率對(duì)比
3種模型的精確率和召回率對(duì)比如圖4所示,可以看出,相比于MF方法,DNN模型取得了較好的結(jié)果。在精確率的對(duì)比上,MF為75%,而DNN為72%,兩者相差僅為3%,并無明顯的差異。在召回率的對(duì)比上,DNN為86.6%,高出MF的80.2%約6.5%。混合模型MF+DNN整體表現(xiàn)要優(yōu)于2種單一的模型,其精確率為79.85%,高于MF和DNN,而召回率為84.4%,僅低于DNN約2.2%。上述實(shí)驗(yàn)結(jié)果表明,基于矩陣分解的DNN預(yù)測(cè)模型具有較強(qiáng)的預(yù)測(cè)能力,可彌補(bǔ)矩陣分解算法預(yù)測(cè)的不足。
圖4 3種模型的精確率和召回率對(duì)比
3種模型的平均絕對(duì)誤差和均方根誤差對(duì)比如圖5所示,可以看出,MF模型和DNN模型幾乎相等,而混合模型MF+DNN效果要優(yōu)于這2種模型,在平均絕對(duì)誤差和均方根誤差上均低于MF和DNN模型約0.05,可見由數(shù)據(jù)稀疏性導(dǎo)致的預(yù)測(cè)誤差對(duì)MF+DNN模型影響較小,因此,該模型具有更好的穩(wěn)定性。
圖5 3種模型的平均絕對(duì)誤差與均方根誤差對(duì)比
3種模型的實(shí)驗(yàn)數(shù)據(jù)對(duì)比如表1所示。綜合5項(xiàng)評(píng)估指標(biāo)對(duì)比可以得出結(jié)論:基于矩陣分解的DNN模型性能優(yōu)于單一使用的矩陣分解模型。
表1 3種模型的實(shí)驗(yàn)數(shù)據(jù)對(duì)比
為實(shí)現(xiàn)服務(wù)的智能化主動(dòng)推薦,提高用戶滿意度與資源利用率,本文提出一種基于用戶需求預(yù)測(cè)的主動(dòng)服務(wù)推薦方法。該方法基于隱語(yǔ)義模型的矩陣分解算法,從服務(wù)應(yīng)用歷史數(shù)據(jù)中快速提取用戶特征與服務(wù)特征,為精確預(yù)測(cè)用戶的服務(wù)需求提供了更有效的數(shù)據(jù),同時(shí)解決了數(shù)據(jù)稀疏性問題。此外,其基于深度學(xué)習(xí)算法建立用戶與服務(wù)之間的非線性關(guān)系映射,有助于挖掘數(shù)據(jù)中隱含的特征,能夠提高用戶服務(wù)需求預(yù)測(cè)的準(zhǔn)確性以及服務(wù)需求預(yù)測(cè)模型的可擴(kuò)展性。由于本文模型僅基于用戶的歷史服務(wù)使用數(shù)據(jù)進(jìn)行預(yù)測(cè),并未考慮用戶使用時(shí)的情景信息,因此下一步將研究情景感知的主動(dòng)服務(wù)推薦方法。