趙晨陽,王俊嶺
(1.河南工業大學信息科學與工程學院,河南 鄭州 450001;2.河南工業大學理學院,河南 鄭州 450001)
Web 服務是自描述的軟件實體,可以通過互聯網發布、定位和使用,服務計算和云計算技術的快速發展使Web 服務成為IT 資源共享的重要手段之一。然而,隨著具有相同功能而服務質量各異的服務在互聯網上井噴式涌現,用戶很難找到他們需要的服務,從而造成“信息過載”問題。推薦系統被認為是解決該問題的方法之一。
目前,國內外研究者對服務推薦問題已經做了大量的工作,并取得了一些重要的成果。根據推薦算法工作機制的不同,可以將當前主流的服務推薦方法分為基于內容的服務推薦、基于協同過濾的服務推薦、混合服務推薦、上下文感知的服務推薦及其他相關的服務推薦方法。
早期的服務推薦方法研究主要集中于基于內容的服務推薦。它的基本思想是主動提取用戶已使用服務的特征,利用這些特征建立用戶偏好模型,然后將待推薦服務的特性與用戶偏好模型比較,找出符合用戶偏好的服務向用戶推薦。Shu 等[1]根據用戶對多媒體學習資源的個性化需求,提出一種基于內容的服務推薦方法。基于內容的推薦方法抽取某些服務的內容特征比較困難,因此其應用范圍具有局限性。基于協同過濾的服務推薦方法不存在該問題,它是目前應用最為廣泛和成功的方法。該推薦方法主要分為基于內存的方法和基于模型的方法。基于內存的方法包括基于用戶的方法和基于服務的方法,兩者都使用近鄰技術預測用戶未使用服務的評分,然后為用戶推薦具有較高評分的服務。Li等[2]使用MapReduce大數據處理平臺實現了一種基于服務的協同推薦算法,該算法與傳統的協同過濾算法相比,在處理大數據集時具有較好的效率。Li 等[3]提出了一種帶有隱私保護的基于服務的協同過濾方法。AI-Hassan 等[4]結合本體相似性和基于服務的協同過濾技術,提出了一種語義增強的混合旅游服務推薦方法。孟恒羽等[5]提出一種基于改進K近鄰模型的協同過濾推薦算法,將傳統的協同過濾算法和改進的K 近鄰算法相結合。基于模型的服務推薦方法是另外一種類型的協同過濾推薦方法。該方法首先建立了一個基于用戶歷史數據的預測模型,然后利用該模型預測用戶對未使用服務的偏好程度,從而為用戶做出推薦。該方法采用的預測模型主要包括線性回歸、支持向量機(SVM,support vector machine)、神經網絡、貝葉斯模型、矩陣分解、深度學習等。李改等[6]提出了一種基于評分預測與排序預測的協同過濾算法,該算法采用概率矩陣分解技術。Kushwaha 等[7]提出一種基于概率矩陣分解的語義推薦系統。Ren 等[8]提出了一種基于SVM 的協同過濾服務推薦算法。Oku 等[9]結合SVM,提出了一種上下文感知的服務推薦方法。Ma 等[10]利用用戶偏好信息的差異提出了一種偏好增強的SVM,用于分類問題。Wei 等[11]提出一種結合協同過濾方法和深度神經網絡的電影服務推薦方法,用于解決新服務問題。黃立威等[12]對基于深度學習的推薦系統研究進行了綜述和比較。
為了發揮多種推薦方法的優勢,近年來,許多研究者關注混合推薦方法,該方法使用2 種或多種不同推薦技術,或者與其他技術相結合進行服務推薦。Yao 等[13]考慮到用戶相似性和服務語義內容的相似性,提出了一種混合服務推薦方法。Afify 等[14]結合基于模型和基于內存的協同過濾方法,提出了一種混合的云服務推薦方法。同時,為了進一步提高服務推薦的個性化和精度,近年來,出現了上下文感知服務推薦方法,這些上下文主要包括時間、位置、同伴、信任關系等信息。Zhao 等[15]基于上下文和用戶信任關系,提出一種視頻推薦算法。Yin 等[16]基于用戶的信任模型,提出一種大數據云服務推薦方法。
雖然上述服務推薦方法在服務推薦領域做出了重要貢獻,但仍然存在一些問題,主要表現在以下3 個方面。第一,目前多數推薦方法對目標用戶所有未使用服務的偏好值進行整體預測,這種預測包含了對目標用戶不感興趣服務的預測,這是不必要的,因此這種基于預測的推薦方法往往比較耗時。第二,多數推薦方法基于用戶的歷史數據進行推薦,事實上,用戶的歷史數據與特定的上下文信息存在一定的關聯,因此,推薦方法需要引入上下文信息以提高推薦精度。第三,多數推薦方法在計算用戶相似度時,僅使用用戶的歷史行為數據,很少使用用戶的人口統計學信息,因此,在推薦方法中需要引入用戶人口統計學信息以提高相似度計算精度,并緩解冷啟動問題。
為了解決上述問題,本文借鑒現有的研究成果,提出了一種基于隱含上下文支持向量機的服務推薦方法(SRM-CESVM,service recommendation method based on context-embedded support vector machine)。與其他推薦方法相比,本文所提方法具有以下特點。第一,根據上下文信息,修正用戶評分矩陣,使其帶有隱含的上下文信息;將帶有上下文信息的服務評分向量作為服務的特征向量,使用SVM 構造用戶分類超平面對服務進行分類。采用隱含上下文信息的服務特征向量不僅使上下文信息在服務分類中起到指導作用,而且不會增加服務特征向量的維數,因此不會增加支持向量機的計算復雜度。第二,分類超平面將用戶不感興趣的服務從待推薦服務集合中分離出來,在計算用戶對未評分服務的偏好程度,即預測未評分服務的評分時,可以只考慮用戶感興趣的未評分服務,從而極大地縮短了算法的計算時間。第三,考慮從目標用戶的歷史評分數據和相似用戶2 個方面為目標用戶做出服務推薦。首先,根據SVM 預測模型選出目標用戶較為感興趣的候選推薦服務集合;然后,根據目標用戶的相似用戶的服務推薦得出另一個候選推薦服務集合;最后,綜合2 個候選推薦服務集合得出最終的服務推薦集合。
SRM-CESVM 模型如圖1 所示。用戶使用服務后,通常會顯式地為服務給出一個評價分數,以此表達該用戶對已使用服務的滿意程度,從而形成用戶評分數據。對于某目標用戶,服務集合被分為兩部分:用戶使用過的服務集合(已評分服務集合)和用戶未使用的服務集合(未評分服務集合)。

