本發(fā)明涉及信息推薦技術(shù)領(lǐng)域,尤其涉及一種基于動(dòng)態(tài)主題模型和矩陣分解的旅游景點(diǎn)推薦方法。
背景技術(shù):
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)、智能手機(jī)、以及照片分享網(wǎng)站(例如:flickr、panoramio、以及instagram等)的快速發(fā)展,互聯(lián)網(wǎng)上出現(xiàn)了大量帶有地理位置信息的照片數(shù)據(jù)。并且,這些由群體所貢獻(xiàn)的帶有地理位置信息的照片數(shù)量呈現(xiàn)出急劇增長(zhǎng)的趨勢(shì)。基于這些帶有地理位置信息的照片可以挖掘城市中的旅游景點(diǎn)、獲得城市中受游客歡迎的旅游線路、分析游客的旅游偏愛(ài),進(jìn)一步為用戶提供個(gè)性化的旅游景點(diǎn)或者旅游線路推薦服務(wù)。
目前的基于帶有地理位置信息照片挖掘的旅游景點(diǎn)推薦方法通常是直接利用用戶訪問(wèn)景點(diǎn)的次數(shù)信息獲得用戶間的相似性信息,并結(jié)合基于用戶的協(xié)同過(guò)濾方法為用戶推薦景點(diǎn)。然而,由于旅行時(shí)間或者金錢花費(fèi)的限制,用戶在旅游城市中通常只會(huì)游覽少量的景點(diǎn),導(dǎo)致了基于用戶-景點(diǎn)矩陣的推薦系統(tǒng)在建模過(guò)程中出現(xiàn)數(shù)據(jù)稀疏性問(wèn)題。
為解決上述景點(diǎn)推薦中的數(shù)據(jù)稀疏性問(wèn)題,目前出現(xiàn)了基于數(shù)據(jù)降維的景點(diǎn)推薦方法,例如:靜態(tài)主題模型。該模型是文本挖掘領(lǐng)域中一種比較流行的獲得文檔隱含主題的方法。在該模型中,用戶的旅行歷史被看作是文檔,旅游景點(diǎn)被看作是詞。通過(guò)該模型,用戶和景點(diǎn)的主題概率分布可以獲得。然而,靜態(tài)主題模型在基于用戶旅行歷史獲得用戶旅行偏愛(ài)的主題概率分布時(shí),將用戶在所有時(shí)間段內(nèi)(例如:年份)的旅行歷史信息看作成一個(gè)文檔,忽略了用戶在不同時(shí)間段內(nèi)旅行偏愛(ài)的變化問(wèn)題。
動(dòng)態(tài)主題模型是基于靜態(tài)主題模型獲得文檔主題變化的一種擴(kuò)展形式。它通過(guò)將文檔集按照時(shí)間段劃分成子文檔集,假設(shè)每一個(gè)子文檔集的主題具有前后依賴關(guān)系,主題是隨著時(shí)間而演化的。通過(guò)該模型,文檔和詞在不同時(shí)間段的主題概率分布可以獲得,這些在不同時(shí)間段的主題體現(xiàn)了文檔和詞的主題演化過(guò)程。該模型為解決在旅游推薦中靜態(tài)主題模型不能獲得用戶旅行偏愛(ài)的變化問(wèn)題提供了可能。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的問(wèn)題是如何通過(guò)動(dòng)態(tài)主題模型獲得用戶旅行偏愛(ài)變化信息,為用戶提供細(xì)粒度的旅游景點(diǎn)推薦服務(wù)。
一種基于動(dòng)態(tài)主題模型和矩陣分解的旅游景點(diǎn)推薦方法,包括:
獲取數(shù)據(jù)集信息階段:從社交網(wǎng)絡(luò)中獲取照片數(shù)據(jù)集dphoto并對(duì)其進(jìn)行去噪處理,得到旅游照片數(shù)據(jù)集dphoto-travel,再?gòu)纳缃痪W(wǎng)絡(luò)中簽到數(shù)據(jù)dcheck-in,并提取簽到數(shù)據(jù)dcheck-in中的簽到地點(diǎn)的類別信息,得到簽到地點(diǎn)的類別數(shù)據(jù)集dcategory;
獲得用戶旅行偏愛(ài)階段:利用動(dòng)態(tài)主題模型從旅游照片數(shù)據(jù)集dphoto-travel中提取用戶和景點(diǎn)的隱式特征;然后,通過(guò)對(duì)旅游照片數(shù)據(jù)集dphoto-travel的分析,統(tǒng)計(jì)得到用戶和景點(diǎn)的顯式特征,并結(jié)合用戶和景點(diǎn)的隱式特征獲得用戶-用戶和景點(diǎn)-景點(diǎn)相似性信息;最后,利用帶有聯(lián)合正則項(xiàng)的矩陣分解方法融合用戶-用戶和景點(diǎn)-景點(diǎn)的相似性信息,補(bǔ)全稀疏的用戶-景點(diǎn)矩陣y,得到含有用戶旅行偏愛(ài)信息的矩陣y’;
推薦旅游景點(diǎn)階段:利用矩陣y’對(duì)候選集中的景點(diǎn)打分,并將打分排名前n個(gè)旅游景點(diǎn)推薦給用戶。
所述的獲取數(shù)據(jù)集信息階段的具體步驟為:
(1-1)利用照片分享網(wǎng)站的公用api下載旅游城市中帶有地理位置信息的照片數(shù)據(jù),組成照片數(shù)據(jù)集dphoto;
(1-2)利用基于熵的流動(dòng)性方法對(duì)照片數(shù)據(jù)集dphoto中的非旅游照片進(jìn)行過(guò)濾,去除照片集中的噪音照片,得到旅游照片數(shù)據(jù)集dphoto-travel;
(1-3)利用基于位置的社交媒體網(wǎng)站的公用api下載用戶在旅游城市中的簽到數(shù)據(jù)dcheck-in;
(1-4)提取簽到數(shù)據(jù)dcheck-in中的簽到地點(diǎn)的類別信息,并統(tǒng)計(jì)組成簽到地點(diǎn)的類別數(shù)據(jù)集dcategory。
所述的照片數(shù)據(jù)集dphoto中的照片數(shù)據(jù)包含:照片的標(biāo)識(shí)信息、照片拍攝時(shí)間、照片拍攝地點(diǎn)的經(jīng)緯度信息、用戶為照片添加的文本描述信息以及照片上傳者的標(biāo)識(shí)信息。
所述的簽到數(shù)據(jù)dcheck-in中的簽到數(shù)據(jù)包括:用戶簽到行為的標(biāo)識(shí)信息、用戶簽到的時(shí)間信息、簽到地點(diǎn)的經(jīng)緯度信息、簽到地點(diǎn)的類別信息以及簽到用戶的標(biāo)識(shí)信息。
所述的獲得用戶旅行偏愛(ài)階段的具體步驟為:
(2-1)利用基于密度的聚類方法對(duì)旅游照片數(shù)據(jù)集dphoto-travel中的照片進(jìn)行空間聚類,獲得旅游景點(diǎn)集合l;
(2-2)根據(jù)從旅游照片數(shù)據(jù)集dphoto-travel統(tǒng)計(jì)得到的用戶訪問(wèn)景點(diǎn)的次數(shù)、旅游景點(diǎn)集合l中的旅游景點(diǎn),構(gòu)建用戶-景點(diǎn)矩陣y;
(2-3)將文檔代表用戶旅行歷史,詞代表旅游景點(diǎn),利用動(dòng)態(tài)主題模型推斷用戶和景點(diǎn)在不同時(shí)間段的潛在主題概率分布,并聯(lián)合所有時(shí)間段的主題概率分布,得到用戶的全部隱式特征
(2-4)從旅游照片數(shù)據(jù)集dphoto-trave和簽到地點(diǎn)的類別數(shù)據(jù)集dcategorye中提取用戶的顯式特征
(2-5)根據(jù)建立的y、a、以及b,利用用戶-用戶以及景點(diǎn)-景點(diǎn)的相似性關(guān)系構(gòu)建帶有聯(lián)合正則項(xiàng)的矩陣分解模型,完成對(duì)y的分解;
(2-6)根據(jù)帶有聯(lián)合正則項(xiàng)的矩陣分解的結(jié)果,補(bǔ)全稀疏的用戶-景點(diǎn)矩陣y,得到含有用戶旅行偏愛(ài)信息的矩陣y’。
所述的步驟(2-2)的具體步驟為:
(2-2-1)從旅游照片數(shù)據(jù)集dphoto-trave中提取所有的訪問(wèn)信息v=(l,u,t),其中,v表示用戶u于t時(shí)間訪問(wèn)旅游景點(diǎn)l;
(2-2-2)根據(jù)所有的訪問(wèn)信息v=(l,u,t)統(tǒng)計(jì)每個(gè)用戶訪問(wèn)每個(gè)景點(diǎn)的次數(shù)和旅游照片數(shù)據(jù)集dphoto-trave中的用戶總個(gè)數(shù)m;
(2-2-3)根據(jù)每個(gè)用戶訪問(wèn)每個(gè)景點(diǎn)的次數(shù)、用戶總個(gè)數(shù)m以及旅游景點(diǎn)集合l中的共計(jì)n個(gè)旅游景點(diǎn),構(gòu)建用戶-景點(diǎn)矩陣y,其中,y∈rm×n,矩陣y中(i,j)位置處的值為第i個(gè)用戶訪問(wèn)第j個(gè)景點(diǎn)的次數(shù)。
所述的步驟(2-3)的具體步驟為:
(2-3-1)將旅游照片數(shù)據(jù)集dphoto-trave中所有的訪問(wèn)信息v=(l,u,t)按照相同的時(shí)間長(zhǎng)度切片,得到與每個(gè)時(shí)間段對(duì)應(yīng)子數(shù)據(jù)集,共m個(gè);
(2-3-2)將子數(shù)據(jù)集作為動(dòng)態(tài)主題模型的輸入,通過(guò)訓(xùn)練獲得用戶和景點(diǎn)在不同時(shí)間段的主題概率分布,
其中,
(2-3-3)將用戶在所有時(shí)間段的主題概率分布按時(shí)間串聯(lián)在一起,組成用戶的全部隱式特征
所述的步驟(2-4)的具體步驟為:
(2-4-1)對(duì)旅游照片數(shù)據(jù)集dphoto-trave中所有的訪問(wèn)信息v=(l,u,t)和簽到地點(diǎn)的類別數(shù)據(jù)集dcategory進(jìn)行統(tǒng)計(jì),獲得用戶的顯式特征
(2-4-2)將用戶的顯式特征與隱式特征聯(lián)合一起,構(gòu)建用戶畫(huà)像
(2-4-3)結(jié)合余弦公式獲得用戶-用戶相似性矩陣a:
其中,fpi和fqi分別表示用戶p和q的第i個(gè)顯式特征;
同樣利用余弦公式獲得景點(diǎn)-景點(diǎn)相似性矩陣b,此時(shí),余弦公式為:
其中,fx′i和fy′i分別表示景點(diǎn)x和y的第i個(gè)顯式特征。
步驟(2-5)中,在矩陣y的分解過(guò)程中,將a和b的相似性信息作為額外正則項(xiàng)限制y的分解,具體的目標(biāo)函數(shù)為:
其中,rij為矩陣y中(i,j)位置處的數(shù)值,iij表示是用戶i是否訪問(wèn)景點(diǎn)j的標(biāo)識(shí)器,如果訪問(wèn),其值為1,否則為0,simig表示用戶i和用戶g之間的相似性信息,simjq表示景點(diǎn)j和景點(diǎn)q景點(diǎn)之間的相似性信息;ui表示為用戶i的潛在特征向量,ug表示為用戶g的潛在特征向量,lj表示為景點(diǎn)j的潛在特征向量,lg表示為景點(diǎn)g的潛在特征向量,
基于帶有聯(lián)合正則項(xiàng)的矩陣分解模型分解y的具體步驟如下:
(a)隨機(jī)初始化參數(shù)u和參數(shù)l,并設(shè)置學(xué)習(xí)率α、誤差閾值δ、參數(shù)λ1和λ2;
(b)對(duì)于y中每一個(gè)非零值rij,根據(jù)
(c)判斷總誤差θ是否大于誤差閾值δ,若是,執(zhí)行步驟(d),若否,迭代結(jié)束,此時(shí)的u和l為最優(yōu)值,完成對(duì)矩陣y的分解;
(d)采用梯度下降方法更新u和l的值,然后跳轉(zhuǎn)執(zhí)行步驟(b),梯度下降方法的公式為:
步驟(2-6)中,根據(jù)公式
所述的推薦旅游景點(diǎn)階段的具體步驟為:
(3-1)根據(jù)用戶輸入信息獲得用戶在旅游城市中景點(diǎn)集合,這些景點(diǎn)作為推薦的候選集;
(3-2)根據(jù)矩陣y’獲得用戶對(duì)推薦的候選集中景點(diǎn)的打分,獲得用戶偏愛(ài)景點(diǎn);
(3-3)對(duì)偏愛(ài)景點(diǎn)的打分進(jìn)行降序排列,選擇打分排名前n個(gè)旅游景點(diǎn)推薦給用戶。
本發(fā)明針對(duì)傳統(tǒng)靜態(tài)主題模型不足以獲得用戶旅行偏愛(ài)的主題演化問(wèn)題,提出一種基于動(dòng)態(tài)主題模型和矩陣分解的旅游景點(diǎn)推薦方法,與現(xiàn)有的方法相比,其優(yōu)點(diǎn)在于:
(1)利用動(dòng)態(tài)主題模型,獲得用戶的旅行偏愛(ài)的主題變化信息(隱式特征信息)。
(2)通過(guò)對(duì)數(shù)據(jù)集信息的分析,獲得了用戶和景點(diǎn)大量顯式特征信息,這些信息與隱式特征信息一起可以全面描述用戶和景點(diǎn)的特點(diǎn)。
(3)通過(guò)帶有聯(lián)合正則項(xiàng)的矩陣分解方法融合用戶-用戶和景點(diǎn)-景點(diǎn)相似性的信息,這種方法可以在用戶-景點(diǎn)矩陣分解的過(guò)程中同時(shí)限制用戶和景點(diǎn)的潛在特征向量,準(zhǔn)確補(bǔ)全用戶-景點(diǎn)矩陣。
附圖說(shuō)明
圖1是本發(fā)明基于動(dòng)態(tài)主題模型和矩陣分解的旅游景點(diǎn)推薦方法流程圖;
圖2是獲取數(shù)據(jù)集信息階段的流程圖;
圖3是獲得用戶旅行偏愛(ài)階段的流程圖;
圖4是基于動(dòng)態(tài)主題模型的文檔生成原理圖;
圖5是推薦旅游景點(diǎn)階段的流程圖。
具體實(shí)施方式
為了更為具體地描述本發(fā)明,下面結(jié)合附圖及具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
如圖1所示,本發(fā)明基于動(dòng)態(tài)主題模型和矩陣分解的旅游景點(diǎn)推薦方法分為獲取數(shù)據(jù)集信息、獲得用戶旅行偏愛(ài)、以及推薦旅游景點(diǎn)三個(gè)階段:
獲取數(shù)據(jù)集信息階段
數(shù)據(jù)處理的流程圖如圖2所示,步驟如下:
s1-1,利用照片分享網(wǎng)站的公用api下載旅游城市中帶有地理位置信息的照片數(shù)據(jù)集dphoto。
獲取照片數(shù)據(jù)的具體步驟包括:
s1-1-1,通過(guò)照片分享網(wǎng)站(如:flickr)提供的公用api,按城市下載在該城市中拍攝的照片及相應(yīng)的元數(shù)據(jù)信息。一張帶有地理位置信息的照片p可以表示為:p=(pid,pt,pg,px,pu)。其中,pid,pt,pg,px,pu分別表示為照片的唯一標(biāo)識(shí)號(hào)、用戶拍攝照片的時(shí)間、照片的經(jīng)緯度信息、用戶為照片添加的文本描述信息、以及照片上傳者的唯一標(biāo)識(shí)號(hào);
s1-1-2,對(duì)收集的照片集按照照片的唯一標(biāo)識(shí)信息獲得每個(gè)用戶拍攝的所有照片信息,hi={p1,p2,…,pe},其中,e為用戶i拍攝的所有照片數(shù)。
s1-2,利用基于熵的流動(dòng)性方法對(duì)照片數(shù)據(jù)集dphoto中的非旅游照片進(jìn)行過(guò)濾,去除照片集中的噪音照片,得到旅游照片數(shù)據(jù)集dphoto-travel。
去除非旅游照片的具體步驟如下:
s1-2-1,根據(jù)照片內(nèi)容以及經(jīng)驗(yàn)知識(shí)對(duì)用戶的照片集進(jìn)行人工標(biāo)注少量旅游照片和非旅游照片;
s1-2-2,將城市分成x′×y′個(gè)小格子(每個(gè)小格子表示為(xi,yj),i=1,2,…,x;j=1,2,…,y),統(tǒng)計(jì)用戶的照片在這些小格子中的照片數(shù)目,并計(jì)算每個(gè)小格子中照片占整個(gè)照片數(shù)量的比例a,根據(jù)信息熵的原理計(jì)算用戶的照片集的流動(dòng)性熵hmobility,計(jì)算過(guò)程如公式如下式所示
根據(jù)hmobility>ε,調(diào)節(jié)ε的值(從0到1,每隔0.1),統(tǒng)計(jì)對(duì)人工標(biāo)注照片集的分類準(zhǔn)確率,選擇準(zhǔn)確率高的ε對(duì)整個(gè)數(shù)據(jù)集中的照片進(jìn)行分類,去除非旅游照片。
s1-3,利用基于位置的社交媒體網(wǎng)站的公用api下載用戶在旅游城市中的簽到數(shù)據(jù)dcheck-in。
獲取簽到數(shù)據(jù)的具體步驟包括:
s1-3-1,通過(guò)基于位置的社交媒體網(wǎng)站(如:sinaweibo)提供的公用api,按城市下載在該城市中用戶簽到的數(shù)據(jù)。用戶的一次簽到行為q可以表示為:q=(qid,qt,qg,qc,qu);其中,qid,qt,qg,qc,qu分別表示簽到行為的唯一標(biāo)識(shí)號(hào)、用戶簽到的時(shí)間、興趣點(diǎn)的經(jīng)緯度信息、興趣點(diǎn)的類別信息、以及簽到用戶的唯一標(biāo)識(shí)號(hào);
s1-3-2,根據(jù)用戶簽到數(shù)據(jù)的用戶標(biāo)識(shí)號(hào)提取每個(gè)用戶的所有簽到數(shù)據(jù);qi={q1,q2,…,qo},其中,o為用戶i在城市中的所有簽到數(shù)。
s1-4,提取簽到數(shù)據(jù)dcheck-in中的簽到地點(diǎn)的類別信息,并統(tǒng)計(jì)組成簽到地點(diǎn)的類別數(shù)據(jù)集dcategory。
用戶簽到行為信息中包含用戶訪問(wèn)興趣點(diǎn)時(shí)添加的一些類別信息,對(duì)這些信息進(jìn)行統(tǒng)計(jì)可以獲得每個(gè)興趣點(diǎn)所有的類別信息,具體可以表示為:cpoi=(c1,c2,…,cz)。其中,z為興趣點(diǎn)包含的類別數(shù)目。
獲得用戶旅行偏愛(ài)階段
獲得用戶旅行偏愛(ài)階段的流程圖如圖3所示,步驟如下:
s2-1,利用基于密度的聚類方法對(duì)帶有地理位置信息的照片進(jìn)行空間聚類,從而獲得旅游城市中旅游景點(diǎn)集合l。
用戶通常在其比較感興趣的地點(diǎn)拍攝照片,如果大量用戶在一個(gè)地點(diǎn)拍攝照片,則該地點(diǎn)可以認(rèn)為是一個(gè)旅游景點(diǎn)。采用基于密度的聚類方法(例如:p-dbscan)對(duì)大量帶有地理位置信息的照片進(jìn)行空間上的聚類,得到的每個(gè)聚類代表一個(gè)旅游景點(diǎn),聚類中心即為該旅游景點(diǎn)位置。通過(guò)該過(guò)程,挖掘出旅游景點(diǎn)集l={l1,l2,…,ln},其中l(wèi)={pl,gl},pl是屬于一個(gè)景點(diǎn)的所有照片集合,gl是一個(gè)景點(diǎn)的經(jīng)緯度信息。
s2-2,根據(jù)從照片中挖掘的旅游景點(diǎn)以及用戶在景點(diǎn)的訪問(wèn)歷史,統(tǒng)計(jì)用戶訪問(wèn)景點(diǎn)的次數(shù)信息,構(gòu)建用戶-景點(diǎn)矩陣y。
建立用戶-景點(diǎn)矩陣的具體步驟包括:
s2-2-1,從照片集中提取用戶對(duì)景點(diǎn)的歷史訪問(wèn)信息,v=(l,u,t)。其中,l,u,t分別為用戶訪問(wèn)的旅游景點(diǎn)、用戶的標(biāo)示、以及用戶訪問(wèn)該景點(diǎn)的時(shí)間。
s2-2-2,統(tǒng)計(jì)用戶訪問(wèn)景點(diǎn)次數(shù)。構(gòu)建的用戶-景點(diǎn)矩陣可以表示為y:y∈rm×n,m和n分別表示用戶和景點(diǎn)個(gè)數(shù),矩陣中的值為用戶訪問(wèn)景點(diǎn)的次數(shù)。
s2-3,將文檔代表用戶旅行歷史,詞代表旅游景點(diǎn),利用動(dòng)態(tài)主題模型推斷用戶和景點(diǎn)在不同時(shí)間段的潛在主題概率分布,并聯(lián)合所有時(shí)間段的主題概率分布,得到用戶的全部隱式特征
動(dòng)態(tài)主題模型是已經(jīng)被研究者成功用于獲得文檔的潛在主題變化的應(yīng)用中。對(duì)于一個(gè)文檔,其具體生成過(guò)程如圖4所示。在該圖中,文檔集按照時(shí)間被分成幾個(gè)子文檔集,不同時(shí)間段的文檔集和詞的主題是具有前后依賴關(guān)系的,后一個(gè)時(shí)間段的主題分布是由前一個(gè)時(shí)間段主題演化而來(lái)。α是控制子文檔集的主題分布的參數(shù),θ是控制單個(gè)文檔的主題分布的參數(shù),β是控制主題在詞上的概率分布參數(shù),z表示主題,k表示主題個(gè)數(shù),w表示詞,n表示文檔,a表示子文檔集。通過(guò)該模型,文檔和詞在不同時(shí)間段的主題概率分布都可以獲得。
在基于帶有地理位置信息照片挖掘的旅游推薦中,用戶的旅行歷史信息可以被看作是多個(gè)主題的組合,每個(gè)主題是多個(gè)景點(diǎn)的概率分布。簡(jiǎn)單地說(shuō),在使用動(dòng)態(tài)主題模型時(shí),文檔代表用戶旅行歷史,詞代表旅游景點(diǎn)。
s2-3-1,獲得用戶和景點(diǎn)隱式特征的具體步驟包括:
將用戶的旅游歷史信息按照時(shí)間切片(例如:年份)劃分為不同的子數(shù)據(jù)集。
s2-3-2,將子數(shù)據(jù)集作為動(dòng)態(tài)主題模型的輸入,通過(guò)訓(xùn)練獲得用戶和景點(diǎn)在不同時(shí)間段的主題概率分布,
其中,
s2-3-3,將用戶在所有時(shí)間段的主題概率分布按時(shí)間串聯(lián)在一起,組成用戶的全部隱式特征
s2-4,從用戶旅行歷史中提取用戶的顯式特征
建立a和b的具體步驟包括:
s2-4-1,對(duì)用戶訪問(wèn)景點(diǎn)的歷史信息進(jìn)行統(tǒng)計(jì)(例如:用戶訪問(wèn)景點(diǎn)的總個(gè)數(shù)、一個(gè)景點(diǎn)被訪問(wèn)的總用戶數(shù)、景點(diǎn)類別信息等),獲得大量顯示信息以描述用戶和景點(diǎn)的特征,分別表示為:
性別和年齡信息:游客的這些信息通過(guò)第三方網(wǎng)絡(luò)服務(wù)對(duì)照片的內(nèi)容進(jìn)行分析獲得。例如:www.alchemyapi.com,當(dāng)該網(wǎng)絡(luò)服務(wù)獲得一張上傳的照片時(shí),它會(huì)調(diào)用其api函數(shù)(即,alchemyvisionfacedetectionandrecognitionapi)對(duì)照片進(jìn)行分析,然后返回給上傳者該照片中所出現(xiàn)的人臉的性別和年齡信息。對(duì)所有在一個(gè)景點(diǎn)拍攝的照片中人臉的性別和年齡信息進(jìn)行統(tǒng)計(jì),即可獲得該景點(diǎn)的性別和年齡信息的分布。類似的,通過(guò)對(duì)一個(gè)用戶所拍攝的所有照片中人臉的性別和年齡信息的統(tǒng)計(jì),獲得該用戶所拍攝照片中的人臉的性別和年齡信息的分布。
天氣信息:基于第三方天氣網(wǎng)絡(luò)服務(wù)、照片的經(jīng)緯度信息、以及照片拍攝的時(shí)間可以獲得該照片拍攝時(shí)的天氣信息。例如:wundgerground.com,通過(guò)該網(wǎng)絡(luò)服務(wù)的api函數(shù),可以獲得每個(gè)位置的不同時(shí)間點(diǎn)的天氣信息。對(duì)用戶在不同天氣條件下拍攝的照片進(jìn)行統(tǒng)計(jì),可以獲得該景點(diǎn)在不同天氣情況下受游客歡迎的程度。
s2-4-2,將用戶和景點(diǎn)的顯式特征以及隱式特征聯(lián)合一起,構(gòu)建用戶和景點(diǎn)的畫(huà)像,即:
s2-4-3,結(jié)合余弦公式獲得用戶-用戶相似性矩陣a(m×m):
其中,fpi和fqi分別表示用戶p和q的第i個(gè)顯式特征;
同樣利用余弦公式獲得景點(diǎn)-景點(diǎn)相似性矩陣b(n×n),此時(shí),余弦公式為:
其中,f′xi和f′yi分別表示景點(diǎn)x和y的第i個(gè)顯式特征。
s2-5,根據(jù)建立的y、a、以及b,利用用戶-用戶以及景點(diǎn)-景點(diǎn)的相似性關(guān)系構(gòu)建帶有聯(lián)合正則項(xiàng)的矩陣分解模型,完成對(duì)y的分解。
在y分解過(guò)程中,將a和b的相似性信息作為額外正則項(xiàng)限制y的分解,具體的目標(biāo)函數(shù)為:
在該公式中simig表示用戶ui和用戶ug之間的相似性信息,simjq表示景點(diǎn)lj和lq景點(diǎn)之間的相似性信息。u(d×m)和l(d×n)分別是y分解后的用戶和景點(diǎn)的潛在向量表示。其中,m、n、以及d分別表示用戶個(gè)數(shù)、景點(diǎn)個(gè)數(shù)、以及潛在特征向量的個(gè)數(shù)。
基于帶有聯(lián)合正則項(xiàng)的矩陣分解模型分解y的具體步驟如下:
(a)隨機(jī)初始化參數(shù)u和參數(shù)l,并設(shè)置學(xué)習(xí)率α、誤差閾值δ、參數(shù)λ1和λ2;
(b)對(duì)于y中每一個(gè)非零值rij,根據(jù)
(c)判斷總誤差θ是否大于誤差閾值δ,若是,執(zhí)行步驟(d),若否,迭代結(jié)束,此時(shí)的u和l為最優(yōu)值,完成對(duì)矩陣y的分解;
(d)采用梯度下降方法跟新u和l的值,然后跳轉(zhuǎn)執(zhí)行步驟(b),梯度下降方法的公式為:
s2-6,根據(jù)帶有聯(lián)合正則項(xiàng)的矩陣分解的結(jié)果,補(bǔ)全稀疏的y,獲得用戶旅行偏愛(ài)。
根據(jù)公式
表1用戶顯式特征信息
表2景點(diǎn)顯式特征信息
推薦旅游景點(diǎn)階段
推薦旅游景點(diǎn)的流程如圖5所示,主要包括以下步驟:
s3-1,根據(jù)用戶輸入信息獲得用戶在旅游城市中(目的地)景點(diǎn)集合,這些景點(diǎn)作為推薦的候選集。
根據(jù)用戶的id和用戶旅游城市c(目的地),在補(bǔ)全的用戶-景點(diǎn)矩陣中進(jìn)行查找,獲得該旅游城市c中的景點(diǎn)集合l′。
s3-2,根據(jù)步驟1的結(jié)果和補(bǔ)全的用戶-景點(diǎn)矩陣獲得用戶對(duì)這些景點(diǎn)的打分,即獲得用戶對(duì)這些景點(diǎn)的偏愛(ài)。
補(bǔ)全的用戶-景點(diǎn)矩陣中的每一個(gè)值體現(xiàn)了用戶對(duì)不同景點(diǎn)的偏愛(ài)打分,根據(jù)該矩陣以及l(fā)′可以獲得用戶在旅游城市中對(duì)不同景點(diǎn)的偏愛(ài)。
s3-3,根據(jù)s3-2對(duì)景點(diǎn)進(jìn)行排序,選擇topn旅游景點(diǎn)推薦給用戶。
根據(jù)用戶在旅游城市中不同景點(diǎn)的打分,按照降序進(jìn)行排列,將排在前面的n個(gè)景點(diǎn)推薦給用戶。
以上所述的具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案和有益效果進(jìn)行了詳細(xì)說(shuō)明,應(yīng)理解的是以上所述僅為本發(fā)明的最優(yōu)選實(shí)施例,并不用于限制本發(fā)明,凡在本發(fā)明的原則范圍內(nèi)所做的任何修改、補(bǔ)充和等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。