王麗清,徐永躍,姚寒冰
(云南大學(xué) 信息學(xué)院,云南 昆明 650091)
互聯(lián)網(wǎng)推薦系統(tǒng)或推薦方法用于幫助人們?cè)诤A啃畔⒅锌焖佟?zhǔn)確地檢索出所需要的信息。其中,被廣泛采用的協(xié)同過濾推薦算法可以根據(jù)用戶的偏好,挖掘用戶與對(duì)象或?qū)ο笈c內(nèi)容之間的相關(guān)性,繼而完成關(guān)聯(lián)性推薦。但協(xié)同過濾的稀疏矩陣計(jì)算、“冷啟動(dòng)”以及可擴(kuò)展性問題,造成了它的局限性[1]。
解決“冷啟動(dòng)”問題的關(guān)鍵是解決新用戶的初始用戶特征模型的建模問題。用戶特征模型通過對(duì)用戶偏好或者特征信息的顯示或隱式的采集完成用戶模型建模。對(duì)于新用戶,需要對(duì)其明確一個(gè)初始特征的定義和采集規(guī)則。為此,有的采用平均值、眾數(shù)、信息熵等數(shù)值填充的方法[2],可以對(duì)新用戶完成推薦,但會(huì)導(dǎo)致個(gè)性化特征缺失;采用聚類分析[3]、社區(qū)發(fā)現(xiàn)[4,5]基于內(nèi)容的推理和協(xié)同[6,7]等方法是通過獲得最近鄰作為新用戶初始值完成推薦,可以提高推薦的可擴(kuò)展性,并一定程度解決初始用戶特征提取的問題,但在提高新用戶特征的準(zhǔn)確描述方面一直是研究的熱點(diǎn);采用用戶偏好問卷調(diào)查,再結(jié)合相似性計(jì)算的方式,可以取得更能反應(yīng)個(gè)體主觀偏好的推薦結(jié)果[8,9]。但受到問卷調(diào)查的項(xiàng)目數(shù)的影響,操作太多會(huì)降低用戶體驗(yàn)。
為在冷啟動(dòng)情況下,盡可能完整描述用戶偏好,取得滿意的推薦結(jié)果,本文引入層次分析法(analytic hierarchy process,AHP),通過改進(jìn)成對(duì)比較矩陣的生成,簡(jiǎn)化用戶的在線比較操作,取得新用戶的初始主觀偏好數(shù)據(jù),建立了初始特征模型,并據(jù)此完成了基于用戶當(dāng)前位置的周邊美食推薦。
對(duì)新用戶建立初始的美食偏好個(gè)性化特征模型,需要對(duì)歸屬于同一大類的待推薦餐飲對(duì)象,明確權(quán)重因素,并對(duì)用戶建立權(quán)重因素比較矩陣,然后通過計(jì)算,得到矩陣的特征向量,這就是該新用戶的初始特征值。
在周邊美食的個(gè)性化推薦中,設(shè)待推薦的餐飲目標(biāo)對(duì)象O, 其大類分為“滇味、川味、湘菜、魯菜、清真、西餐……”,并定義距離w1、 味道w2、 價(jià)格w3和衛(wèi)生w4這4個(gè)用戶偏好權(quán)重因素。
根據(jù)層次分析法原理,為建立反應(yīng)用戶偏好的量化特征模型,由用戶兩兩比較4個(gè)因素的重要性。將比較結(jié)果按式(1)記入,構(gòu)成該用戶的成對(duì)比較矩陣X。 式(1)如下
(1)
X為一個(gè)正互反方陣,矩陣元素的值按表1通過用戶主觀比較進(jìn)行取值。
表1 兩兩因素比較取值
如果w1與wn重要性比較,wn反過來比w1重要,則為倒數(shù)。例如:用戶P1的主觀調(diào)查結(jié)果見表2。用戶P1認(rèn)為距離w1與味道w2比較,味道w2比距離w1稍重要一點(diǎn),取值為1/3;距離w1與價(jià)格w3比較,距離w1比價(jià)格w3重要,取值為5,以此類推。
由表2得到P1的成對(duì)比較矩陣為
表2 P1主觀調(diào)查-重要性比較結(jié)果
用戶主觀比較次數(shù)多,一方面會(huì)導(dǎo)致用戶體驗(yàn)差,完成的可行性降低;另一方面還增加了由于成對(duì)比較矩陣的一致性不滿足而導(dǎo)致失效的概率。而一旦一致性不滿足,要不重新讓用戶比較修改,要不通過計(jì)算偏差進(jìn)行重構(gòu)[10,11],或采用迭代、極大似然估計(jì)或建立擾動(dòng)偏差矩陣進(jìn)行修正[12,13]。但這些方法都屬于事后彌補(bǔ),將造成執(zhí)行效率和用戶體驗(yàn)的嚴(yán)重下降。
為降低用戶的比較次數(shù),獲得滿足一致性的比較矩陣,對(duì)比較矩陣的生成進(jìn)行了優(yōu)化。
根據(jù)成對(duì)比較矩陣的構(gòu)成原理,重要性權(quán)重比值為1-9逐漸增強(qiáng),結(jié)合式(1)中的正互反矩陣X, 分析矩陣元素之間的關(guān)系,通過推導(dǎo)可以得出:對(duì)于兩兩比較,只需完成第一行a1,1a1,2…a1,n的比較,即可根據(jù)式(2)計(jì)算得出剩余元素的值,從而得到完整的成對(duì)比較矩陣X。
比較矩陣的優(yōu)化構(gòu)建式(2)表述如下
(2)
其中, 1
其中,ki,j反應(yīng)了兩個(gè)元素之間通過中間元素推導(dǎo)出的大小關(guān)系,按式(3)完成計(jì)算
ki,j=a′1,j-a′1,i
(3)
計(jì)算得到的ki,j值,需要進(jìn)行歸一化并映射到權(quán)重區(qū)間1-9。歸一化計(jì)算公式如下
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的全部元素值。
為驗(yàn)證該矩陣優(yōu)化構(gòu)建方法的有效性,需要驗(yàn)證所構(gòu)成的成對(duì)比較矩陣X的一致性。
1.3.1 驗(yàn)證指標(biāo)
根據(jù)層次分析法提出者Thomas L. Satty的定義,矩陣一致性的驗(yàn)證通過式(4)計(jì)算矩陣的一致性比率CR完成。當(dāng)CR小于0.1,則矩陣滿足一致性,CR越接近于0,一致性程度越高
CR=CI/RI
(4)
其中,CI=(λ-n)/(n-1)。
λ為矩陣最大特征根,n為矩陣階數(shù),RI按表3取值。
表3 RI取值
1.3.2 驗(yàn)證結(jié)果
驗(yàn)證方法是通過對(duì)用戶P1的主觀判斷表2,分別采用AHP方法和本文的矩陣優(yōu)化構(gòu)建方法構(gòu)造成對(duì)比較矩陣,計(jì)算矩陣的一致性比率CR,進(jìn)行比較。
(1)采用AHP方法,通過如表2的6次比較得到的矩陣為1.1小節(jié)中的XP1, 計(jì)算XP1最大特征值為
λ=4.1707
對(duì)應(yīng)特征向量
WP1=(0.1980,0.4179,0.0623,0.8845)T
根據(jù)式(4)計(jì)算得到CR=0.059<0.1。
滿足一致性要求。
(2)采用本文所述比較矩陣優(yōu)化構(gòu)建方法,通過用戶對(duì)距離與味道、距離與價(jià)格、距離與衛(wèi)生的3次比較,按式(2)得出矩陣為X′P1
計(jì)算得到其最大特征值λ=4.1237
對(duì)應(yīng)最大特征向量為
W′P1=(0.2245,0.6124,0.0692,0.7548)T
計(jì)算得到CR=0.04<0.1, 滿足一致性要求。
兩種方法的比較結(jié)果見表4。
表4 兩種方法效果比較
從表4看出,采用優(yōu)化方法構(gòu)建的矩陣X′P1不僅滿足一致性,而且其CR值比原層次分析法確定矩陣的CR值更接近于0,代表其一致性程度更高。
得到特征矩陣后,將矩陣特征向量作為該個(gè)體用戶P1的特征偏好模型,即可完成個(gè)性化推薦。
以下基于該方法,以周邊美食的個(gè)性化推薦為例,完成算法的比較和驗(yàn)證。
待推薦對(duì)象特征信息庫即周邊餐飲店特征模型庫的建立。
根據(jù)所確定的4個(gè)用戶偏好權(quán)重因素距離w1、 味道w2、 價(jià)格w3、 衛(wèi)生w4。 距離是用戶實(shí)時(shí)位置與餐飲店之間的距離,需要實(shí)時(shí)計(jì)算。其它因素設(shè)定取值規(guī)則為通過與平均值作比較的方式取值,取值范圍界定為1~9。值越大,表示比平均水平越好,值越小,表示越差。例如:衛(wèi)生為9,代表衛(wèi)生環(huán)境條件非常好,而價(jià)格為9,表示價(jià)格非常便宜,價(jià)格競(jìng)爭(zhēng)優(yōu)勢(shì)非常大。
所建立的對(duì)象特征信息庫Catering的主要表結(jié)構(gòu)見表5。
表5 Cartering表結(jié)構(gòu)設(shè)計(jì)
對(duì)待推薦的周邊餐飲采集以上數(shù)據(jù)信息存入數(shù)據(jù)表,最終完成待推薦對(duì)象特征描述信息庫的初始建立。其味道、價(jià)格和衛(wèi)生等評(píng)價(jià)指標(biāo)后續(xù)可根據(jù)用戶體驗(yàn)和評(píng)價(jià)進(jìn)行動(dòng)態(tài)調(diào)整。采集的部分美食餐飲商家信息如圖1所示。
圖1 部分商家特征信息
在推薦時(shí),通過獲取用戶定位信息,計(jì)算出與待推薦目標(biāo)的距離,結(jié)合建立的用戶個(gè)性特征模型,對(duì)待推薦對(duì)象信息庫進(jìn)行檢索,完成推薦。
2.2.1 位置定位和距離計(jì)算
在推薦時(shí),計(jì)算用戶實(shí)時(shí)位置與餐飲位置的距離di, 作為推薦特征因素之一。計(jì)算時(shí),根據(jù)實(shí)時(shí)獲取的用戶位置經(jīng)緯度和餐飲點(diǎn)經(jīng)緯度,通過計(jì)算得到兩點(diǎn)間距離,具體計(jì)算實(shí)現(xiàn)方法見文獻(xiàn)[14]。
位置標(biāo)注時(shí),借助第三方地圖API來完成開發(fā)。針對(duì)不同的第三方地圖,由于其坐標(biāo)系有所不同,需要對(duì)實(shí)時(shí)獲取的定位——國際標(biāo)準(zhǔn)坐標(biāo)WGS84坐標(biāo)信息進(jìn)行轉(zhuǎn)換,以適應(yīng)不同坐標(biāo)系的要求。例如:騰訊和高德為火星坐標(biāo)GCJ02,百度為百度坐標(biāo)BD09。計(jì)算時(shí)調(diào)用地圖服務(wù)商提供的轉(zhuǎn)換函數(shù)接口,完成坐標(biāo)轉(zhuǎn)換,取得正確的位置標(biāo)注。
2.2.2 推薦算法
對(duì)于用戶的初始個(gè)性化特征,按1.2節(jié)所述方法完成特征矩陣構(gòu)建,并計(jì)算出矩陣的特征向量WPi, 表述了該用戶的偏好觀點(diǎn)。通過對(duì)WPi與待推薦對(duì)象特征信息Catering表中各個(gè)對(duì)象的綜合權(quán)重計(jì)算,按綜合權(quán)重由大到小的排序結(jié)果即是推薦結(jié)果。
具體方法如下:
(1)計(jì)算距離因素d′i
計(jì)算用戶實(shí)時(shí)位置和Catering表各個(gè)對(duì)象之間的距離di。 距離因素表示為各個(gè)點(diǎn)到用戶距離的相對(duì)遠(yuǎn)近優(yōu)勢(shì),距離越近值越高,表示在距離因素上有優(yōu)勢(shì)。并且同樣將值映射到0-9的區(qū)間。計(jì)算距離因素d′i式(5)如下
(5)
(2)建立待推薦對(duì)象的特征矩陣X′i
取出Cartering表中STasteV(味道)、SPriceV(價(jià)格)、SConditionV(衛(wèi)生)的值作為Ovi
Ovi=(STasteV,SPriceV,SConditionV)
與d′i共同構(gòu)成Xi, 即
Xi=(d′i,Ovi)
然后,對(duì)Xi進(jìn)行歸一化計(jì)算后,得到矩陣X′i。
例如:取Sid為1~3的記錄,距離分別為8、0.1、0.5,則計(jì)算得出X′i
(3)計(jì)算綜合權(quán)重Si
根據(jù)該用戶之前得到的特征向量WPi, 按式(6)計(jì)算出各個(gè)待推薦對(duì)象點(diǎn)的綜合權(quán)重向量Si
(6)
(4)結(jié)果排序
對(duì)Si按從大到小的順序排序,排序結(jié)果代表了各個(gè)餐飲點(diǎn)滿足該用戶主觀偏好的程度,也就是該用戶的推薦結(jié)果。
為驗(yàn)證該用戶初始特征建模和推薦算法的效果,提取20個(gè)用戶按本文所述方法建立初始用戶特征模型,然后從待推薦Catering表中提取類別為1的記錄,用本方法向用戶推薦,取排序最大值作為對(duì)該用戶的最優(yōu)推薦結(jié)果。同時(shí),將結(jié)果與平均值填充法、眾數(shù)法的推薦結(jié)果進(jìn)行比較和分析。
評(píng)價(jià)指標(biāo)為平均絕對(duì)誤差(mean absolute error,MAE)和平均用戶滿意度(mean user satisfaction,MUS)。
MAE計(jì)算公式為
(7)
其中,n為驗(yàn)證用戶數(shù),m為權(quán)重因素?cái)?shù),Wr為推薦結(jié)果的各個(gè)權(quán)重因素值,Wu為對(duì)應(yīng)該用戶主觀偏好設(shè)定的各個(gè)權(quán)重因素值。MAE越小代表誤差越小,越符合用戶的要求。
用戶滿意度MUS驗(yàn)證是根據(jù)用戶對(duì)各個(gè)因素的主觀權(quán)重大小,比較首選推薦與其它待推薦之間對(duì)應(yīng)因素的排序位置是否最優(yōu),給與分值0~4,0表示很不滿意,1不滿意,2滿意,3很滿意,4非常滿意。MUS值越大,代表用戶滿意度越高。
MUS計(jì)算公式為
(8)
其中,n為驗(yàn)證用戶數(shù),Si為該用戶的滿意度分值。
實(shí)驗(yàn)中用到的部分用戶特征數(shù)據(jù)見表6,部分餐館對(duì)象特征數(shù)據(jù)見表7。
表6 實(shí)驗(yàn)用部分用戶特征
表7 實(shí)驗(yàn)用部分Catering特征
按照本文方法計(jì)算得到的各個(gè)餐館針對(duì)各個(gè)用戶的綜合權(quán)重見表8,按表8對(duì)每個(gè)用戶排序得到用戶的首選推薦結(jié)果見表9。與平均值填充法所得推薦結(jié)果的MAE和用戶滿意度MUS比較結(jié)果見表10、表11。
表8 餐館對(duì)應(yīng)不同用戶特征要求的綜合權(quán)重值
表9 推薦結(jié)果對(duì)應(yīng)
表10 3種方法的MAE值
表11 3種方法的MUS值
表10、表11轉(zhuǎn)換為折線圖如圖2、圖3所示。
圖2 MAE實(shí)驗(yàn)結(jié)果
圖3 用戶滿意度實(shí)驗(yàn)結(jié)果
由圖2平均絕對(duì)誤差實(shí)驗(yàn)結(jié)果可以看出:本方法建立用戶初始特征得到的推薦結(jié)果,其MAE平均值為0.76,平均值填充推薦方法的MAE平均值為1.07,眾數(shù)法MAE平均值為1.05,誤差分別降低28.97%和27.62%。此外,本方法誤差曲線很穩(wěn)定,近似于直線,說明面對(duì)不同用戶的差異化需求,本方法的推薦很好地反應(yīng)了用戶的個(gè)性化特征,所得結(jié)果與用戶需求的差距控制在0.8以內(nèi),更符合用戶的獨(dú)特主觀要求。
從圖3用戶滿意度結(jié)果來看,本方法推薦結(jié)果的用戶滿意度平均值為3.76,平均值填充法滿意度為2.32,眾數(shù)法為1.7,本方法滿意度明顯高于平均值法和眾數(shù)法,可以取得用戶更滿意的推薦結(jié)果,原因在于其它方法沒有針對(duì)每個(gè)用戶提取個(gè)性需求。
本文提出的個(gè)性化推薦方法是通過將用戶的主觀意向選擇,根據(jù)改進(jìn)的特征矩陣優(yōu)化構(gòu)建方法,用最少的用戶輸入,建立量化特征模型。然后,據(jù)此計(jì)算待推薦對(duì)象特征值的綜合權(quán)重,按權(quán)重從高到低排序,得到滿足用戶個(gè)性需求的推薦結(jié)果。
在用戶個(gè)性化特征矩陣的生成中,采用本文方法,對(duì)于有n個(gè)權(quán)重因素的個(gè)性推薦來說,用戶主觀比較次數(shù)從n(n-1)/2次,下降為n-1次,有效地簡(jiǎn)化了用戶的輸入操作,提高了效率。
研究結(jié)果表明:本文所述方法能夠在冷啟動(dòng)情況下,建立出能夠準(zhǔn)確反應(yīng)用戶主觀偏好的用戶特征模型,取得滿意的推薦結(jié)果。對(duì)于解決冷啟動(dòng)情況下用戶初始特征模型的生成和個(gè)性化推薦具有借鑒意義。
在實(shí)際應(yīng)用中,根據(jù)用戶體驗(yàn)數(shù)據(jù)、評(píng)論分析等獲得更精準(zhǔn)的動(dòng)態(tài)數(shù)據(jù),不斷更新待推薦對(duì)象特征信息庫,可進(jìn)一步提高推薦的實(shí)效性、準(zhǔn)確性。
此外,本方法主要用于冷啟動(dòng)下的個(gè)性推薦,隨著系統(tǒng)使用后用戶數(shù)據(jù)的不斷豐富,可引入更多方法實(shí)現(xiàn)個(gè)性化的混合推薦,以滿足用戶復(fù)雜多變的推薦需求。