王麗清,徐永躍,姚寒冰
(云南大學 信息學院,云南 昆明 650091)
互聯網推薦系統或推薦方法用于幫助人們在海量信息中快速、準確地檢索出所需要的信息。其中,被廣泛采用的協同過濾推薦算法可以根據用戶的偏好,挖掘用戶與對象或對象與內容之間的相關性,繼而完成關聯性推薦。但協同過濾的稀疏矩陣計算、“冷啟動”以及可擴展性問題,造成了它的局限性[1]。
解決“冷啟動”問題的關鍵是解決新用戶的初始用戶特征模型的建模問題。用戶特征模型通過對用戶偏好或者特征信息的顯示或隱式的采集完成用戶模型建模。對于新用戶,需要對其明確一個初始特征的定義和采集規則。為此,有的采用平均值、眾數、信息熵等數值填充的方法[2],可以對新用戶完成推薦,但會導致個性化特征缺失;采用聚類分析[3]、社區發現[4,5]基于內容的推理和協同[6,7]等方法是通過獲得最近鄰作為新用戶初始值完成推薦,可以提高推薦的可擴展性,并一定程度解決初始用戶特征提取的問題,但在提高新用戶特征的準確描述方面一直是研究的熱點;采用用戶偏好問卷調查,再結合相似性計算的方式,可以取得更能反應個體主觀偏好的推薦結果[8,9]。但受到問卷調查的項目數的影響,操作太多會降低用戶體驗。
為在冷啟動情況下,盡可能完整描述用戶偏好,取得滿意的推薦結果,本文引入層次分析法(analytic hierarchy process,AHP),通過改進成對比較矩陣的生成,簡化用戶的在線比較操作,取得新用戶的初始主觀偏好數據,建立了初始特征模型,并據此完成了基于用戶當前位置的周邊美食推薦。
對新用戶建立初始的美食偏好個性化特征模型,需要對歸屬于同一大類的待推薦餐飲對象,明確權重因素,并對用戶建立權重因素比較矩陣,然后通過計算,得到矩陣的特征向量,這就是該新用戶的初始特征值。
在周邊美食的個性化推薦中,設待推薦的餐飲目標對象O, 其大類分為“滇味、川味、湘菜、魯菜、清真、西餐……”,并定義距離w1、 味道w2、 價格w3和衛生w4這4個用戶偏好權重因素。
根據層次分析法原理,為建立反應用戶偏好的量化特征模型,由用戶兩兩比較4個因素的重要性。將比較結果按式(1)記入,構成該用戶的成對比較矩陣X。 式(1)如下

(1)
X為一個正互反方陣,矩陣元素的值按表1通過用戶主觀比較進行取值。

表1 兩兩因素比較取值
如果w1與wn重要性比較,wn反過來比w1重要,則為倒數。例如:用戶P1的主觀調查結果見表2。用戶P1認為距離w1與味道w2比較,味道w2比距離w1稍重要一點,取值為1/3;距離w1與價格w3比較,距離w1比價格w3重要,取值為5,以此類推。
由表2得到P1的成對比較矩陣為

表2 P1主觀調查-重要性比較結果

用戶主觀比較次數多,一方面會導致用戶體驗差,完成的可行性降低;另一方面還增加了由于成對比較矩陣的一致性不滿足而導致失效的概率。而一旦一致性不滿足,要不重新讓用戶比較修改,要不通過計算偏差進行重構[10,11],或采用迭代、極大似然估計或建立擾動偏差矩陣進行修正[12,13]。但這些方法都屬于事后彌補,將造成執行效率和用戶體驗的嚴重下降。
為降低用戶的比較次數,獲得滿足一致性的比較矩陣,對比較矩陣的生成進行了優化。
根據成對比較矩陣的構成原理,重要性權重比值為1-9逐漸增強,結合式(1)中的正互反矩陣X, 分析矩陣元素之間的關系,通過推導可以得出:對于兩兩比較,只需完成第一行a1,1a1,2…a1,n的比較,即可根據式(2)計算得出剩余元素的值,從而得到完整的成對比較矩陣X。
比較矩陣的優化構建式(2)表述如下
(2)
其中, 1
其中,ki,j反應了兩個元素之間通過中間元素推導出的大小關系,按式(3)完成計算
ki,j=a′1,j-a′1,i
(3)

