本發(fā)明屬于位置社交網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于位置社交網(wǎng)絡(luò)的商家推薦的優(yōu)化方法。
背景技術(shù):
位置社交網(wǎng)絡(luò)的廣泛使用與其規(guī)模的不斷擴大使得商家推薦系統(tǒng)成為時下熱門應(yīng)用之一。商家推薦系統(tǒng)即為用戶推薦可能感興趣地點的商家。位置社交網(wǎng)絡(luò)中存在著豐富的多源異構(gòu)信息,如社交網(wǎng)絡(luò)關(guān)系,包含經(jīng)緯度的地理位置信息,用戶對商家的點評文本,評分以及相應(yīng)的時間戳信息等。母庸置疑,通過挖掘這些信息可以有效提升個性化商家推薦系統(tǒng)的準確性。
傳統(tǒng)的推薦系統(tǒng)方法可以被無縫地移值到商家推薦系統(tǒng)中。在這種情況下,位置社交網(wǎng)絡(luò)中的商家被看成是一個普通的物品接受用戶點評。然而由于位置社交網(wǎng)絡(luò)的特殊性,其具有傳統(tǒng)推薦系統(tǒng)研究中不具備的多源異構(gòu)信息,而這些信息可以幫助更好的學習到用戶的偏好并有助于提高推薦的準確率,因此融合這些多源信息來進行商家推薦系統(tǒng)的設(shè)計值得研究。盡管之前的一些研究也在這些方面有一些進展,如在一個模型中融入相對較全面的多源異構(gòu)信息來進行推薦,且模型具有一定的魯棒性,即能夠在部分信息缺失的情況下依然能夠保證推薦系統(tǒng)的正常運行,現(xiàn)有的模型關(guān)于社交關(guān)系信息建模方面利用了社交網(wǎng)絡(luò)所具有的天然社交關(guān)系進行商家推薦。然而,最近的社會學研究結(jié)果表明這種方法可能不是最恰當?shù)?。研究指出,將人們聚在一起的?guī)則包括:(1)習慣或生活方式;(2)態(tài)度;(3)口味;(4)道德標準;(5)經(jīng)濟水平;(6)已經(jīng)知道的人。顯然,規(guī)則3和規(guī)則6是現(xiàn)有推薦系統(tǒng)考慮的主流因素,但利用社交網(wǎng)絡(luò)天然社交關(guān)系進行商家推薦存在的最大的問題在于,雖然用戶彼此之間是好友,但彼此間生活方式差異可能會巨大,因此好友推薦的結(jié)果可能跟自己希望的截然不同,而規(guī)則1可能是最直觀的,即利用相似生活方式的社交關(guān)系進行商家推薦則可能更為精準。
技術(shù)實現(xiàn)要素:
為了幫助更好地學習到用戶的偏好,并有助于提高推薦的準確率,本發(fā)明提供一個融合用戶的點評文本,社交關(guān)系以及用戶訪問位置的地理位置信息的聯(lián)合模型的優(yōu)化方案。
為此目的,本發(fā)明采用的技術(shù)方案是一種基于位置社交網(wǎng)絡(luò)的商家推薦的優(yōu)化方法,具體包括如下步驟:
步驟1、構(gòu)建原多源信息融合模型cosolorec,包含內(nèi)容,社交和位置信息;
步驟2、基于生活方式相似的社交關(guān)系信息進行建模,即在cosolorec中社交關(guān)系信息建模階段,采用基于用戶的協(xié)同過濾的方法來預(yù)測商家對用戶的吸引力,通過lda算法引入帶有生活方式屬性的內(nèi)容計算用戶間的相似度;
步驟3、采用余弦相似度進行度量;
步驟4、采用改進的杰卡德相關(guān)系數(shù)進行度量。
進一步,上述步驟1中的原多源信息融合模型包含個人興趣和距離,用下式來表示:
probability=(pex+pim)×((1-λ)pl+λpf)
其中pim表示隱式興趣概率,pex表示顯示興趣概率,pl和pf分別表示地理上距離影響概率和基于好友心理上的影響概率,λ是用來調(diào)整地理距離與心理距離在貢獻概率中的比重大小。
上述步驟2中,所述計算用戶間的相似度的具體步驟如下:
(1)將用戶的日常生活與文檔主題生成模型進行類比,即將用戶的日常生活模擬為文檔,將生活方式作為主題,將活動作為詞;
(2)采用概率主題模型來從“生活文檔”中發(fā)現(xiàn)用戶隱藏的“生活方式向量”;
(3)用戶間生活方式的相似度定義為用戶間整體生活方式向量的相似度與主要生活方式向量相似度相乘的形式。
上述步驟3中所述的整體生活方式向量的生成具體包括:將用戶的日常生活與文檔主題生成模型進行類比,即將用戶的日常生活模擬為文檔,將生活方式作為主題,將活動作為詞,采用概率主題模型來從“生活文檔”中發(fā)現(xiàn)用戶隱藏的“生活方式向量”,具體如下:
令w=[w1,w2....ww]表示一組活動,其中wi是第i個活動,w是活動的總數(shù),令z=[z1,z2....zz]表示一組生活方式,其中zi是第i種生活方式,z是生活方式的總數(shù),令d=[d1,d2....dn]表示一組生活文檔,其中di是第i個生活文檔,n是用戶總數(shù),p(wi|dk)表示在生活文檔dk中出現(xiàn)活動wi的概率,p(wi|zj)表示在生活方式zj中出現(xiàn)活動wi的概率,p(zj|dk)表示在生活文檔中dk中出現(xiàn)生活方式zj的概率,根據(jù)概率主題模型,則有:
p(wi|dk)可以通過使用生活文檔dk的“活動袋”模型容易地得到,計算:
fk(wi)表示活動wi在生活文檔dk中出現(xiàn)的頻次,將給定的所有用戶的生活文檔進行矩陣分解為:p(w|d)=p(w|z)p(z|d)
p(w|d)=[p(w|d1),p(w|d2),...p(w|dn)]是活動-生活文檔矩陣,其包含在每個生活文檔上每個活動出現(xiàn)的概率,p(w|dk)=[p(w1|dk),p(w2|dk),...p(ww|dk)]t是活動-生活文檔矩陣中的第k列,表示用戶k的生活文檔dk上各個活動出現(xiàn)的概率,
p(w|z)=[p(w|z1),p(w|z2),...p(w|zz)]是活動-生活方式矩陣,表示在每個生活方式上每個活動出現(xiàn)的概率,p(w|zk)=[p(w1|zk),p(w2|zk),...p(ww|zk)]t是活動-生活方式矩陣中的第k列,表示用戶k的生活方式zk上各個活動出現(xiàn)的概率。
p(z|dk)=[p(z1|dk),p(z2|dk),...p(zz|dk)]t是生活方式-生活文檔矩陣,其包含每個生活方式在每個生活文檔上出現(xiàn)的概率,據(jù)此獲得所有用戶的生活方式向量:
li=[p(z1|di),p(z2|di),...p(zz|di)]和li′=[p(z1|di′),p(z2|di′),...p(zz|di′)]分別表示用戶i和用戶i′的生活方式向量。
上述步驟3中所述主要生活方式向量的生成具體包括:
首先定義一組用戶的主要生活方式集,即定義用戶i的主要生活方式的集合di是滿足以下要求的所有生活方式的子集:
1)集合的總概率分布大于或等于預(yù)定義的閾值λ;
2)集合中任何生活方式的概率分布大于或等于不在集合中的任何生活方式的概率分布;
3)集合應(yīng)該具有最小數(shù)量的生活方式;
然后按照生活方式的概率以降序排列得到生活方式向量
最后,可以得到用戶i的主要生活方式向量di={zi1,...,ziqi}。
上述相似度的計算過程如下:
用戶i和用戶i′之間的生活方式的相似性,表示為sim(i,i′),定義如下:
sim(i,i′)=simc(i,i′)·simd(i,i′)
其中simc(i,i′)用于測量用戶間整體的生活方式向量的相似度,simd(i,i′)用于測量用戶間主要生活方式向量的相似度。
上述采用余弦相似度進行度量具體包括:采用常用的余弦相似度表示simc(i,i′),即simc(i,i′)=cosθ,θ表示的是用戶i生活方式向量li和用戶i′生活方式向量li′間的夾角。
上述采用改進的杰卡德相關(guān)系數(shù)進行度量具體包括:在杰卡德相關(guān)系數(shù)上做了改進,定義如下:
simd(i,i′)的范圍是[0,1],觀察到相同生活方式的百分比越高,相似性越大,
當di和di′之間沒有重疊時,相似度為0;當di和di′相同時,相似度為1,simc(i,i′)和simd(i,i′)在0和1之間變化。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
1,本發(fā)明在原聯(lián)合模型中利用社交關(guān)系信息建模的基礎(chǔ)上,提出了一種基于相似生活方式的好友推薦方法,定義了一個新的帶有生活方式屬性的相似度來測量兩個用戶生活方式之間的相似性。
2,本發(fā)明通過引入了額外的信息源,使得新相似度的計算更為準確,從而緩解原相似度中所帶來的數(shù)據(jù)稀疏問題,提高了系統(tǒng)推薦準確率。
附圖說明
圖1為cosolorec多源信息融合建模的推薦系統(tǒng)框架圖。
圖2為aggregatedlda圖模型。
圖3為cosolorec概率圖模型。
具體實施方式
以下結(jié)合說明書附圖,對本發(fā)明創(chuàng)造作詳細說明。
本發(fā)明涉及杰卡德相關(guān)系數(shù)模型,文檔主題生成模型等,在原多源信息融合模型中利用社交關(guān)系信息建模階段,提出了一種基于相似生活方式的好友推薦方法,對用戶訪問商家行為進行建模,預(yù)測用戶偏好,從而為用戶個性化地推薦商家。本發(fā)明使用基于相似生活方式的好友關(guān)系的協(xié)同過濾(collaborativefiltering,cf)對社交關(guān)系建模,將用戶的日常生活模型模擬為文本挖掘中的文檔模型,再通過(latentdirichletallocation)lda算法提取出用戶的生活方式向量。
生活方式信息通常無法直接被提取出來,但其與日常生活和活動密切相關(guān)。受文本挖掘領(lǐng)域最新研究的啟發(fā),將用戶的日常生活模型模擬為文本挖掘中的文檔模型。文檔模型認為一篇文章的每個詞語都是通過一定概率選擇了某個主題,并從這個主題中以一定概率選擇某個詞語,若給定所有的文檔,即將文檔-詞矩陣分解成文檔-主題矩陣與主題-詞矩陣,對應(yīng)到日常生活模型,即將生活文檔-活動矩陣分解成生活文檔-生活方式矩陣與生活方式-活動矩陣,再通過lda算法提取出用戶的生活方式向量。
如圖1、圖2及圖3所示,本發(fā)明在一個融合了用戶的點評文本,社交關(guān)系以及用戶訪問位置的地理位置信息的聯(lián)合模型基礎(chǔ)上進行了改進,即在利用社交關(guān)系信息建模階段,基于相似生活方式的好友推薦方法,定義了一個新的帶有生活方式屬性的相似度來測量兩個用戶生活方式之間的相似性。該方法包括如下步驟:
步驟1、原多源信息融合模型
基于圖1的框架提出聯(lián)合模型cosolorec(涉及了內(nèi)容(content),社交(social)和位置(location),因而稱其推薦算法為cosolorec)。該模型結(jié)合了地理信息,社會關(guān)系以及文本等多源異構(gòu)信息。模型由四大部分構(gòu)成,且認為影響一個用戶光顧商家概率的因素大致有兩點,一個是個人興趣,二是距離。每個方面又可以拆分成各兩個小方面。
對于個人興趣來說,可以分為顯式的興趣和隱式的興趣。顯式的興趣可以通過從用戶的點評文本中挖掘得到。具體的采用了隱狄利克雷分布來抽取用戶和商家的主題分布,并通過匹配兩者來判別用戶對商家是否感興趣。顯式興趣之所以稱之為顯式興趣,是因為通過主題模型抽取出來的主題有明確的意義和解釋。相較于顯式興趣,隱式興趣顧名思義則是興趣不可解釋,這是由于除去用戶顯式表露出來的興趣之外,還有很多因素影響著用戶對商戶的興趣,例如心情,天氣以及突發(fā)狀況等。使用概率隱變量模型來對用戶的隱式興趣建模。具體來說,假設(shè)用戶和商家的隱藏興趣由少量的特征來決定,通過用戶特征矩陣和商家特征矩陣的學習可以得到用戶和商家的興趣匹配程度,因而得到在隱藏興趣方面用戶對商戶的感興趣程度(即概率)。對于距離來說,主要分為物理上的距離和心理上的距離。物理上的距離,通過對球形地理空間上用戶光顧商家的行為進行建??梢垣@得用戶在該空間上光顧該商家的概率。心理上的距離由社交網(wǎng)絡(luò)中基于相似生活方式的趨同性理論所保證,表明了用戶在心理上對某一商家的認可程度。用戶對商家的喜好受生活方式相似的好友的影響并與之相近似,因而可以使用生活方式相似的好友對商家的喜好概率來建模用戶對商家心理上的距離的概率。最后通過以下模型來將這幾者信息融合起來,如下所示:
probability=(pex+pim)×((1-λ)pl+λpf)
其中pim表示隱式(implicit)興趣概率,pex表示顯示(explicit)興趣概率,pl和pf分別表示地理上(location)距離影響概率和基于相似生活方式的好友(friend)心理上的影響概率。
lda模型是目前應(yīng)用最廣泛的一種概率主題模型,該模型認為文檔是若干主題的混合分布,而每個主題又是一個關(guān)于單詞的概率分布,它具有比其他模型更全面的文本生成假設(shè),常被用于計算論文的主題向量及基于內(nèi)容的推薦方法。有兩種表示方法,分別為生成模型表示法和圖模型表示法。生成模型適用于僅生成一篇文檔,圖模型適用于生成m份包含n個單詞的文檔。
圖2即采用的是lda圖模型表示法,是一種將概率和傳統(tǒng)的圖結(jié)構(gòu)結(jié)合起來的表示方法。通過圖結(jié)構(gòu)的清晰表示,可以更好地理解概率的分布,具體過程如下:
(1)對文本集中的任意文本d,其單詞集合為nd;
(2)計算該文本d的文本-主題特征向量θ,其中θ是參數(shù)為給定正數(shù)α的多項分布函數(shù),再從參數(shù)為θ的多項分布函數(shù)中隨機采樣得到一個主題z;
(3)計算主題z的主題-單詞特征向量φ,φ是參數(shù)為給定正數(shù)β的多項分布函數(shù),再從參數(shù)為φ的多項分布函數(shù)中隨機采樣得到一個單詞w,且w屬于nd。
為了給用戶推薦其感興趣的商家,因而需要預(yù)測用戶在所有候選商家上的興趣偏好。用戶對商家的興趣偏好高,即表明用戶有更大的可能性會光顧該商家,因而也就更應(yīng)該將商家推薦給該用戶。用戶對商家的光顧可能性在數(shù)學上表示為用戶對商家的光顧概率。用戶對商家的光顧概率受用戶的興趣與用戶與商家的距離兩者調(diào)控。當興趣越大,則光顧概率越高,而當距離越近,則光顧概率也相應(yīng)的越高。
用戶對商家的光顧概率與由距離決定的光顧概率成正比。于是有以下形式:
p(i,j)∝η(i,j)((1-λ)pl(i,j)+λpf(i,j))(1)
其中η(i,j)表示的是用戶i對商家j的興趣大小,pl(i,j)表示的是受地理位置影響的用戶i對商家j的光顧概率,pf(i,j)表示的是受基于相似生活方式的好友關(guān)系影響的用戶i對商家j的光顧概率,λ是用來調(diào)整地理距離與心理距離在貢獻概率中的比重大小。特別的,當λ為1的時候,僅有心理距離作用,這個時候無需對地理距離進行建模。當λ為0的時候,僅有物理距離作用,這個時候無需對心理距離進行建模。由此可見,該模型從某種程度上來說,對于特殊情況下,信息缺失的情況具有很好的魯棒性。由于興趣包含了顯式興趣與隱式興趣兩個方面,因而興趣η(i,j)又有兩個部分構(gòu)成,一為基于概率主題模型的顯式興趣
由此,完整的聯(lián)合模型過程如下:
1.drawauserinterest
(a)generatoruserlatentfactoruiw~gamma(αu,βu)
(b)generatoritemlatentfactorvjw~gamma(αv,βv)
y(i,j)~p(p(i,j))(2)
2.
其中θi表示的是用戶的興趣主題分布,πj表示的是商家表現(xiàn)在用戶感興趣的主題上的分布。ui表示的是用戶的特征向量,vj表示的是商家的特征向量,αu、βu、αv、βv均為超參,uiw與vjw表示的是用戶的興趣和商家的表現(xiàn)的分布。該過程對應(yīng)的概率圖模型如圖3所示。
步驟2、基于生活方式相似的社交關(guān)系信息建模
社交網(wǎng)絡(luò)信息中的社交關(guān)系指的是用戶與用戶建立的或者單向或者雙向的好友連接關(guān)系。在社交網(wǎng)絡(luò)中,根據(jù)“趨同性”理論,用戶傾向與自己有相同興趣愛好的好友建立聯(lián)系,即用戶與自己的好友有相似的興趣愛好。利用社交網(wǎng)絡(luò)的該特性,可以對用戶心理上對商家的距離進行度量。將用戶i的所有對商家j評分過的好友作為用戶i的好友集合,采用基于用戶的協(xié)同過濾的方法來預(yù)測商家對用戶的吸引度,其公式如下:
rf(i,j)指的是用戶i對商家j的預(yù)測評分,
由于概率在【0,1】區(qū)間內(nèi),故將預(yù)測評分歸一化,如下:
其中pf(i,j)表示的是預(yù)測用戶i光顧商家j的概率,rmax是所有評分中的最大值,fi指的是用戶i的所有對商家j評分過的好友集合,ri′j指的是用戶i′對光顧過的商家j的評分,
因此本發(fā)明在原多源信息融合模型中利用社交關(guān)系信息建模的基礎(chǔ)上,提出了一種基于相似生活方式的好友推薦方法,定義了一個新的帶有生活方式屬性的相似度來測量兩個用戶生活方式之間的相似性,具體如下:
令w=[w1,w2,…,ww]表示一組活動,其中wi是第i個活動,w是活動的總數(shù)。令z=[z1,z2,…,zz]表示一組生活方式,其中zi是第i種生活方式,z是生活方式的總數(shù)。令d=[d1,d2,…,dn]表示一組生活文檔,其中di是第i個生活文檔,n是用戶總數(shù)。p(wi|dk)表示在生活文檔dk中出現(xiàn)活動wi的概率,p(wi|zj)表示在生活方式zj中出現(xiàn)活動wi的概率,p(zj|dk)表示在生活文檔dk中出現(xiàn)生活方式zj的概率。根據(jù)概率主題模型,則有:
p(wi|dk)可以通過使用生活文檔dk的“活動袋”模型(對應(yīng)文本挖掘中的詞袋模型)容易地得到計算:
fk(wi)表示活動wi在生活文檔dk中出現(xiàn)的頻次
lk=[p(z1|dk),p(z2|dk)....p(zz|dk)]表示用戶k的生活方式向量,代表該用戶的生活方式。目標是根據(jù)給定的所有用戶的生活文檔發(fā)現(xiàn)每個用戶的生活方式向量。在等式(6)中雖然可以很容易計算p(wi|dk),但是由于生活方式的隱藏特征,p(wi|zj)跟p(zj|dk)難以解決。因此需使用如下lda分解算法來求解方程,從而獲得用戶的生活方式向量。給定所有用戶的生活文檔,公式(6)可以進一步表示為矩陣分解問題:
p(w|d)=p(w|z)p(z|d)(8)
p(w|d)=[p(w|d1),p(w|d2),...p(w|dn)]是活動-生活文檔矩陣,其包含在每個生活文檔上每個活動出現(xiàn)的概率,p(w|dk)=[p(w1|dk),p(w2|dk),...p(ww|dk)]t是活動-生活文檔矩陣中的第k列,表示用戶k的生活文檔dk上各個活動出現(xiàn)的概率。
p(w|z)=[p(w|z1),p(w|z2),...p(w|zz)]是活動-生活方式矩陣,表示在每個生活方式上每個活動出現(xiàn)的概率,p(w|zk)=[p(w1|zk),p(w2|zk),...p(ww|zk)]t是活動-生活方式矩陣中的第k列,表示用戶k的生活方式zk上各個活動出現(xiàn)的概率。
p(z|d)=[p(z|d1),p(z|d2),...p(z|dn)]是生活方式-生活文檔矩陣,其包含在每個生活文檔上每個生活方式出現(xiàn)的概率。
p(z|dk)=[p(z1|dk),p(z2|dk),...p(zz|dk)]t是主題文檔矩陣中的第k列,其表示用戶k的生活方式在生活文檔dk上的概率。
li=[p(z1|di),p(z2|di),...p(zz|di)]和li′=[p(z1|di′),p(z2|di′),...p(zz|di′)]分別表示用戶i和用戶i′的生活方式向量。
由于相似性不僅受他們整體的生活方式向量影響,而且也受最重要的生活方式向量(也稱為主要生活方式)影響,即受矢量內(nèi)具有較大概率值的元素影響。本發(fā)明還認為,如果他們的大多數(shù)生活方式完全不同,兩個用戶不會有很多相似性。因此,用戶i和用戶i′之間的生活方式的相似性,表示為sim(i,i′),定義如下:
其中simc(i,i′)用于測量用戶間整體的生活方式向量的相似度,simd(i,i′)用于測量用戶間主要生活方式向量的相似度。
采用常用的余弦相似性度量表示simc(i,i′),即simc(i,i′)=cosθ,θ表示的是用戶i生活方式向量li和用戶i′生活方式向量li′之間的夾角。(10)
為了計算等式(9)中的simd(i,i′),首先定義一組用戶的主要生活方式集。
定義:用戶i的主要生活方式的集合di是滿足以下要求的所有生活方式的子集:
1)集合的總概率分布大于或等于預(yù)定義的閾值λ。
2)集合中任何生活方式的概率分布大于或等于不在集合中的任何生活方式的概率分布。
3)集合應(yīng)該具有最小數(shù)量的生活方式。
這些要求保證具有較大概率值的生活方式更可能被包括在集合中。為了找到di,按照生活方式的概率以降序排列得到生活方式向量
最后,可以得到主要生活方式集
杰卡德相關(guān)系數(shù)最初被用來衡量兩個集合之間的相似程度,被定義為集合的交集大小與集合的并集大小的比值,其更加適合于離散維度特征的向量之間的相似度,如下:
本發(fā)明的相似性度量simd(i,i′)用于測量兩個用戶的主要生活方式集的相似性,在杰卡德相關(guān)系數(shù)上做了改進,定義如下:
simd(i,i′)的范圍是[0,1],觀察到相同生活方式的百分比越高,相似性越大。
當di和di′之間沒有重疊時,相似度為0;當di和di′相同時,相似度為1。simc(i,i′)和simd(i,i′)在0和1之間變化,得出結(jié)論:相似性度量sim(i,i′)在0和1之間變化。