圖1 SRM-CESVM 模型
一方面,將目標用戶已評分服務集合作為訓練集,利用SVM 構造目標用戶的SVM 預測模型。然后,結合目標用戶推薦時所處的上下文信息,根據分類超平面,將未評分服務集合分為2 個部分:用戶感興趣的服務集合和用戶不感興趣的服務集合。對于目標用戶不感興趣的服務集合直接過濾,不需要預測目標用戶對這些服務的評分值。而對于用戶感興趣的服務集合,則結合服務所對應的服務特征向量點與超平面的距離預測目標用戶對這些服務的偏好程度,給出預測值,并根據預測值的大小排序,排名靠前的服務組成一個候選推薦服務集合。
另一方面,根據目標用戶與其他用戶的SVM預測模型的相似性及目標用戶與其他用戶的人口統計學信息,計算目標用戶與其他用戶的相似度,得出目標用戶的最近鄰相似用戶集合。結合目標用戶推薦時所處的上下文信息,將相似用戶感興趣且已使用的,同時目標用戶未使用的服務組成目標用戶的另一個候選推薦服務集合。最后,綜合兩類候選推薦服務集合,為目標用戶給出合理的服務推薦。
本節詳細描述SRM-CESVM。首先,按照執行的先后順序介紹方法的具體步驟;然后,對推薦方法進行整體描述。
用戶評分矩陣記錄了用戶對服務的評分數據。設推薦系統中存在m個用戶和n個服務,則用戶評分矩陣的定義如式(1)所示。