計算得到的ki,j值,需要進行歸一化并映射到權重區間1-9。歸一化計算公式如下
ki,j=(|ki,j|-min|ki,j|)/(max|ki,j|-min|ki,j|)
映射公式如下
ki,j=round(1+ki,j*(9-1),0)
這樣,即可在已知a1,n的情況下,求出矩陣X的全部元素值。
為驗證該矩陣優化構建方法的有效性,需要驗證所構成的成對比較矩陣X的一致性。
1.3.1 驗證指標
根據層次分析法提出者Thomas L. Satty的定義,矩陣一致性的驗證通過式(4)計算矩陣的一致性比率CR完成。當CR小于0.1,則矩陣滿足一致性,CR越接近于0,一致性程度越高
CR=CI/RI
(4)
其中,CI=(λ-n)/(n-1)。
λ為矩陣最大特征根,n為矩陣階數,RI按表3取值。

表3 RI取值
1.3.2 驗證結果
驗證方法是通過對用戶P1的主觀判斷表2,分別采用AHP方法和本文的矩陣優化構建方法構造成對比較矩陣,計算矩陣的一致性比率CR,進行比較。
(1)采用AHP方法,通過如表2的6次比較得到的矩陣為1.1小節中的XP1, 計算XP1最大特征值為
λ=4.1707
對應特征向量
WP1=(0.1980,0.4179,0.0623,0.8845)T
根據式(4)計算得到CR=0.059<0.1。
滿足一致性要求。
(2)采用本文所述比較矩陣優化構建方法,通過用戶對距離與味道、距離與價格、距離與衛生的3次比較,按式(2)得出矩陣為X′P1
計算得到其最大特征值λ=4.1237
對應最大特征向量為
W′P1=(0.2245,0.6124,0.0692,0.7548)T
計算得到CR=0.04<0.1, 滿足一致性要求。
兩種方法的比較結果見表4。

表4 兩種方法效果比較
從表4看出,采用優化方法構建的矩陣X′P1不僅滿足一致性,而且其CR值比原層次分析法確定矩陣的CR值更接近于0,代表其一致性程度更高。

得到特征矩陣后,將矩陣特征向量作為該個體用戶P1的特征偏好模型,即可完成個性化推薦。
以下基于該方法,以周邊美食的個性化推薦為例,完成算法的比較和驗證。
待推薦對象特征信息庫即周邊餐飲店特征模型庫的建立。
根據所確定的4個用戶偏好權重因素距離w1、 味道w2、 價格w3、 衛生w4。 距離是用戶實時位置與餐飲店之間的距離,需要實時計算。其它因素設定取值規則為通過與平均值作比較的方式取值,取值范圍界定為1~9。值越大,表示比平均水平越好,值越小,表示越差。例如:衛生為9,代表衛生環境條件非常好,而價格為9,表示價格非常便宜,價格競爭優勢非常大。
所建立的對象特征信息庫Catering的主要表結構見表5。

表5 Cartering表結構設計
對待推薦的周邊餐飲采集以上數據信息存入數據表,最終完成待推薦對象特征描述信息庫的初始建立。其味道、價格和衛生等評價指標后續可根據用戶體驗和評價進行動態調整。采集的部分美食餐飲商家信息如圖1所示。

圖1 部分商家特征信息
在推薦時,通過獲取用戶定位信息,計算出與待推薦目標的距離,結合建立的用戶個性特征模型,對待推薦對象信息庫進行檢索,完成推薦。
2.2.1 位置定位和距離計算
在推薦時,計算用戶實時位置與餐飲位置的距離di, 作為推薦特征因素之一。計算時,根據實時獲取的用戶位置經緯度和餐飲點經緯度,通過計算得到兩點間距離,具體計算實現方法見文獻[14]。
位置標注時,借助第三方地圖API來完成開發。針對不同的第三方地圖,由于其坐標系有所不同,需要對實時獲取的定位——國際標準坐標WGS84坐標信息進行轉換,以適應不同坐標系的要求。例如:騰訊和高德為火星坐標GCJ02,百度為百度坐標BD09。計算時調用地圖服務商提供的轉換函數接口,完成坐標轉換,取得正確的位置標注。
2.2.2 推薦算法
對于用戶的初始個性化特征,按1.2節所述方法完成特征矩陣構建,并計算出矩陣的特征向量WPi, 表述了該用戶的偏好觀點。通過對WPi與待推薦對象特征信息Catering表中各個對象的綜合權重計算,按綜合權重由大到小的排序結果即是推薦結果。
具體方法如下:
(1)計算距離因素d′i
計算用戶實時位置和Catering表各個對象之間的距離di。 距離因素表示為各個點到用戶距離的相對遠近優勢,距離越近值越高,表示在距離因素上有優勢。并且同樣將值映射到0-9的區間。計算距離因素d′i式(5)如下
(5)
(2)建立待推薦對象的特征矩陣X′i
取出Cartering表中STasteV(味道)、SPriceV(價格)、SConditionV(衛生)的值作為Ovi
Ovi=(STasteV,SPriceV,SConditionV)
與d′i共同構成Xi, 即
Xi=(d′i,Ovi)
然后,對Xi進行歸一化計算后,得到矩陣X′i。
例如:取Sid為1~3的記錄,距離分別為8、0.1、0.5,則計算得出X′i
(3)計算綜合權重Si
根據該用戶之前得到的特征向量WPi, 按式(6)計算出各個待推薦對象點的綜合權重向量Si

