鄭恩讓, 韓國鋒, 劉 晨
(陜西科技大學(xué) 電氣與信息工程學(xué)院, 陜西 西安 710021)
隨著網(wǎng)絡(luò)技術(shù)的迅速普及和發(fā)展,人們通過互聯(lián)網(wǎng)可以便捷地、快速地獲取自身所需的旅游信息,并且人們也可以在互聯(lián)網(wǎng)中上傳各種旅游游記,照片等信息.但是,隨著用戶生成海量的旅游相關(guān)信息,導(dǎo)致了信息過載的問題,使得人們并不能從海量數(shù)據(jù)中迅速獲取想要查詢的旅游信息.因此,人們提出旅游信息推薦系統(tǒng).
在旅游推薦系統(tǒng)中,根據(jù)旅游推薦算法是否可以為不同的用戶推薦“量身定做”的推薦結(jié)果,可以將其分為基于大眾行為的旅游推薦和個性化旅游推薦.基于大眾行為的旅游推薦是指推薦結(jié)果沒有因為個體差異而不同,例如推薦給用戶熱門景點.為提升用戶體驗,以精準化個性化服務(wù)為目標,提出基于個性化旅游推薦,即推薦系統(tǒng)根據(jù)用戶個體差異進行針對性推薦.常見的個性化旅游推薦算法是基于協(xié)同過濾的旅游推薦[1]和基于內(nèi)容的旅游推薦[2].
基于協(xié)同過濾的旅游推薦算法主要通過分析用戶與用戶之間的關(guān)系,將目標用戶的相似用戶的喜好推薦給目標用戶.基于協(xié)同過濾的旅游推薦算法可以分為基于景點的協(xié)同過濾旅游推薦(item-based collaborative filtering recommendation)和基于用戶的協(xié)同過濾旅游推薦(user-based collaborative filtering recommendation).基于景點的協(xié)同過濾旅游推薦是通過計算不同用戶對不同景點的評分獲得景點間的關(guān)系;基于用戶的協(xié)同過濾旅游推薦[3]是根據(jù)用戶對不同景點類型的興趣特征,然后計算目標用戶與其他用戶的相似度,再采用K近鄰算法發(fā)現(xiàn)與目標用戶有類似喜好的相似用戶,最后根據(jù)相似用戶的興趣喜好實現(xiàn)對目標用戶進行推薦.
但是,基于協(xié)同過濾的旅游推薦會面臨數(shù)據(jù)稀疏和冷啟動兩大難題,大大影響了推薦效果.而基于內(nèi)容的旅游推薦更加專注于分析景點信息的特征從而挖掘有價值的信息,進而為用戶推薦與其歷史偏好相似的景點,并且基于內(nèi)容的旅游推薦可以有效地避免協(xié)同過濾的冷啟動問題.因此,融入基于內(nèi)容的旅游推薦可以很好的彌補基于用戶的協(xié)同過濾旅游推薦的缺陷.所以,本文采用混合旅游推薦,即基于協(xié)同過濾的旅游推薦和基于內(nèi)容的旅游推薦相結(jié)合.文獻[4]和文獻[5]通過利用混合推薦方法提升個性化旅游推薦系統(tǒng)的推薦性能.
然而,傳統(tǒng)的機器學(xué)習(xí)算法需要大量的已標記數(shù)據(jù)進行訓(xùn)練,從而得到性能良好的推薦模型.但是,實際情況是網(wǎng)絡(luò)獲取的大量用戶生成數(shù)據(jù)都是缺少標記,而大量的人工標記耗費太多的時間.針對缺少已標記數(shù)據(jù)的問題,考慮利用與目標任務(wù)相關(guān)的其他領(lǐng)域的大量已標記數(shù)據(jù),在已標記數(shù)據(jù)的輔助之下,對目標模型進行訓(xùn)練,從而得到性能良好的推薦模型.將其他領(lǐng)域的已標記數(shù)據(jù)記為輔助數(shù)據(jù),目標領(lǐng)域的數(shù)據(jù)記為目標數(shù)據(jù),因此引入域適應(yīng)(Domain Adaptation)[6],主要解決當輔助域任務(wù)與目標域任務(wù)相同時,輔助數(shù)據(jù)與目標數(shù)據(jù)之間存在分布差異的問題.文獻[7]為了解決標記數(shù)據(jù)稀少而導(dǎo)致的冷啟動問題,提出一種跨域推薦方法來得到用戶興趣.
因此,本文提出一種基于域適應(yīng)的旅游景點個性化推薦模型,它可以有效地解決已標記數(shù)據(jù)稀缺的問題,并且通過混合推薦更高效地挖掘用戶的潛在興趣,從而實現(xiàn)個性化推薦.首先,利用域適應(yīng)解決標記數(shù)據(jù)稀少的問題;其次,采用混合旅游推薦方法更好地獲取用戶的潛在興趣;最后實現(xiàn)基于域適應(yīng)的旅游景點個性化推薦.本文通過引入全標記的輔助數(shù)據(jù)集,通過域適應(yīng)方法解決目標數(shù)據(jù)集中已標記的景點數(shù)據(jù)稀少的問題,并且使用混合推薦算法,實現(xiàn)個性化旅游景點推薦.
為解決個性化旅游推薦的問題,當使用基于協(xié)同過濾的旅游推薦時,會由于數(shù)據(jù)稀疏和冷啟動問題而影響整體推薦效果,所以,為了解決問題采用混合旅游推薦,在協(xié)同過濾的基礎(chǔ)上融入了基于內(nèi)容的旅游推薦.同時,又由于存在缺少已標記數(shù)據(jù)的問題,因此,本文提出的基于域適應(yīng)的旅游景點個性化推薦模型,旨在利用已有的景點標記數(shù)據(jù)來輔助解決只有少量景點標記數(shù)據(jù)的旅游景點推薦問題.
圖1給出基于域適應(yīng)的旅游景點個性化推薦模型框圖.首先,從社交媒體信息中獲取用戶上傳相冊作為目標數(shù)據(jù)集(其中少量照片帶有標記),并且從搜索引擎上爬取認為有標記的圖像作為輔助數(shù)據(jù)集.其次,對目標數(shù)據(jù)集和輔助數(shù)據(jù)集進行特征提取.在特征層面,由于目標數(shù)據(jù)集與輔助數(shù)據(jù)集之間存在分布差異,所以需要減小兩者之間的分布差異;然后進行分類,進而得到用戶喜好.最后,根據(jù)用戶與用戶之間的關(guān)系,推薦用戶潛在感興趣的景點,從而實現(xiàn)基于域適應(yīng)的旅游景點個性化推薦.
圖1 基于域適應(yīng)的旅游景點個性化推薦模型
基于域適應(yīng)的旅游景點個性化推薦模型分為四部分.第一部分是對目標數(shù)據(jù)集和輔助數(shù)據(jù)集進行特征提?。坏诙糠质峭ㄟ^域適應(yīng)方法來解決目標數(shù)據(jù)集特征(用戶相冊)和輔助數(shù)據(jù)集特征(景點類型數(shù)據(jù)集)之間的數(shù)據(jù)分布差異;第三部分是通過分類器對目標數(shù)據(jù)集(用戶相冊)進行分類,從而得到用戶相冊的景點類型;第四部分是在已經(jīng)成功分類用戶相冊的基礎(chǔ)上,使用基于用戶的協(xié)同過濾推薦方法分析用戶與用戶之間的關(guān)系,從而實現(xiàn)個性化推薦.
在旅游景點推薦系統(tǒng)中,提取出來的旅游景點圖像特征的效果好壞會直接影響到景點類型分類的結(jié)果.隨著特征提取技術(shù)的迅速發(fā)展,視覺詞袋模型(Bag-of-Words,BoW)[8]是當前常用的圖像表示方法.
視覺詞袋模型的生成過程為:首先,利用SIFT算法[9]提取圖像局部特征,得到圖像的描述子;然后利用K-means算法[10]對圖像描述子進行聚類生成視覺詞典,K-means算法將描述子分為K個簇,簇內(nèi)相似度較高,而簇間相似度較低,聚類中心有K個,視覺詞典為K;最后,統(tǒng)計圖像中所有視覺詞匯的出現(xiàn)頻率,進而將圖像表示成一個K維數(shù)值向量.
由于目標數(shù)據(jù)集(用戶相冊數(shù)據(jù)集)U與輔助數(shù)據(jù)集(景點類型數(shù)據(jù)集)S之間存在分布差異,所以需要先減小兩者之間的分布差異,從而實現(xiàn)輔助域數(shù)據(jù)與目標域數(shù)據(jù)同分布.針對數(shù)據(jù)分布差異的問題,文獻[11]提出來一種最小化最大均值差異方法,它可以度量在再生希爾伯特空間中輔助域數(shù)據(jù)與目標域數(shù)據(jù)之間的距離.然后,通過最小化在再生希爾伯特空間中輔助域數(shù)據(jù)與目標域數(shù)據(jù)之間的距離,以此來減小輔助域數(shù)據(jù)與目標域數(shù)據(jù)之間的分布差異.公式可表示為:
(1)
因此,可以通過最小化DISTk(U,S),從而減小用戶相冊數(shù)據(jù)集與景點類型數(shù)據(jù)集之間的分布差異.
在減少輔助域特征數(shù)據(jù)與目標域特征數(shù)據(jù)之間的分布差異基礎(chǔ)上,利用已標記的輔助數(shù)據(jù)集(景點類型數(shù)據(jù)集)S來訓(xùn)練得到一個輔助分類器fa(x),目標是在輔助分類器fa(x)的基礎(chǔ)上,訓(xùn)練得到一個可以準確分類目標數(shù)據(jù)集(用戶相冊數(shù)據(jù)集)U的分類器f(x).在輔助分類器fa(x)的基礎(chǔ)上,引入Δf(x),則f(x)可表示為:
f(x)=fa(x)+Δf(x)=fa(x)+ωTφ(x)
(2)
由公式(2)可得目標函數(shù):
(3)
s.t.ζi≥0
公式(3)的拉格朗日式可表示為:
(4)
式(4)中:拉格朗日乘子αi≥0,μi≥0.
αi=C-μi,?i
(5)
由公式(2)和公式(5)可得:
f(x)=fa(x)+ωTφ(x)=
(6)
因此,由上式可得,
‖f(x)-fa(x)‖=‖Δf(x)‖2=
‖ω‖2
(7)
所以,由公式(7)可知,在再生希爾伯特空間中,輔助函數(shù)fa(x)與目標函數(shù)f(x)之間的距離可以通過正則式‖ω‖2來減小.同時,將公式(5)代入公式(4)可得目標函數(shù)的拉格朗日對偶式:
(8)
因為最小化Lp和最大化LD是一個對偶問題,所以可以通過求解最大化LD來解決最小化Lp.在公式(8)中,若λi<0,則輔助分類器fa(x)錯誤分類了xi,但是為了最大化LD,會得到一個更大的αi.所以,當輔助分類器fa(x)錯誤分類了xi,目標分類器f(x)通過得到一個較大的權(quán)重αi,以此輸出不同于輔助分類器的結(jié)果;當輔助分類器fa(x)正確分類了xi,目標分類器f(x)通過得到一個較小甚至為零的權(quán)重αi,且分類結(jié)果與輔助分類器一致.
因此,可以用已經(jīng)訓(xùn)練好的目標分類器f(x)對目標數(shù)據(jù)集(用戶相冊數(shù)據(jù)集)進行分類,從而得到用戶相冊的景點類型yi.在得到用戶相冊的不同景點類型基礎(chǔ)之上,通過基于用戶的協(xié)同過濾推薦方法來實現(xiàn)旅游景點個性化推薦.
首先,計算目標用戶與其他用戶的相似度,本文采用余弦相似度計算兩個用戶之間的相似度.設(shè)N(u)表示用戶u喜歡的景點類型的集合,N(v)表示用戶v喜歡的景點類型的集合,則用戶u和用戶v之間的余弦相似度可表示為:
(9)
假設(shè),共有n個用戶,則可以構(gòu)建一個相似度矩陣M∈Rn×n,其中sim(u,v)越大,表示用戶u和用戶v之間的相似度越高.因此,通過相似度矩陣,可以得到與目標用戶u最相似的K個用戶,表示為集合T(u,K),然后將集合T中用戶喜愛的景點進行分類,并去除用戶u已經(jīng)喜愛的景點類型.對于每個候選景點類型yi,用戶u對其的感興趣程度用如下公式計算:
(10)
式(10)中:rvi表示用戶v對景點類型yi的喜好程度,在本文中rvi都為1;N(i)表示喜愛景點類型yi的所有用戶集合.
最后,根據(jù)用戶u對候選景點類型yi的感興趣程度來對用戶u實現(xiàn)景點推薦.
本實驗?zāi)繕藬?shù)據(jù)集使用Flickr旅游數(shù)據(jù)集[12],目標數(shù)據(jù)集由4685名用戶提供的206776張圖片組成,一共涵蓋九座城市,分別是巴塞羅那、柏林、芝加哥、倫敦、洛杉磯、紐約、巴黎、羅馬和舊金山.輔助數(shù)據(jù)集從網(wǎng)絡(luò)爬取4000張八類不同的景點類型,分別是自然風(fēng)光、歷史古跡、藝術(shù)文化、購物、運動、娛樂、飲食和夜景,其中每一種景點類型有500張.
(1)支持向量機算法[13](Support Vector Machine,SVM)通過全標記訓(xùn)練數(shù)據(jù)集訓(xùn)練得到的分類器對只有少量標記的測試集進行分類.
(2)跨域支持向量機算法[14](Cross-Domain SVM,CDSVM)利用目標數(shù)據(jù)集對輔助數(shù)據(jù)集產(chǎn)生新的權(quán)重,然后使用新權(quán)重的輔助數(shù)據(jù)集來訓(xùn)練得到新的分類器.
(3)多核學(xué)習(xí)[15](Multiple Kernel Learning,MKL)學(xué)習(xí)一個由多個核函數(shù)線性組合的核函數(shù),然后對目標數(shù)據(jù)集進行分類.
3.3.1分類評價指標
采用查準率(P)、查全率(R)[16]作為景點類型分類實驗的評價準則.
(1)查準率
(11)
(2)查全率
(12)
式(11)和式(12)中:TP表示正樣本被預(yù)測為正;FP表示負樣本被預(yù)測為正;FN表示正樣本被預(yù)測為負.
3.3.2推薦評價指標
采用準確率(Precision)、召回率(Recall)[16]作為實驗的評價準則,比較本文提出的推薦模型與對比算法的推薦效果.準確率表示用戶對推薦景點感興趣的概率,召回率表示用戶感興趣景點被推薦概率.
(1)準確率
(13)
(2)召回率
(14)
式(13)和式(14)中:Pr表示推薦給用戶的景點,Pv表示用戶感興趣的景點.
本實驗在聯(lián)想E4430(Intel(R) Core(TM) i5-4210M CPU @2.6GHz,內(nèi)存為16G)64位Windows10旗艦版操作系統(tǒng)上實現(xiàn).
基于域適應(yīng)的旅游景點個性化推薦算法的實驗過程如下:
(1)提取景點類型相冊和用戶相冊的視覺詞袋模型特征.采用SIFT算法得到圖像的描述子,再對描述子進行K-means聚類生成視覺詞典,本實驗的K值選定為1000.
(2)減小數(shù)據(jù)集特征之間的分布差異.通過最小化最大均值差異的方法來實現(xiàn)景點類型相冊和用戶相冊同分布.
(3)采用分類器分類得到用戶相冊景點類型.在減小景點類型相冊和用戶相冊之間的分布差異的基礎(chǔ)上,分類器分類得到用戶相冊的景點類型.
(4)得到用戶感興趣的景點類型.根據(jù)分類得到的用戶相冊的景點類型,采用基于用戶的協(xié)同過濾推薦方法得到用戶感興趣的景點類型,進而對用戶進行旅游景點推薦.
3.6.1基于域適應(yīng)的旅游景點類型分類算法
首先,以Flickr用戶相冊做為目標數(shù)據(jù)集,景點類型相冊做為輔助數(shù)據(jù)集,采用交叉驗證的方式,隨機選取80%數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),20%數(shù)據(jù)作為測試數(shù)據(jù).然后分別使用Domain Adaptation算法和對比算法對用戶相冊進行景點類型分類,共進行5次交叉驗證實驗,取5次實驗的查準率和查全率的平均值做為結(jié)果,并計算每種分類算法的查全率和查準率的平均值,景點類型分類結(jié)果如表1所示.
表1 景點類型分類結(jié)果
3.6.2 個性化推薦算法評估
在得到用戶相冊的景點類型基礎(chǔ)上,分別在最近鄰用戶個數(shù)為10、20、40、60、80、100的情況下將基于用戶的協(xié)同過濾算法與本文的混合推薦算法進行對比,得到推薦結(jié)果如圖2所示.
圖2 評價指標對比圖
在圖2中,CF為基于用戶的協(xié)同過濾推薦算法,H為本文采用的混合推薦算法.由圖2可知,隨著最近鄰用戶個數(shù)的增加,準確率和召回率也在增加,當近鄰用戶個數(shù)達到80時,準確率和召回率趨于平穩(wěn).并且,實驗表明,本文提出的基于域適應(yīng)的推薦模型在推薦準確率與召回率方面優(yōu)于對比方法,提升了推薦性能.
3.6.3 視覺示例
圖3展示了基于域適應(yīng)的旅游景點推薦的視覺示例.通過分析用戶上傳相冊和用戶與用戶之間的關(guān)系,得到用戶的興趣景點類型,然后根據(jù)用戶的興趣景點類型向用戶進行景點推薦.
圖3 基于域適應(yīng)的旅游景點推薦的視覺示例
利用社交網(wǎng)絡(luò)中海量的數(shù)據(jù)信息,以實現(xiàn)為用戶提供更加精確的旅游景點推薦,本文提出了基于域適應(yīng)的旅游景點個性化推薦模型,首先通過域適應(yīng)方法降低了目標數(shù)據(jù)集(用戶相冊數(shù)據(jù)集)與輔助數(shù)據(jù)集(景點類型數(shù)據(jù)集)之間存在分布差異,分類得到每個用戶的興趣景點類型;然后根據(jù)用戶的不同偏好,采用基于用戶的協(xié)同過濾推薦算法對目標用戶實現(xiàn)個性化景點推薦.實驗表明,本文提出的基于域適應(yīng)的旅游景點推薦模型提升了個性化推薦性能.