其中,ri,j為用戶ui對服務sj的評分,0≤i≤m,0≤j≤n。ri,j=0,表示用戶ui沒有使用過服務sj,即對服務sj沒有進行過評分,服務sj屬于用戶ui的待推薦服務集合;ri,j> 0,表示用戶ui使用過服務sj,即對服務sj進行過評分,其值越大說明用戶對該服務越滿意,服務sj屬于用戶ui的訓練服務集合。
由于用戶評分的服務數量一般比較稀少,用戶評分矩陣中存在大量的零值,因此用戶評分矩陣通常十分稀疏,其稀疏程度用矩陣中非零值所占比例即用戶評分矩陣密度來度量。從而,用戶評分數據越稀疏,零值越多,用戶評分矩陣密度越小。
在用戶評分矩陣中,用戶對服務的評分是在一定的上下文環境下做出的[15],例如,使用服務的時間、用戶所處的地點、當時的天氣情況和用戶的人口統計學信息(性別、年齡、職業、教育背景等),本文稱這些上下文信息的集合為“評分上下文”。對于目標用戶,如果相似用戶對某個待推薦服務的評分較高,并且評分上下文信息與目標用戶推薦時所處的上下文信息十分相似,那么推薦系統為目標用戶推薦該服務更加具有說服力。推薦系統為目標用戶推薦服務時用戶所處的上下文信息集合,本文稱之為“推薦上下文”或“實時上下文”。因此,需要修正用戶評分數據,使其帶有隱含的上下文信息,使上下文信息在服務分類中起到指導作用,從而進一步提高推薦精度。
上下文信息可以通過各種傳感器、公共服務平臺或推薦服務系統本身提供。在本文實驗部分,主要采用MovieLens 數據集已收集的上下文信息進行相關實驗。根據其取值的數據類型,上下文信息主要分為離散型上下文信息(例如教育背景、職業等)和連續型上下文信息(例如時間、年齡、溫度等)。本節對上下文信息進行形式化描述,并提出上下文信息相似度的計算方法。
假設推薦系統中有L種不同類型的上下文信息,記(1 ≤i≤m,1≤j≤n)為用戶ui使用服務sj時的評分上下文信息,其中,為第k種類型的上下文信息。記是系統為目標用戶推薦服務時目標用戶所處的推薦上下文信息,其中,為第k種類型的上下文信息。定義評分上下文信息ci,j和推薦上下文信息ccurrent的相似度計算方法如式(2)所示。

如果第k種類型的上下文信息是離散型數據,根據上下文信息的特點,有2 種相似度的計算方法。如果上下文信息的所有取值具有一定的相關性,則上下文信息相似度計算方法如式(3)所示。


例如,對于離散型上下文信息“教育背景”,規定D=(1,2,3,4,5,6)分別對應教育程度(小學,初中,高中,本科,碩士,博士),這些值之間具有相關性,因此采用式(3)的計算方法,例如,博士和小學的上下文相似度為simk(博士,小學)=,而simk(博士,碩士)=。其他類似的上下文信息(如天氣情況等),相似度計算方法與此類似。對于另一種離散型上下文信息“職業”,規定D=(1,2,3,4,5,6,7,8)分別對應國家職業大類劃分的8 個類,這些值之間沒有相關性,因此采用式(4)的計算方法,例如,專業技術人員與商業人員的上下文相似度為0。對其他類似上下文信息(如性別等),相似度計算方法與此類似。
如果第k種類型的上下文信息是連續型數據,首先將連續數據離散化,然后采用離散型上下文信息相似度的計算方法進行計算。離散化方法如式(5)所示。