(6)
(4)結果排序
對Si按從大到小的順序排序,排序結果代表了各個餐飲點滿足該用戶主觀偏好的程度,也就是該用戶的推薦結果。
為驗證該用戶初始特征建模和推薦算法的效果,提取20個用戶按本文所述方法建立初始用戶特征模型,然后從待推薦Catering表中提取類別為1的記錄,用本方法向用戶推薦,取排序最大值作為對該用戶的最優推薦結果。同時,將結果與平均值填充法、眾數法的推薦結果進行比較和分析。
評價指標為平均絕對誤差(mean absolute error,MAE)和平均用戶滿意度(mean user satisfaction,MUS)。
MAE計算公式為
(7)
其中,n為驗證用戶數,m為權重因素數,Wr為推薦結果的各個權重因素值,Wu為對應該用戶主觀偏好設定的各個權重因素值。MAE越小代表誤差越小,越符合用戶的要求。
用戶滿意度MUS驗證是根據用戶對各個因素的主觀權重大小,比較首選推薦與其它待推薦之間對應因素的排序位置是否最優,給與分值0~4,0表示很不滿意,1不滿意,2滿意,3很滿意,4非常滿意。MUS值越大,代表用戶滿意度越高。
MUS計算公式為
(8)
其中,n為驗證用戶數,Si為該用戶的滿意度分值。
實驗中用到的部分用戶特征數據見表6,部分餐館對象特征數據見表7。

表6 實驗用部分用戶特征

表7 實驗用部分Catering特征
按照本文方法計算得到的各個餐館針對各個用戶的綜合權重見表8,按表8對每個用戶排序得到用戶的首選推薦結果見表9。與平均值填充法所得推薦結果的MAE和用戶滿意度MUS比較結果見表10、表11。

表8 餐館對應不同用戶特征要求的綜合權重值

表9 推薦結果對應

表10 3種方法的MAE值

表11 3種方法的MUS值
表10、表11轉換為折線圖如圖2、圖3所示。

圖2 MAE實驗結果

圖3 用戶滿意度實驗結果
由圖2平均絕對誤差實驗結果可以看出:本方法建立用戶初始特征得到的推薦結果,其MAE平均值為0.76,平均值填充推薦方法的MAE平均值為1.07,眾數法MAE平均值為1.05,誤差分別降低28.97%和27.62%。此外,本方法誤差曲線很穩定,近似于直線,說明面對不同用戶的差異化需求,本方法的推薦很好地反應了用戶的個性化特征,所得結果與用戶需求的差距控制在0.8以內,更符合用戶的獨特主觀要求。
從圖3用戶滿意度結果來看,本方法推薦結果的用戶滿意度平均值為3.76,平均值填充法滿意度為2.32,眾數法為1.7,本方法滿意度明顯高于平均值法和眾數法,可以取得用戶更滿意的推薦結果,原因在于其它方法沒有針對每個用戶提取個性需求。
本文提出的個性化推薦方法是通過將用戶的主觀意向選擇,根據改進的特征矩陣優化構建方法,用最少的用戶輸入,建立量化特征模型。然后,據此計算待推薦對象特征值的綜合權重,按權重從高到低排序,得到滿足用戶個性需求的推薦結果。
在用戶個性化特征矩陣的生成中,采用本文方法,對于有n個權重因素的個性推薦來說,用戶主觀比較次數從n(n-1)/2次,下降為n-1次,有效地簡化了用戶的輸入操作,提高了效率。
研究結果表明:本文所述方法能夠在冷啟動情況下,建立出能夠準確反應用戶主觀偏好的用戶特征模型,取得滿意的推薦結果。對于解決冷啟動情況下用戶初始特征模型的生成和個性化推薦具有借鑒意義。
在實際應用中,根據用戶體驗數據、評論分析等獲得更精準的動態數據,不斷更新待推薦對象特征信息庫,可進一步提高推薦的實效性、準確性。
此外,本方法主要用于冷啟動下的個性推薦,隨著系統使用后用戶數據的不斷豐富,可引入更多方法實現個性化的混合推薦,以滿足用戶復雜多變的推薦需求。