秦 鵬,賈洪杰,霍興瀛,鄧朝艷
(1. 六盤水師范學院數(shù)學與計算機科學學院,貴州 六盤水 553004:2. 江蘇大學計算機科學與通信工程學院,江蘇 鎮(zhèn)江 212013;3. 六盤水師范學院圖書館,貴州 六盤水 553004)
隨著互聯(lián)網(wǎng)行業(yè)的快速發(fā)展,人們生活中使用的各類電子設備產(chǎn)生了大量的數(shù)據(jù)信息,并隨著信息的爆炸式增長,人們的選擇逐漸多樣化,這無疑增加了人們獲得有用信息的難度,為便捷生活帶來了極大的負面影響,這正是所謂的信息過載問題。面對信息過載,研究者提出多種解決方案,尤其是個性化推薦系統(tǒng)最為常用。推薦系統(tǒng)中最重要的是推薦算法,根據(jù)推薦算法的設計讓用戶獲取信息的方式由簡單到明確,基于這種情況的信息推薦系統(tǒng)能夠根據(jù)用戶的網(wǎng)絡行為,向用戶推薦感興趣的內(nèi)容。
文獻[3]提出2種基于用戶、時間、活動的模型來理解用戶行為愛好,并利用LDA技術針對兩種模型挖掘用戶活動與服務間的對應關系,通過耦合和距離矩陣提高用戶推薦質(zhì)量,實驗結果表明,該方法可以明顯提高用戶推薦質(zhì)量,效果優(yōu)于傳統(tǒng)算法,但沒有充分考慮用戶屬性間的耦合性。文獻[4]設計了運行網(wǎng)絡結構,為了建立用戶興趣推薦模型,通過MapReduce將任務分配到計算機集群中,利用大數(shù)據(jù)雙層關聯(lián)規(guī)則和推薦結果挖掘和確定用戶感興趣的網(wǎng)絡數(shù)據(jù)及興趣程度,實驗結果表明,該方法對用戶個性化推薦分析效果可達98%,但用戶興趣的層次模型較為復雜。文獻[5]建立了概率矩陣分解算法的社交網(wǎng)絡模型,按照用戶興趣特征通過個性化社交網(wǎng)絡進行挖掘,并通過個性化推薦節(jié)點,完成用戶社交網(wǎng)絡推薦方法的建立,實驗結果表明,該方法對用戶興趣行為的預測精度較高,但對用戶的隱私數(shù)據(jù)加密工作較差。
基于以上研究,針對用戶興趣點個性化問題,本文提出一種基于融合大數(shù)據(jù)挖掘的用戶個性化POI推薦方法。通過大數(shù)據(jù)系統(tǒng)解決數(shù)據(jù)存儲等問題,并提高用戶個性化推薦過程的運算效率。采用LDA模型分析用戶興趣與POI的主題,為用戶提供個性化POI推薦。
用戶個性化的傳統(tǒng)推薦系統(tǒng)存在推薦效率低、計算量大等問題,而大數(shù)據(jù)技術的發(fā)展讓并行計算的效率越來越高。大數(shù)據(jù)系統(tǒng)不僅具有緩解大量數(shù)據(jù)存儲等問題,還可以提高用戶個性化推薦過程的運算效率。大數(shù)據(jù)推薦系統(tǒng)框架分為數(shù)據(jù)源、存儲、推薦模型和推薦結果四層,框架模型如圖1所描述。
圖1 基于大數(shù)據(jù)推薦框架
數(shù)據(jù)源層主要是采集推薦系統(tǒng)的相關數(shù)據(jù),并對這些數(shù)據(jù)進行結構化處理,將處理的結果存到存儲層,也可將其分為數(shù)據(jù)采集和預處理層兩部分。存儲層主要是將數(shù)據(jù)源層采集的數(shù)據(jù)存儲到HDFS、HBase和Hive層中。推薦模型生成層是推薦系統(tǒng)的核心層,其通過存儲層的數(shù)據(jù)運行預先定義好的推薦算法。推薦結果展示層主要是與用戶進行交互的展示模塊,根據(jù)用戶行為不斷更新推薦模型生成層的數(shù)據(jù)。云計算機框架是大數(shù)據(jù)實現(xiàn)的主要方法,由分布式文件系統(tǒng)、HDFS和MapRduce三部分組成。
推薦模型的表達形式會對系統(tǒng)的計算能力及預測用戶興趣有影響。用戶推薦模型可分為矢量模型和神經(jīng)網(wǎng)絡模型兩部分。一方面,在矢量模型的基礎上,可將推薦模型視為表達用戶興趣的n維特征向量;另一方面,在神經(jīng)網(wǎng)絡的基礎上,可將推薦模型視為網(wǎng)絡連接的加權網(wǎng)絡。推薦模型不僅是互聯(lián)網(wǎng)產(chǎn)品運營系統(tǒng)中重要的組成部分之一,還是處理用戶服務信息的關鍵模塊。系統(tǒng)的數(shù)據(jù)主要通過CRM和產(chǎn)品服務平臺等模型獲得,產(chǎn)生的推薦結果可通過產(chǎn)品客戶端、SMS網(wǎng)絡管理和網(wǎng)上營業(yè)廳等方式傳達給客戶。
為了建立基于大數(shù)據(jù)用戶個性化模型,創(chuàng)建方案采用如圖2所描述。
圖2 個性化推薦模型
用戶注冊網(wǎng)站的過程中根據(jù)要求需填寫個人信息,有些網(wǎng)站甚至還需要用戶填寫個人標簽。通過個人標簽可以很容易的反映出用戶興趣愛好,然而沒有標簽屬性的頁面需要進一步通過內(nèi)部結構獲取用戶興趣。因此可通過創(chuàng)建用戶偏好標簽,對用戶對象進行標記,提高用戶個性化推薦的成功率。
偏好分析中的數(shù)據(jù)有的來自于移動通信網(wǎng)絡,有的來自于產(chǎn)品操作平臺。操作平臺的數(shù)據(jù)按照兩層關聯(lián)規(guī)則的方式被輸入,這種數(shù)據(jù)挖掘方法可以極大程度上提高用戶個性化網(wǎng)絡數(shù)據(jù)的準確度。設內(nèi)容項集分別為A
和B
,類型分別為A
和B
,兩層關系規(guī)則集為C
,且C
={A
→B
:A
→BandA
→B
},其中A
→B
表示基本內(nèi)容層關聯(lián)規(guī)則,若用戶訪問了內(nèi)容集A
,那么用戶很有可能訪問內(nèi)容集B
,類型層關聯(lián)規(guī)則與內(nèi)容層關聯(lián)規(guī)則相似,若用戶訪問了類型A
時,很有可能訪問類型B
。內(nèi)容關聯(lián)層和類型關聯(lián)層可分別通過基礎內(nèi)容事實表和用戶訪問類型事實表提取。計算內(nèi)容類型事實表中大于閾值的項集,類型關聯(lián)規(guī)則的支持度公式表示為(1)
其中,A
和B
分別表示類型關聯(lián)規(guī)則的項集合;E
表示內(nèi)容和類型事實表中事件的總個數(shù)。在內(nèi)容和類型事實表中,某個項目集包含了一個大于特定閾值的支持度,公式可表示為(2)
其中,X
表示某個項目。對于規(guī)則中的頻繁項集,其對應的所有非空子集置信值均被計算,若大于用戶指定的最小置信界限值,會產(chǎn)生內(nèi)容類型的關聯(lián)規(guī)則,公式表示為(3)
其中,H
表示頻繁項集;H
表示非空子集。其次需要計算基礎內(nèi)容事實表中大于閾值的項集,內(nèi)容關聯(lián)規(guī)則的支持度公式表示為(4)
其中,A
和B
分別表示內(nèi)容類型關聯(lián)規(guī)則的項集合;E
表示內(nèi)容和類型事實表中事件的總個數(shù)。對于規(guī)則中的頻繁項集,其對應的非空子集置信值可表示為(5)
若G
高于用戶指定的下限置信值,那么會產(chǎn)生內(nèi)容與類型的關聯(lián)規(guī)則。通過計算規(guī)則與相關規(guī)則層次的相關系數(shù),通過用戶觸摸通道將推薦結果反饋給用戶。傳統(tǒng)的POI推薦研究需要用戶對POI產(chǎn)生操作,POI推薦才能進行。實際中,用戶產(chǎn)生過行為的POI數(shù)量較多,采用傳統(tǒng)POI推薦進行研究,不僅會浪費計算機的存儲資源,還會使獲取的數(shù)據(jù)過于冗余。而主題模型可以解決語料庫中的內(nèi)容繁雜、主題不夠清晰等問題,于是本節(jié)對POI個性化推薦圍繞LDA主題模型展開。
LDA主題模型是用戶和POI間的橋梁,通過模型可以進一步分析用戶興趣主題和POI主題,從而進行POI個性化推薦方法的研究。生成LDA主題模型時,用戶個性化輸入一般是分詞后的文檔,且每個文章一行。對這些數(shù)據(jù)進行預處理時,主要采取以下兩種手段。
分詞處理是將一段字符按照規(guī)范劃分成詞序列。英語語庫中,每個單詞輸入完畢鍵入空格鍵。而在中文語庫中,詞之間沒有分界標志,因此對中文文本的挖掘較為復雜,然而采用好的LDA主題模型會使用戶興趣主題更加準確。
停用詞的存在并不會對檢測結果造成影響,然而會對程序的運行效率產(chǎn)生明顯影響。為了提高搜索效率,需要對無用的符號及詞匯進行去除,這些停用詞會形成一個停用詞表,由于一個停用詞表并不適用于所有項目,因此在語言處理中,需要根據(jù)不同的研究目標建立若干合適的停用詞表。在LDA主題模型建立過程中,根據(jù)得到的主題關鍵詞對停用詞進行篩選,將頻繁出現(xiàn)且用戶不感興趣的停用詞加入停用詞表中,反復進行LDA主題模型的訓練,直到構成主題的用戶興趣詞較為滿意為止。
在語言處理領域中,困惑度常被用作衡量語言模型,公式可表示為
(6)
其中,p
(a
)表示測試集中各個詞的概率;M
表示測試集的總長度。在主題選取過程中,由于主題個數(shù)會影響用戶個性化推薦結果,因此采用Perplexity在拐點處的值作為評價指標,關系圖如圖3所描述。圖3 主題數(shù)與困惑度關系圖
系統(tǒng)提供給用戶個性化POI推薦過程中,需要通過用戶興趣主題與POI主題進行匹配。采用用戶興趣主題與用戶周邊POI主題之間的概率分布距離作為衡量主題間匹配度的指標。在計算概率分布間距離時,使用KL散度計算公式,實際上KL距離不對稱,但本文研究的用戶興趣主題和概率分布具有對稱性,進一步對KL距離公式進行變換,實現(xiàn)POI與用戶的匹配。變換公式可表示為:
(7)
在設計LDA主題的POI推薦方法時,需同時考慮用戶在不同情況下對于POI的需求。因此本文提出以下三種判斷依據(jù)。
1)依據(jù)時間的POI推薦方法
用戶個性化POI需求會隨著時間發(fā)生變化,因此在制定用戶個性化推薦方法時需要對時間加以考慮。例如餐飲類的POI在三個時間段的用餐期間會明顯高于其它類型的POI,因此在這三個時間段可以提高該類POI在用戶個性化推薦模型中的權重值,并結合用戶興趣主題,計算JS距離提高用戶個性化POI推薦性能。
2)依據(jù)地點的POI推薦方法
當用戶常駐地發(fā)生變化時,基于地點進行POI推薦。例如用戶來到一個新地點出差或旅游,那么極有可能想了解當?shù)氐淖√幒途包c,在基于地點的POI推薦中,結合用戶興趣主題與POI主題計算出JS距離進行匹配,為用戶進行個性化POI推薦。
3)直接的POI推薦方法
針對其它情況,采用前N個主題進行個性化推薦。這種推薦方法直接獲取用戶周圍POI信息,分別計算用戶興趣與POI主題間的JS距離,按照JS大小,為用戶進行前N個個性化POI推薦。
為了驗證融合大數(shù)據(jù)挖掘的用戶個性化POI推薦方法的實效性,分別采用本文方法、文獻[3]方法、文獻[4]方法和文獻[5]方法在Matlab軟件上進行仿真對比。在HWiNFO64軟件上設置虛擬化的網(wǎng)絡平臺,通過獲得用戶興趣數(shù)據(jù),測試用戶個性化POI推薦的準確性。采用Epinions網(wǎng)站的數(shù)據(jù)作為實驗數(shù)據(jù)集,其中包含用戶數(shù)、評分數(shù)、興趣標簽和商品數(shù)共119840個數(shù)據(jù)。數(shù)據(jù)集的具體信息如表1所示。
表1 Epinions數(shù)據(jù)集具體信息
用戶個性化推薦的預測精度是評價推薦算法的重要指標,本文采用預測精度作為評估用戶興趣推薦好壞的指標,分別對本文方法、文獻[3]方法、文獻[4]方法和文獻[5]方法進行仿真對比。對比結果如圖4所示。
圖4 預測精度對比結果
從圖中可以看,采用本文方法的用戶個性化推薦預測精度較高,最高可達到1。而文獻[3]方法和文獻[4]方法的預測精度較低,隨著推薦時間的不斷增加,最高預測精度分別達到0.63和0.49,文獻[5]方法的預測精度隨著推薦時間的增加變化具有不穩(wěn)定性。綜上所述,使用融合大數(shù)據(jù)挖掘的用戶個性化POI推薦方法可以更為準確的預測出用戶興趣,達到提升用戶興趣預測精度的目的。
覆蓋率指用戶興趣推薦個數(shù)占總集合的比例,覆蓋率越大,用戶POI推薦質(zhì)量越高。因此本文采用覆蓋率進一步驗證用戶個性化POI推薦的有效性,并分別對本文方法、文獻[3]方法、文獻[4]方法和文獻[5]方法進行仿真對比。結果如圖5所示。
圖5 覆蓋率對比結果
從圖中可以看出,隨著實驗次數(shù)的增加,采用本文方法用戶興趣覆蓋率較為平穩(wěn),且覆蓋率高達0.86。而文獻[3]方法的覆蓋率相對而言最低,即便最好情況也只有0.54。通過對比可知,本文方法的覆蓋率明顯提升,說明采用本文方法為用戶推薦的POI質(zhì)量更高也更穩(wěn)定。
本文融合大數(shù)據(jù)挖掘方法實現(xiàn)用戶個性化推薦過程中的信息挖掘,構建用戶個性化POI推薦模型。通過集成標簽與用戶興趣,構建用戶興趣層次模型。并利用LDA用戶興趣主題和JS距離計算,為用戶提供POI推薦方法。為了驗證融合大數(shù)據(jù)挖掘的用戶個性化POI推薦方法的實效性,通過HWiNFO64軟件設置虛擬化網(wǎng)絡平臺,在Matlab軟件上與其它推薦方法進行實驗對比。實驗結果表明,本文提出的方法可以解決用戶數(shù)據(jù)覆蓋率不達標等問題,而且本文方法的用戶興趣預測精度較高,穩(wěn)定性更好,在用戶個性化POI推薦中具有更好的適用性。