其中,Ti(1≤i≤N)為分段閾值點,離散化后,上下文信息相似度的計算方法如式(3)所示。
例如,連續型上下文信息“時間”,根據距離當前時間的間隔,以6 個月為段,將時間離散化為D=(1,2,3,4,5,6,7),分別對應時間段(1~6 個月,7~12 個月,13~18 個月,19~24 個月,25~30 個月,31~36 個月,37 個月及以上),則simk(25~30個月,13~18個月)=,而simk(37個月及以上,1~6個月)=1-。對其他類似連續型上下文信息(如溫度等),相似度計算方法與此類似。
設用戶ui為目標用戶,為便于描述,不失一般性,設推薦系統中所有服務組成的集合中前K個服務屬于目標用戶已評分服務集合,記為Sr={sj|1≤j≤K},相應地,Sur={sj|K+1≤j≤n}為目標用戶未評分服務集合。
對于任意服務sj∈Sr,所有用戶對該服務的評分形成該服務的評分向量 (r1,j,r2,j,…,rk,j,…,rm,j),其分量rk,j(1≤k≤m)是用戶uk對服務sj的評分,由于目標用戶對該服務的評分ri,j的值是確定的,即偏好確定,因此將該服務作為目標用戶的訓練服務。
對于任意服務sj∈Sur,所有用戶對該服務的評分形成服務的評分向量 (r1,j,r2,j,…,rk,j,…,rm,j),目標用戶對該服務的評分ri,j的值是未知的,即沒有使用過該服務,因此,將該服務作為目標用戶的待推薦服務。
利用上下文信息的相似度修正目標用戶評分矩陣,使其具有隱含的上下文信息,具體方法如下。
對于目標用戶ui,從目標用戶已評分服務和未評分服務2 個方面對用戶評分矩陣進行修正。對于任意的已評分服務sj∈Sr,其對應的評分向量修正時,上下文相似度計算中采用的上下文信息是目標用戶使用該服務的評分上下文和其他用戶使用該服務的上下文。對于任意的未評分服務sj∈Sur,其對應的評分向量修正時,上下文相似度計算中采用的上下文信息是為目標用戶推薦該服務時的推薦上下文和其他用戶使用該服務時的上下文。本文實驗中使用的上下文(評分上下文和推薦上下文)來自公開的MovieLens 數據集。本文提出的上下文修正方法的思想借鑒于蟻群算法中路徑信息素的更新規則,即保留原始評分數據信息的同時,在評分數據中增加上下文信息,這樣既保留了原始評分信息,又融入了新的上下文因素用于推薦。
目標用戶已評分服務sj∈Sr對應的評分向量的修正過程如下。對于目標用戶ui,如果服務sj是訓練服務,即sj∈Sr,說明目標用戶對該服務做出過評分,該評分具有評分上下文信息。因此,以目標用戶ui使用服務sj時的評分上下文信息ci,j為參照,修改服務sj對應的評分向量 (r1,j,r2,j,…,rk,j,…,rm,j),其修正規則如式(6)所示。

其中,ρ∈[0,1]為遺留因子,表示原始評分信息的保留程度;sim(ck,j,ci,j)為用戶uk評分服務sj時的評分上下文信息ck,j和目標用戶ui評分服務sj時的評分上下文信息ci,j的相似度,其計算方法如式(2)所示。修正后,目標用戶的已評分服務sj∈Sr的修正評分向量記為。
目標用戶未評分服務sj∈Sur對應的評分向量的修正過程如下。對于目標用戶ui,如果服務sj是待推薦服務,即sj∈Sur,說明目標用戶對該服務未做出過評分。應該比較其他用戶使用服務sj時的評分上下文信息ci,j與目標用戶ui推薦時所處的上下文信息ccurrent之間的相似性,因此,以目標用戶ui推薦時所處的上下文信息ccurrent為參照,修改服務sj對應的評分向量(r1,j,r2,j,…,rk,j,…,rm,j),其修正規則如式(7)所示。

其中,ρ∈[0,1]為遺留因子,sim(ck,j,ccurrent)為用戶uk評分服務sj時的評分上下文信息ck,j和目標用戶ui推薦時所處的上下文信息ccurrent的相似度,其計算方法如式(2)所示。修正后,目標用戶的未評分服務sj∈Sur的修正評分向量記為。
通過上述2 個方面對用戶評分矩陣的修正,使用戶對服務的評分隱含了上下文信息,有助于推薦精度的提高。修正后的隱含上下文用戶評分矩陣如式(8)所示。

隱含上下文用戶評分矩陣之所以稱為“隱含”的,其目的是不僅使上下文信息在服務分類時起到指導作用,而且將修正后的服務評分向量作為服務特征向量用于訓練和推薦時,不增加服務特征向量的維數和支持向量機的計算復雜度。
如上文所述,對于目標用戶ui,為便于描述,不失一般性,將服務集合中前K個服務設為目標用戶已評分服務,它們屬于集合Sr;后n-K個服務設為目標用戶未評分服務,它們屬于集合Sur。
如圖2 所示,將所有屬于Sr的目標用戶已評分的服務組成訓練服務集。對于任意服務sj∈Sr,采用 3.4 節所述的修正方法得到修正評分向量,該修正評分向量作為該訓練服務的特征向量,記為,用于訓練目標用戶的SVM 預測模型。于是,對于目標用戶,記TSi=為訓練服務集合,其中,yi,j∈{1,-1 }是服務sj是否被目標用戶感興趣的標簽,“1”表示感興趣,“-1”表示不感興趣。設ε為推薦系統設定的用戶偏好閾值,如果目標用戶ui對服務sj的評分≥ε,則yi,j=1;否則yi,j=-1 。

圖2 訓練服務集合和待推薦服務集合
相應地,將所有屬于Sur的目標用戶未評分的服務組成待推薦服務集合。對于任意服務sj∈Sur,采用 3.4 節所述的修正方法得到修正評分向量,該修正評分向量作為該待推薦服務的特征向量,記為。于是,對于目標用戶,記為待推薦服務集合,由于=0,故不能判斷yi,j的值,需要根據訓練好的SVM 預測模型評估目標用戶ui對該服務的偏好程度。
對于目標用戶ui,獲得訓練服務集TSi后,SRM-CESVM 服務推薦方法使用SVM 為目標用戶構建分類超平面,求解過程本質上是求解凸二次規劃問題,如式(9)所示。

其中,懲罰參數C> 0,C越大對誤分類的懲罰越大;ξi> 0是松弛變量;K是訓練服務集合TSi中服務的數量;w和b為分類超平面的法向量和截距。
通常,SVM 采用核函數的方法,將數據從低維的數據空間映射到高維的數據空間,最終求解得到如式(10)所示的分類超平面。

其中,fi(s v)是目標用戶ui的分類超平面,φ(sv,svp)是核函數,αp是支持向量svp對應的拉格朗日乘子,nspv是支持向量的數量。
這樣,通過分類超平面fi(sv)得到了目標用戶的SVM 預測模型。
在SVM 預測模型中,根據目標用戶未使用服務的特征向量,通過fi(sv)可以將該服務歸屬于目標用戶感興趣的服務集合PRSi或不感興趣的服務集合NRSi。
具體地,對于目標用戶ui的任意一個未評分服務sj,其對應的服務特征向量為。如果,則說明目標用戶對該服務不感興趣,將該服務從待推薦服務集合中刪除,不再計算其用戶偏好值,這樣可以極大地縮減算法的執行時間。如果,說明目標用戶對該服務感興趣。目標用戶對該服務的偏好程度可以用代表該服務的特征向量點到分類超平面的距離表示。服務的評分向量點離超平面距離越遠,表示目標用戶對服務越感興趣。根據距離的遠近對服務特征向量點進行排序,然后選出距離超平面距離較遠的N個服務特征向量點對應的服務組成目標用戶基于SVM 預測模型的候選推薦服務集合,記為。
目標用戶ui與相似用戶具有相似的偏好,因此考慮相似用戶的推薦也很重要,其過程如下:首先,計算目標用戶與其他用戶之間的相似度,找出比較相似的用戶集合;然后,將相似用戶感興趣且目標用戶沒有使用過的服務集合推薦給目標用戶。在本文所提推薦方法中,用戶相似度的計算通過SVM預測模型和用戶人口統計學信息加權獲得。用戶人口統計學信息是計算用戶相似度時需要考慮的重要因素,并且在用戶評分數據稀疏或新用戶問題中,這些信息起到十分關鍵的作用,能夠一定程度上提高推薦精度和有效地緩解算法的冷啟動問題。具體步驟如下。
首先,介紹基于SVM 預測模型的用戶相似度計算方法。Oku 等[9]提出用戶相似度可以通過計算用戶的SVM 模型的相似性獲得,本文借鑒該方法并做出一些改進,提出目標用戶ui和其他用戶uj關于SVM 預測模型的用戶相似度simsvm(ui,uj)的計算方法,如式(11)所示。

然后,介紹基于人口統計學信息的用戶相似度計算方法。人口統計學信息是指用戶的年齡、性別、教育程度、職業等一系列自然與社會屬性。這些信息分為離散型信息和連續型信息。首先需要進行數值化,具體方法類似于式(3)~式(5)的處理方法,最后采用式(12)所示的計算方法得出目標用戶ui和用戶uj關于人口統計學信息的相似度 simdem(ui,uj)。

其中,H為用戶人口統計學信息的個數,simk(ui,uj)為用戶ui與用戶uj的第k種類型的人口統計學信息的相似度。
通過上述方法,獲得基于SVM 預測模型的用戶相似度和基于用戶人口統計學信息的相似度,根據式(13)得到目標用戶ui和用戶uj的相似度。特殊情況下,當目標用戶的訓練服務數量極少或為零時,目標用戶與其他用戶的相似度計算式退化為基于用戶人口統計學信息的相似度。

根據式(13)得到目標用戶ui的最近鄰用戶,組成目標用戶的相似用戶集合。對于每一個相似用戶uj,在其SVM 預測模型中,首先,選取服務特征向量點距離分類超平面距離大于零且該用戶感興趣同時評分過的服務。其次,從最近鄰用戶選取的服務集合中刪除重復的服務,形成一個臨時服務集合。然后,對于屬于該臨時集合的任何一個服務sj,如果該服務的評分上下文和目標用戶當前所處上下文相似且該服務不屬于集合,則將該服務映射到目標用戶ui的SVM 預測模型中,如果目標用戶也對該服務感興趣,則計算服務sj的特征向量點到超平面fi(sv)的距離。最后,根據距離的遠近進行排序,選出前N個服務,得到目標用戶ui的相似用戶推薦的N個服務,這些服務組成目標用戶ui基于相似用戶的候選推薦服務集合,記為。
SRM-CESVM 服務推薦方法從2 個方面為目標用戶做出最終服務推薦。這2 個方面分別來自基于SVM 預測模型的服務推薦和基于相似用戶的服務推薦。

其中,N(CSi)、分別是3個集合中服務的個數,δ是選擇權重參數。CSi中的服務一部分來源于中的前個服務,另一部分來源于中的前個服務。
最終的推薦結果來源于兩方面。一方面,基于目標用戶的歷史評分數據,利用SVM 預測模型為目標用戶進行推薦,具有很好的解釋性,用戶更加信服。另一方面,目標用戶與相似用戶具有相似的偏好,因此,根據相似用戶的偏好為目標用戶進行推薦,同樣具有很好的解釋性。值得注意的是,在特別情況下,只采用基于人口統計學信息的相似用戶的推薦,這是因為當目標用戶的訓練服務數量極少或為零時,基于SVM 預測模型的服務推薦精度嚴重下降或者不起作用,為了緩解數據稀疏性和冷啟動,最終候選推薦服務集合全部來源于基于相似用戶的推薦。
SRM-CESVM 算法描述如算法1 所示。
算法1SRM-CESVM 推薦方法


實驗采用MovieLens 100K 數據集,其包括943 個用戶對1 682 部電影的評分數據(評分數據為1~5 分)。實驗中,隨機選擇80%的數據構建訓練集,剩余20%的數據構建測試集。該數據集還提供了一些額外的信息,包括用戶人口統計學信息和用戶評論電影時的時間戳,這些信息作為上下文信息用于驗證本文提出的推薦方法。具體地,在本文實驗中涉及的上下文信息包括用戶人口統計學上下文信息(年齡、性別、職業等)和用戶評分上下文信息(評論時間以及由其推導出的季節、星期等)。在模型訓練中,訓練集中的上下文信息作為“評分上下文”應用于訓練集中服務的評分向量的修正,而在模型測試中,測試集中的上下文信息作為“推薦上下文”應用于測試集中服務的評分向量的修正。實驗環境如下:Matlab2016b 軟件,系統為Windows 7,Intel core i7,CPU 為3.6 GHz,內存為8 GB。
分類準確率通常作為衡量推薦方法性能的一種評價標準。其中,分類準確率A用于衡量推薦方法的整體分類能力,如式(15)所示;正例分類準確率A+用于衡量推薦方法對正例樣本分類的準確度,如式(16)所示;負例分類準確率A-用于衡量推薦方法對負例樣本分類的準確度,如式(17)所示。

對于目標用戶ui,TPi表示正例樣本被正確分為正例的樣本數量,FPi表示負例樣本被錯誤分為正例的樣本數量,TNi表示負例樣本被正確分為負例的樣本數量,FNi表示正例樣本被錯誤分為負例的樣本數量。
在服務推薦中,通常還采用準確率P、召回率R和F值衡量推薦方法的性能,分別如式(18)~式(20)所示。P衡量推薦列表中預測到目標用戶感興趣服務的概率。R衡量推薦列表中目標用戶感興趣的服務占目標用戶所有感興趣服務的比重。P和R分別表示模型的預測和覆蓋能力,但有時準確率和召回率是相互影響的,即準確率高而召回率低,或召回率高而準確率低,需要綜合考慮兩者。而F值是P和R的加權調和均值,可以很好地衡量推薦算法整體推薦性能,在推薦系統中經常被采用。

其中,RLi表示為目標用戶ui推薦的服務集合,TLi表示測試集中目標用戶ui感興趣的服務集合。
在核函數選取實驗中,根據文獻[8,17]的相關分析,核函數在用戶評分矩陣密度d=0.06 下進行,同時根據文獻和常識習慣,設置用戶偏好閾值ε=3 。由于線性核函數φ(xi,xj)=xixj在之前實驗中效果不太理想,故實驗中不考慮線性核函數,只比較采用多項式核函數φ(xi,xj)=(xixj+1)p(p≥ 1)和高斯核函數φ(xi,xj)=(σ> 0)的分類準確率。
圖3 是參數p取不同值時采用多項式核函數的分類準確率。隨著p值增大,A+值緩慢上升,A-值快速下降,A值緩慢下降。可以看出,p=2 時,A值達到最大。因此,采用多項式核函數時,p=2 是最佳參數。

圖3 不同參數值時多項式核函數的分類準確率
圖4 是參數σ取不同值時采用高斯核函數的分類準確率。隨著σ值增大,A+值前期緩慢下降,后期快速下降;A-值前期緩慢上升,后期快速上升;A值緩慢到達頂峰后又緩慢下降。可以看出,σ=7時,A值達到最大,因此,采用高斯核函數時,σ=7是最佳參數。

圖4 不同參數值時高斯核函數的分類準確率
圖5 是多項式核函數和高斯核函數取最佳參數時,A、A+和A-值的比較。在負例分類準確率方面,多項式核函數比高斯核函數相比效果較差。在正例分類準確率方面,多項式核函數比高斯核函數稍低。從兩者整體分類準確率而言,高斯核函數比多項式核函數相比效果更好,且正例和負例分類準確率比較均衡,因此,在后面的實驗中,選取高斯核函數作為SVM 分類的核函數。

圖5 不同核函數時分類準確率比較
在不同的用戶評分矩陣密度下,本文對原始評分信息保留程度參數ρ對推薦結果的影響進行實驗,找出F的最優值。圖6 是ρ取不同值時的F值。從圖6 可以看出,在評分矩陣密度d=0.06 和d=0.05,ρ=0.7 時,F達到最優值,在評分矩陣密度d=0.04,ρ=0.8 時,F達到最優值。

圖6 不同ρ值時推薦的F值
在不同的用戶評分矩陣密度下,本文對服務選擇權重參數δ對推薦結果的影響進行實驗。圖7 是δ取不同值時的F值。從圖可以看出,在不同的評分矩陣密度下,δ=0.7 時,F值達到最優,原因如下:一方面,目標用戶傾向于選擇基于SVM 預測模型的服務推薦,這是因為該推薦基于目標用戶的歷史評分數據得出,具有很好的解釋性,用戶更加信服,因此,從中選取較多的服務個數;另一方面,目標用戶與相似用戶具有相似的偏好,因此,從中選取剩余的部分。

圖7 不同δ值時推薦的F值
圖8~圖 10 分別顯示了在評分矩陣密度d=0.06、0.05 和0.04 下,該方法的推薦性能。在不同的密度下,隨著推薦服務數量N的增加,P值不斷下降,R值不斷上升,F值緩慢上升后緩慢下降。當d=0.06,N=15 時,F值達到最高值0.26;N為10~25 時,F值保持在0.25 左右。當d=0.05 時,N=20 時,F值達到最高值0.22;N為15~30 時,F值保持在0.2 左右。當d=0.04,N=25 時,F值達到最高值0.19;N為15~25 時,F值保持在0.18 左右。實驗結果說明,隨著密度的下降,評分數據變得越來越稀疏,特別地,當d=0.04 時,數據極度稀疏,但該推薦方法仍保持了不錯的性能。
為了驗證本文提出的方法對冷啟動問題的解決能力。本文從數據集中隨機選擇100 個用戶和300 部電影作為新用戶和新服務,即人工刪除評分信息。實驗中,為每個新用戶推薦20 個服務,同時將一個新服務推薦給20 個用戶。實驗中,對于每個新用戶記錄用戶滿意的服務(即服務評分大于等于用戶偏好閾值)占推薦服務數的比例。同時,對于每個新服務,記錄推薦用戶中用戶滿意的用戶數占推薦用戶數的比例。圖11 顯示了不同矩陣評分密度時,本文方法與文獻[6]提出URA-CF 方法的比較結果,其值是針對所有用戶或所有服務的平均比例值。從實驗結果可以得出本文提出的方法由于加入了上下文信息,特別是人口統計學信息,在解決冷啟動問題方面是可行的,同時結果優于文獻[6]中的推薦方法。

圖8 d=0.06 時推薦方法的性能

圖9 d=0.05 時推薦方法的性能

圖10 d=0.04 時推薦方法的性能

圖11 解決冷啟動問題的性能比較
將SRM-CESVM 方法與目前最新的協同過濾推薦方法進行比較,對比方法具體如下。
URA-CF[6],一種最新的基于評分預測與排序預測的協同過濾推薦方法。該方法是基于概率矩陣分解的改進協同過濾算法。
SVM-CF[8,17],一種最新的基于SVM 的協同過濾推薦算法。
UI-CF[18],一種最新的基于用戶和項目的混合改進協同過濾方法。
圖12~圖14 分別顯示了在評分矩陣密度d=0.06、0.05 和0.04 下4 種推薦方法的性能比較。不同評分矩陣密度下,SRM-CESVM 方法的性能均優于其他3 種推薦方法,特別是在數據極其稀疏的情況下,SRM-CESVM 方法明顯優于其他方法。這是由于SRM-CESVM 推薦方法使用了高效的SVM預測模型,并引入隱含的上下文信息以提高精度,同時使用用戶人口統計學信息緩解數據稀疏性帶來的推薦算法效率不高的問題。

圖12 d=0.06 時4 種推薦方法的性能比較

圖13 d=0.05 時4 種推薦方法的性能比較

圖14 d=0.04 時4 種推薦方法的性能比較
為了比較4 種推薦方法的時間效率,在3 種評分矩陣密度d=0.06、0.05 和0.04 下分別統計4 種推薦方法的推薦時間消耗,結果如圖15 所示。一方面,隨著數據密度的降低,推薦時間減少,這是由于數據密度降低表示推薦服務的數量減少,因此推薦時間消耗減少。另一方面,本文提出的方法的時間消耗比UI-CF 方法減少了約40%,比URA-CF方法減少了約35%,表明SRM-CESVM 方法具有很高的時間效率,這是由于采用SVM 的方法過濾了用戶不感興趣的服務,節約了大量的時間。同時,SRM-CESVM 方法的時間消耗比SVM-CF 方法增加了約10%,這是由于引入了上下文信息及相似用戶的推薦,因此時間消耗略有增加,但推薦精度有所提高。

圖15 不同矩陣密度下4 種推薦方法的時間消耗
本文提出了基于隱含上下文支持向量機的服務推薦方法。該方法首先利用上下文信息修正用戶評分矩陣,然后利用SVM 訓練出用戶的分類超平面,最后根據SVM 預測模型和相似用戶為目標用戶做出服務推薦。與其他基于預測的方法相比,該方法使用隱含上下文的服務特征向量,即不增加SVM 的計算復雜度,又使上下文信息用于指導推薦。實驗結果表明,提出的方法在推薦精度和推薦時間消耗方面均得到有效提升。