褚 征,于 炯,2,王佳玉,王躍飛,2
1.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830008; 2.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046)(*通信作者電子郵箱yujiong@ xju. edu.cn)
基于LDA主題模型的移動應(yīng)用相似度構(gòu)建方法
褚 征1,于 炯1,2*,王佳玉1,王躍飛1,2
1.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830008; 2.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046)(*通信作者電子郵箱yujiong@ xju. edu.cn)
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,如何從大量的移動應(yīng)用中抽取有效的描述信息繼而為移動用戶提供有效準(zhǔn)確的推薦策略變得尤為迫切。目前,移動應(yīng)用市場對應(yīng)用的推薦策略相對傳統(tǒng),大多是根據(jù)應(yīng)用的單一屬性進(jìn)行推薦,如下載量、應(yīng)用名稱、應(yīng)用分類等。針對推薦粒度過粗和推薦不準(zhǔn)確的問題,提出了一種基于潛在狄利克雷分布(LDA)主題模型的移動應(yīng)用相似度構(gòu)建方法。該方法從應(yīng)用的標(biāo)簽入手,構(gòu)造應(yīng)用的主題模型分布矩陣,利用該主題分布矩陣構(gòu)建移動應(yīng)用的相似度矩陣,同時提出了將移動應(yīng)用相似度矩陣轉(zhuǎn)化為可行的存儲結(jié)構(gòu)的方法。實(shí)驗(yàn)結(jié)果表明該方法是有效的,相比現(xiàn)有的360應(yīng)用市場推薦的應(yīng)用其相似度提升130%。該方法解決了移動應(yīng)用推薦過程中推薦粒度過粗的問題,可使推薦結(jié)果更加準(zhǔn)確。
相似度矩陣;主題模型;隱含信息;應(yīng)用推薦;標(biāo)簽
隨著互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,全球的移動設(shè)備數(shù)量也在急速上升。根據(jù)來自iGR2015年的調(diào)查報(bào)告顯示,到2019年全球移動設(shè)備的總數(shù)將會從2014年的69億增加到95億,即2015年的全球移動設(shè)備普及率為96.4%,到2019年將達(dá)到125%的普及率。當(dāng)前的移動設(shè)備高普及率意味著全球中的每個人能都擁有一個移動設(shè)備,每個移動設(shè)備中一般會安裝了幾個到幾十個的應(yīng)用,而這些海量的移動應(yīng)用散布在各個應(yīng)用市場。僅360手機(jī)助手的應(yīng)用總量就有11萬多項(xiàng),而且這些應(yīng)用還在不斷地增加。
有些應(yīng)用的名稱從總體上概括了一個應(yīng)用的主要內(nèi)容,但是有時即使知道應(yīng)用的名稱也不知道該應(yīng)用的具體作用。應(yīng)用介紹具有時效性,而且應(yīng)用介紹不能全面客觀地描述應(yīng)用的特征,它具有一定的廣告內(nèi)容。應(yīng)用標(biāo)簽則能夠相對客觀準(zhǔn)確地描述應(yīng)用的特征,這些標(biāo)簽很好地在細(xì)粒度范圍內(nèi)刻畫了該應(yīng)用的特征。
主題模型(Topic Model)[1]是一種概率產(chǎn)生式的模型(Generative Model),同時也是一種層次型的貝葉斯模型,其在自然語言處理、機(jī)器學(xué)習(xí)等領(lǐng)域具有廣泛的應(yīng)用。由于隱含主題具有很強(qiáng)的抽象性,所以人們理解這些主題將具有很大的挑戰(zhàn)性。通過構(gòu)建移動應(yīng)用相似度矩陣,可以對當(dāng)前移動應(yīng)用市場中的移動應(yīng)用建立全面的相似度關(guān)系,這些相似度關(guān)系不僅可以作為各種推薦策略的基礎(chǔ)內(nèi)容之一,同時也可以使用構(gòu)建好的相似度關(guān)系來作基于內(nèi)容的推薦策略。
本文通過潛在狄利克雷分布(Latent Dirichlet Allocation, LDA)模型對移動應(yīng)用標(biāo)簽進(jìn)行分析,抽取出隱含在應(yīng)用標(biāo)簽背后的潛在主題,構(gòu)建出移動應(yīng)用的主題矩陣。并通過應(yīng)用的主題矩陣計(jì)算出應(yīng)用主題相似度矩陣,最后還提出了將應(yīng)用相似度轉(zhuǎn)化為鏈表的存儲結(jié)構(gòu)的方法。
本文可以看作是以移動應(yīng)用為對象,利用LDA主題模型對應(yīng)用隱含信息進(jìn)行深層次挖掘,融合移動應(yīng)用細(xì)粒度的描述信息(應(yīng)用標(biāo)簽)、LDA主題模型和移動應(yīng)用推薦三者的研究。
1.1 移動應(yīng)用的特征表示
經(jīng)過仔細(xì)研究國內(nèi)較大的移動應(yīng)用市場(如360手機(jī)助手、豌豆夾、小米應(yīng)用商店等)中的應(yīng)用,發(fā)現(xiàn)移動應(yīng)用的分類、描述和推薦都存在較大的問題。應(yīng)用的描述中包含了基本信息和更新內(nèi)容,但是這些內(nèi)容大多是以廣告效果為導(dǎo)向,為了更好地吸引用戶的眼球,在內(nèi)容中主要是新版應(yīng)用的更新信息,同時應(yīng)用截圖又不能很方便地提取出應(yīng)用的特征。頁面中的應(yīng)用標(biāo)簽則能夠很好地展現(xiàn)移動應(yīng)用的特點(diǎn),故而可以用應(yīng)用的標(biāo)簽來表示移動應(yīng)用的特征。
1.2 主題模型
近幾年,很多需要大規(guī)模文本分析的領(lǐng)域都成功地應(yīng)用了主題模型,包括自然語言處理、文本分析[2-5]、數(shù)據(jù)挖掘、信息檢索、新聞分類[6]、商業(yè)智能[7]、微博可視化[8]、聚類算法[9-10]等領(lǐng)域。Salton等[5]提出的向量空間模型(Vector Space Model, VSM)是較早的文本數(shù)據(jù)挖掘算法。后來,Deerwester等[11]提出了一種新的潛在語義分析(Latent Semantic Analysis,LSA)方法,它是一種基于矩陣模型挖掘文本主題的思想。LSA利用奇異值分解(Singular Value Decomposition, SVD)的降維方法來對文檔的潛在結(jié)構(gòu)(語義結(jié)構(gòu))進(jìn)行挖掘, 此方法的優(yōu)點(diǎn)是可以在較低維的語義空間中進(jìn)行查詢并進(jìn)行相關(guān)性分析, 挖掘出隱含在文檔中的語義相關(guān)性。主題模型中具代表性的是在1999年Hofmann等[12]提出的基于概率潛在語義分析(Probabilistic Latent Semantic Analysis,PLSA)模型和2003年Blei等[13]提出的LDA模型。概率潛在語義分析模型是基于雙模式和共現(xiàn)的數(shù)據(jù)分析方法延伸的經(jīng)典的統(tǒng)計(jì)學(xué)方法。概率潛在語義分析模型用統(tǒng)計(jì)學(xué)的角度看待問題,它的概率變種有著巨大的影響;而LDA模型是一種文檔主題生成模型。LDA模型是一種非監(jiān)督的機(jī)器學(xué)習(xí)技術(shù),只要是用來識別大規(guī)模文檔集或者語料庫中潛在的主題信息。采用詞袋的方法,將每一篇文檔視為一個詞頻向量,從而將文本信息轉(zhuǎn)化為易于建模的數(shù)字信息。此外,詞袋模型中又不考慮詞和詞的順序,這樣就降低了需要解決的問題的復(fù)雜性。
1.3 推薦策略
按照所使用的數(shù)據(jù)進(jìn)行分類[14],推薦策略可以分為協(xié)同過濾[15-16]、內(nèi)容過濾[17-18]、社會化推薦等策略。Massa等[19-20]研究的是利用信任關(guān)系來改進(jìn)協(xié)同過濾的方法。Ma等[21]研究的是一種新的基于矩陣分解的社會化推薦方法,它們利用一個共享的低維的潛在的用戶特征矩陣,將用戶間的信任關(guān)系網(wǎng)絡(luò)和評分矩陣結(jié)合在了一起。但是在移動應(yīng)用市場中,推薦算法的應(yīng)用相對不足和缺乏,而移動應(yīng)用相似度又是研究應(yīng)用推薦算法的內(nèi)容之一。
本章研究的主要內(nèi)容是利用LDA主題模型挖掘出移動應(yīng)用背后的潛在主題信息,在潛在主題信息的基礎(chǔ)上對移動應(yīng)用構(gòu)建主題分布矩陣?;谶@個主要目標(biāo),確定了該研究內(nèi)容的主要步驟:1)數(shù)據(jù)搜集,此步驟主要從移動應(yīng)用市場抓取大量的應(yīng)用信息,包含應(yīng)用超鏈接、應(yīng)用名稱、應(yīng)用描述、應(yīng)用標(biāo)簽等信息。2)數(shù)據(jù)預(yù)處理,對步驟1)中搜集到的數(shù)據(jù)進(jìn)行分析,去除一些抓取失敗的信息,將雜亂的數(shù)據(jù)標(biāo)準(zhǔn)化,同時也將沒有標(biāo)簽的應(yīng)用數(shù)據(jù)去除。3)訓(xùn)練LDA主題模型,將步驟2)處理之后的數(shù)據(jù)輸入到LDA主題模型中,同時設(shè)置好模型參數(shù)進(jìn)行模型訓(xùn)練(本文使用Python中的LDA模型進(jìn)行訓(xùn)練)。4)輸出LDA主題,將數(shù)據(jù)輸入到訓(xùn)練好的模型進(jìn)行測試,然后將所有的移動應(yīng)用構(gòu)建出主題并輸出。5)優(yōu)化LDA模型,觀測和分析移動應(yīng)用的主題分布矩陣,發(fā)現(xiàn)不足并優(yōu)化模型參數(shù),重復(fù)步驟3)和步驟4),直到步驟4)中輸出的每個LDA主題標(biāo)簽?zāi)軌蛎黠@地表達(dá)出相同的主題。6)輸出移動應(yīng)用LDA主題分布矩陣,在最終優(yōu)化好的模型中測試數(shù)據(jù)并輸出應(yīng)用的主題分布矩陣。以上描述的研究步驟如圖1所示。
圖1 移動應(yīng)用構(gòu)建主題分布矩陣過程
2.1 問題分析
由于移動互聯(lián)網(wǎng)的廣泛普及,移動設(shè)備的數(shù)量也隨之增多。每個移動設(shè)備都會或多或少地安裝一些移動應(yīng)用。雖然當(dāng)前的移動應(yīng)用數(shù)量非常多(僅360手機(jī)助手中的移動應(yīng)用就有12萬之多),但是應(yīng)用市場中對應(yīng)用的分類卻相對較少,與移動應(yīng)用的數(shù)量不成匹配。在360手機(jī)助手市場中軟件的分類僅有13個,在游戲應(yīng)用分類中則更少。所以,針對移動應(yīng)用市場中的應(yīng)用進(jìn)行更多的和更小粒度的研究是必要的。
在應(yīng)用的研究中選擇哪些屬性作為特征是很重要的。在移動應(yīng)用市場中,應(yīng)用的描述信息相對較少。應(yīng)用介紹信息帶有太多的廣告成分,對應(yīng)用的描述不具有客觀性。用戶對應(yīng)用的評論則相對離散。此外,應(yīng)用的評論信息還具有太多的噪聲,而選擇應(yīng)用標(biāo)簽則能夠比較客觀地描述應(yīng)用的特征。
由于沒有開源的應(yīng)用數(shù)據(jù)集,加上應(yīng)用數(shù)量較多,這給研究移動應(yīng)用帶來了較大的困難。通過長時間的爬蟲爬取網(wǎng)絡(luò)上的應(yīng)用數(shù)據(jù),很有可能造成惡意網(wǎng)絡(luò)攻擊的情況。此外,爬取的數(shù)據(jù)會存在很多的無用數(shù)據(jù),這給數(shù)據(jù)處理也帶來了較大的困難。
在數(shù)據(jù)預(yù)處理階段,要從大量的數(shù)據(jù)中去除無用信息,然后對有用的應(yīng)用信息進(jìn)行標(biāo)準(zhǔn)化。如將爬取的網(wǎng)頁數(shù)據(jù)進(jìn)行頁面分析,然后去除網(wǎng)頁標(biāo)簽,再整理成適合LDA模型輸入的格式,最后還要去除無用數(shù)據(jù)等。
2.2 LDA主題模型的建立
2.2.1 LDA模型
LDA模型是當(dāng)前文本表示方法的研究內(nèi)容之一。它是一種產(chǎn)生式的主題模型,不僅在文本研究領(lǐng)域應(yīng)用,還在其他一些領(lǐng)域內(nèi)成功地應(yīng)用。LDA是一個三層的貝葉斯網(wǎng)絡(luò),也是一個多層的產(chǎn)生式全概率生成模型。LDA模型包含三層結(jié)構(gòu),分別是文檔、主題和詞,對應(yīng)于本文的移動應(yīng)用數(shù)據(jù)集即為移動應(yīng)用、主題和標(biāo)簽三層,如圖2所示。
圖2 LDA模型隱含主題拓?fù)浣Y(jié)構(gòu)
LDA主題模型是一種典型的有向概率圖的模型[22]。在一個給定的文檔數(shù)據(jù)集合中,LDA模型將每個文檔表示成主題,每個主題又表示成詞。從文檔到主題服從多項(xiàng)式分布,從主題到詞也服從多項(xiàng)式分布。在LDA模型中,所有的文檔都共享所有的主題,但是每個文檔都有一個具體的主題分布。針對文本數(shù)據(jù)集進(jìn)行建模的方法[23], 如圖3所示。
圖3 LDA模型盤子表示
將移動應(yīng)用數(shù)據(jù)集看作是文檔集合,每一個應(yīng)用看作為一個文檔,應(yīng)用的標(biāo)簽看作是文檔中的詞。圖3中:α和β是應(yīng)用層的兩個參數(shù)(也即文檔層的兩個參數(shù)),α代表應(yīng)用(文檔)集中隱含主題之間的強(qiáng)弱,β則代表了隱含主題的概率分布;φ代表主題下的標(biāo)簽(詞)的概率分布;θ代表應(yīng)用(文檔)中各個隱含主題的比重;z代表應(yīng)用(文檔)在每個隱含主題中每個標(biāo)簽(詞)分布的比重;w是應(yīng)用(文檔)中的標(biāo)簽(詞)向量;N為應(yīng)用集合(文檔集合)中應(yīng)用(文檔)的個數(shù);D代表應(yīng)用的標(biāo)簽總數(shù)。
2.2.2 構(gòu)建應(yīng)用標(biāo)簽的詞袋模型
應(yīng)用標(biāo)簽對應(yīng)LDA主題模型中的單詞。在輸入LDA模型之前將移動應(yīng)用名稱和標(biāo)簽整理成統(tǒng)一格式的文本。此外由于應(yīng)用標(biāo)簽是移動應(yīng)用的客觀特征,同時應(yīng)用的名稱也在更高程度上描述了應(yīng)用的信息。所以,本文將移動應(yīng)用的標(biāo)簽和應(yīng)用的名稱都看作成LDA的單詞,從而構(gòu)建出詞袋模型,表1例舉了4個移動應(yīng)用標(biāo)簽的詞袋模型。
表1 移動應(yīng)用標(biāo)簽的詞袋模型
2.2.3 移動應(yīng)用中的LDA模型
一個移動應(yīng)用通常包含幾個或者多個隱含主題,而應(yīng)用中的特定標(biāo)簽構(gòu)成了這些隱含的主題。在本文的移動應(yīng)用處理中,應(yīng)用的潛在主題是應(yīng)用標(biāo)簽的概率分布,而移動應(yīng)用又是潛在主題的隨機(jī)混合。
2.2.4Gibbs抽樣
在構(gòu)建LDA模型過程中,模型的參數(shù)估計(jì)是必不可少的。常用的估計(jì)方法主要是變分貝葉斯推理、期望傳播算法、CollapsedGibbs抽樣等方法。相比其他抽樣方法,Gibbs抽樣比較容易理解,并且實(shí)現(xiàn)起來相對簡單,最重要的是Gibbs抽樣方法比較適合大規(guī)模數(shù)據(jù)集抽樣主題,所以本文也采用了當(dāng)前流行的Gibbs抽樣方法[24]為LDA模型的抽樣算法。
Gibbs抽樣算法可以看作是移動應(yīng)用生成的一個逆向過程。換句話說就是在已知應(yīng)用數(shù)據(jù)集的情況下,通過參數(shù)聚集得到參數(shù)值。根據(jù)圖3可以計(jì)算出一個移動應(yīng)用的概率值,如式(1)所示:
P(w|α,β)=
CollapsedGibbs抽樣方法中的Collpased所描述的是一種通過積分的形式避免了實(shí)際待估參數(shù),轉(zhuǎn)而對每一個主題進(jìn)行采樣的方法。一個標(biāo)簽的主題一旦確定,參數(shù)便可以在統(tǒng)計(jì)頻次之后計(jì)算出。故而參數(shù)估計(jì)問題就變成了計(jì)算標(biāo)簽序列下主題序列的條件概率,如式(2)所示:
P(zi=k|z,w)=
(2)
其中:zi是第i個標(biāo)簽對應(yīng)的主題變量;i代表不包含其中的第i項(xiàng);是k主題中出現(xiàn)標(biāo)簽t的次數(shù);βt是標(biāo)簽項(xiàng)t的Dirichlet先驗(yàn);代表應(yīng)用m出現(xiàn)出題k的次數(shù);αk是主題k的Dirichlet先驗(yàn)。若取得每個標(biāo)簽的主題標(biāo)號,則參數(shù)的計(jì)算公式可以由式(3)~(4)取得:
(3)
(4)
其中:φk,t是主題k中標(biāo)簽t的概率;θm,k是應(yīng)用m中主題k的概率。
2.3 應(yīng)用隱含主題矩陣構(gòu)建
通過連續(xù)使用式(5),可以計(jì)算出應(yīng)用數(shù)據(jù)集中每個應(yīng)用在每個主題上的概率分布,繼而構(gòu)建出對應(yīng)的Y矩陣:
(5)
其中:N是應(yīng)用數(shù)據(jù)集中應(yīng)用的個數(shù);T是應(yīng)用數(shù)據(jù)集中所有標(biāo)簽構(gòu)建的主題個數(shù)。Y矩陣中的每一項(xiàng)都是由式(4)計(jì)算得到。Y矩陣實(shí)際上是一個稀疏矩陣,這是因?yàn)槊總€應(yīng)用只包含了所有主題中的幾個主題,所以Y矩陣中的每一行都有很多的零值項(xiàng)。
2.4 問題描述
應(yīng)用市場的推薦過程為:當(dāng)用戶瀏覽應(yīng)用A的詳情頁面時,在A頁面中推薦其他的應(yīng)用。如,推薦應(yīng)用1,推薦應(yīng)用2,…,推薦應(yīng)用q(q為指定的變量)。模型示例如表2所示。
表2 應(yīng)用市場推薦模型
在應(yīng)用市場推薦模型表中,推薦應(yīng)用1與當(dāng)前應(yīng)用的相似度要比推薦應(yīng)用2與當(dāng)前應(yīng)用的相似度高;推薦應(yīng)用2與當(dāng)前應(yīng)用的相似度要比推薦應(yīng)用3與當(dāng)前應(yīng)用的相似度高;之后的推薦應(yīng)用也遵循此推薦原則。
本文提出了基于LDA主題模型的移動應(yīng)用的相似度構(gòu)建方法。該方法利用應(yīng)用在隱含主題上的概率分布計(jì)算應(yīng)用相似度矩陣,然后將相似度矩陣轉(zhuǎn)化為可實(shí)際應(yīng)用的推薦模型存儲結(jié)構(gòu)。
2.5 移動應(yīng)用相似度矩陣構(gòu)建
應(yīng)用的相似度計(jì)算實(shí)際上是利用了式(6)的結(jié)果進(jìn)行處理。應(yīng)用的主題分布是應(yīng)用空間的映射,利用將移動應(yīng)用表示成主題的概率分布,計(jì)算應(yīng)用數(shù)據(jù)集中兩個應(yīng)用之間的相似度便轉(zhuǎn)化為計(jì)算兩個應(yīng)用對應(yīng)的主題概率分布。如計(jì)算應(yīng)用數(shù)據(jù)集中應(yīng)用1和應(yīng)用2之間的相似度,便可以利用式(6)中的第一行概率分布和第二行的概率分布進(jìn)行計(jì)算。這樣便計(jì)算出了兩個應(yīng)用之間的相似度。
應(yīng)用的相似度計(jì)算依據(jù)應(yīng)用隱含主題矩陣Y,利用簡單易行的歐氏距離計(jì)算應(yīng)用數(shù)據(jù)集中兩兩應(yīng)用之間的相似度。歐氏距離計(jì)算公式為:
di, j=
其中:di, j代表應(yīng)用i與應(yīng)用j之間的相似度;θi,1是主題矩陣中第i個應(yīng)用(行)中占第一個主題的概率值;θj,1是主題矩陣中第i個應(yīng)用(行)中占第一個主題的概率值;T為主題個數(shù),也即主題矩陣的列數(shù)。
通過循環(huán)使用式(6)便可計(jì)算出應(yīng)用數(shù)據(jù)集中兩兩應(yīng)用之間在主題分布上的相似度并構(gòu)建出應(yīng)用的相似度矩陣B:
(7)
其中:矩陣B是一個M×N的矩陣,M是應(yīng)用數(shù)據(jù)集中應(yīng)用的個數(shù),N是主題數(shù)目(即每個應(yīng)用包含的隱含主題個數(shù))。在計(jì)算相似度時,矩陣主對角線上的數(shù)值都是0。因?yàn)橹鲗蔷€的值是應(yīng)用與自己之間的相似度,所以這個數(shù)值肯定是0。在構(gòu)建時需要對矩陣主對角線上的項(xiàng)目賦予一個較大的數(shù)值,而且這個數(shù)據(jù)要比矩陣中的所有數(shù)值都大。
2.6 生成相似度矩陣算法
根據(jù)移動應(yīng)用相似度矩陣構(gòu)建的過程描述,以下給出了生成相似度矩陣(CreatingSimilarityMatrix,CSM)的算法。
算法1CSM算法。
輸入:移動應(yīng)用數(shù)據(jù)集appdataset;標(biāo)簽字典tagdict。 輸出:相似度矩陣matrix[][]。matrix[][]←null
//初始化相似度矩陣tfidfhead←TfidfMode(appdataset)
//對應(yīng)用標(biāo)簽做tfidf操作num_topicst←160
//賦值主題數(shù)量lda←LDAModel(tfidf,dict,num_topics)
//訓(xùn)練LDA模型 Fori=0 toappdataset.len
//遍歷應(yīng)用數(shù)據(jù)集合 Forj=1 toappdataset.lenmatrix[i][j]←distance(appdataset[i],appdataset[j])
//計(jì)算兩兩應(yīng)用之間的相似度
max_distance←vmatrix.max()+1
//賦值最大值,將應(yīng)用與自己之間的相似度設(shè)置為最小
Fori=0 toappdataset.len
//遍歷矩陣對角線,賦值為最大值,使其相似度最低matrix[i][j]←max_distance
returnmaxtrix
2.7 相似度矩陣轉(zhuǎn)化為鏈表結(jié)構(gòu)
為將科學(xué)理論級別的應(yīng)用矩陣相似度轉(zhuǎn)化為工業(yè)級別簡單易行的存儲結(jié)構(gòu)和過程,本文提出了一種利用縱向鏈表和橫向鏈表的存儲結(jié)構(gòu)來實(shí)現(xiàn)。
應(yīng)用市場的應(yīng)用相似度儲結(jié)構(gòu)如圖4所示。
相似度矩陣轉(zhuǎn)化為存儲結(jié)構(gòu)的轉(zhuǎn)化過程如下所述:
1)獲取移動應(yīng)用相似度矩陣。
2)取得第i(i為相似度矩陣中的行標(biāo),1≤i≤N)個應(yīng)用,在縱向列表尾部添加一個新節(jié)點(diǎn)。
3)在相似度中的第i行尋找最大前q個最大值(取得的最大值按照從大到小排列),分別是L1,L2,…,Lq。在當(dāng)前縱向鏈表中新建q個橫向鏈表并按照從大到小的順序?qū)1,L2,…,Lq數(shù)據(jù)寫入橫向鏈表的節(jié)點(diǎn)中。q的數(shù)據(jù)是人為指定的,這里不對此值固定,目的是為了可以滿足不同的需求,在本文中q代表每個應(yīng)用詳情頁面中推薦其他應(yīng)用的個數(shù)。
4)重復(fù)步驟2)~3),直到縱向鏈表中的數(shù)據(jù)節(jié)點(diǎn)數(shù)量等于應(yīng)用數(shù)據(jù)集和中應(yīng)用的個數(shù)N。
使用該存儲結(jié)構(gòu)的優(yōu)點(diǎn):
1)簡單。相對于復(fù)雜的矩陣,采用橫向鏈表和縱向鏈表更加直觀和容易理解。
2)快速。此結(jié)構(gòu)可以快速訪問縱向鏈表并加載出該縱向鏈表節(jié)點(diǎn)對應(yīng)的橫向鏈表。若采用矩陣直接計(jì)算,在每次計(jì)算過程都要將整個矩陣全部加載到內(nèi)存,故而采用矩陣的形式會比該結(jié)構(gòu)速度慢。
3)可擴(kuò)展。若應(yīng)用數(shù)量增加,可以在縱向鏈表尾部繼續(xù)增加節(jié)點(diǎn);若推薦數(shù)據(jù)改變,可以在橫向鏈表中動態(tài)調(diào)整。如果采用矩陣的方式則需要重新構(gòu)建整個矩陣。
4)離線與在線相結(jié)合。離線的是矩陣,在線的是該存儲結(jié)構(gòu)。可以離線處理復(fù)雜的矩陣而不影響當(dāng)前的應(yīng)用服務(wù),在必要時把離線處理好的矩陣結(jié)構(gòu)重新更新到該存儲結(jié)構(gòu),保證了當(dāng)前在線服務(wù)的正常運(yùn)行。
2.8 相似度矩陣轉(zhuǎn)化為鏈表算法
針對相似度矩陣轉(zhuǎn)化為鏈表,本文給出了轉(zhuǎn)化算法SM2LL(SimilarityMatrixtoLinkedList)的偽代碼如算法2所示。
算法2SM2LL算法。
輸入:相似度矩陣matrix[][];推薦應(yīng)用數(shù)量q。 輸出:鏈表head。head←null
//初始化縱向鏈表頭指針h_t←head
//初始化縱向鏈表臨時節(jié)點(diǎn)v_t←null
//初始化橫向鏈表臨時節(jié)點(diǎn) Fori=0 tomatrix.len
//遍歷矩陣行h_linkedlist←null
//初始化縱向鏈表節(jié)點(diǎn)h_t.h_next←h_linkedlist
//建立縱向鏈表前驅(qū)關(guān)系h_Linklist.spp_id←matrix[i][0]
//復(fù)制當(dāng)前縱向鏈app_idv_linkedlist←null
//初始化橫向鏈表節(jié)點(diǎn)v_t←null
//初始化橫向鏈表臨時節(jié)點(diǎn)matrix[i].sort()
//排序矩陣當(dāng)前行的相似度數(shù)據(jù)(從小到大) Forj=1 toq+1
//遍歷前q個相似度最大的矩陣項(xiàng)目v_linklist.app_id←matrix[i][j]
//賦值當(dāng)前橫向鏈表節(jié)點(diǎn)app_idv_t.nxet←v_linkedlist
// 構(gòu)建橫向鏈表前驅(qū)關(guān)系h_t←linkedlist
//縱向鏈表臨時節(jié)點(diǎn)后移
returnhead
本文實(shí)驗(yàn)數(shù)據(jù)是從360應(yīng)用市場爬取的約23 000條數(shù)據(jù)的應(yīng)用數(shù)據(jù)集。
3.1LDA模型參數(shù)選擇
在訓(xùn)練LDA主題模型時需要主題數(shù)目、樣本迭代次數(shù)、字典、超參數(shù)α、超參數(shù)β等參數(shù)。本文實(shí)驗(yàn)過程中使用了自定義的詞典、160個主題數(shù)目,其他的參數(shù)則使用LDA模型默認(rèn)值。
3.1.1 分詞工具選擇
本文實(shí)驗(yàn)的分詞工具采用的是開源結(jié)巴分詞工具。結(jié)巴分詞是當(dāng)前針對中文分詞較好的工具之一,它支持三種分詞模式,分別是精確模式、全模式和搜索引擎模式,本文采用的是精確模式。此外結(jié)巴分詞還支持繁體分詞和自定義詞典功能。本文在構(gòu)建LDA模型時就為所有的移動應(yīng)用標(biāo)簽建立了自定義詞典。
3.1.2LDA模型主題數(shù)選擇
主題數(shù)是指整個移動應(yīng)用數(shù)據(jù)集中包含的隱含主題個數(shù),是LDA模型中必須給出的參數(shù)。從某種程度上講,主題數(shù)的不同會影響到應(yīng)用的分布。在LDA主題模型建模過程中,參數(shù)估計(jì)是用Gibbs抽樣算法。在設(shè)置主題數(shù)目的過程中,實(shí)驗(yàn)分別測試了主題數(shù)目分別為50、150、200、250不同的數(shù)值,然后在這些不同的主題數(shù)目下觀測移動應(yīng)用的分布圖。結(jié)果顯示:主題數(shù)目為150下觀測到移動應(yīng)用沒有主題數(shù)為0,也就是移動數(shù)據(jù)集中每個應(yīng)用都有至少一個主題;而在主題數(shù)目為200時,有很小一部分移動應(yīng)用是沒有隱含主題的,所以就在主題數(shù)為150~200重新尋找合適的主題數(shù)目。然后又進(jìn)行了主題數(shù)目為160到190的測試,發(fā)現(xiàn)主題數(shù)目設(shè)置為169時,移動應(yīng)用的分布更加合適。
3.2 主題分布
圖5是LDA模型在訓(xùn)練過程中設(shè)置第一組不同的主題數(shù)目下的移動應(yīng)用分布柱狀圖,如圖5所示。
從圖5可以很容易地看出,每個移動應(yīng)用中只會出現(xiàn)一小部分主題。所以,主題模型是一個稀疏的模型,即便每個應(yīng)用中有很多潛在主題,但是也只有一小部分會被利用。其中主題數(shù)為150時,在移動應(yīng)用數(shù)據(jù)集中所有的應(yīng)用都至少有一個隱含主題,但是當(dāng)主題數(shù)為200時,有一小部分移動應(yīng)用是沒有隱含主題。這里的結(jié)果不符合現(xiàn)實(shí)際,所以繼續(xù)在主題數(shù)為150~200探索合適的主題數(shù)設(shè)置,分別設(shè)置主題數(shù)為160、170、180和190,實(shí)驗(yàn)得出對應(yīng)的應(yīng)用主題數(shù)分布,如圖6所示。
從圖6可看出,LDA主題模型中主題數(shù)設(shè)置為160相對合適。因?yàn)樵谥黝}數(shù)為160時,任何一個移動應(yīng)用都至少包含一個隱含主題;當(dāng)主題數(shù)增大到170時,就會有很小一部分應(yīng)用是沒有隱含主題的。在主題數(shù)為160時,大約有11 124個應(yīng)用中包含了1個主題,大多數(shù)文檔涵蓋了2~5個主題,還有一部分應(yīng)用有6~9個主題,基本上沒有應(yīng)用會擁有10個以上的主題(包含是10個主題)。平均下來每個移動應(yīng)用只涉及1.7個主題,其中99.4%的移動應(yīng)用設(shè)計(jì)的主題數(shù)目小于等于5。
圖5 不同主題數(shù)(間隔為50)下的移動應(yīng)用分布
圖6 不同主題數(shù)(間隔為10)下的移動應(yīng)用分布
通過LDA模型訓(xùn)練后得到了160個主題,每個主題都包含了10個應(yīng)用標(biāo)簽。在這里列取了其中10個具有典型意義的主題和每個主題最具代表性的前5個標(biāo)簽(按照每個標(biāo)簽在當(dāng)前隱含主題中的概率從大到下的排列順序),如表3所示。
表3 隱含主題標(biāo)簽構(gòu)成
這里并沒有將主題進(jìn)行明確的命名,這是因?yàn)長DA模型訓(xùn)練出來的主題是具有隱含性質(zhì)的,有時可以很直接地從這些應(yīng)用標(biāo)簽中快速地反映出當(dāng)前主題就是生活中很明確的含義,但有時LDA生成的主題也會很晦澀難懂。如果發(fā)現(xiàn)這種情況,就需要迭代地調(diào)整模型參數(shù)(主題個數(shù))以達(dá)到較好的效果。
3.3 推薦評價
推薦算法常用的評價方法主要有平均絕對誤差(MeanAbsoluteError,MAE)、均方根誤差(RootMeanSquareError,RMSE)、 準(zhǔn)確率(Precision)、召回率(Recall)、綜合評價指標(biāo)(F1-measure)以及平均精度均值(Mean Average Precision, MAP)[25-26]。
MAE和RMSE是用來評價預(yù)測評分準(zhǔn)確性的標(biāo)準(zhǔn),反映了算法的預(yù)測評分和用戶實(shí)際評分的相似程度,其最終的值越小表示推薦的效果越好。定義如式(8)~(9)所示:
(8)
(9)
指標(biāo)precision、recall、F1-measure和MAP是對推薦算法在分類準(zhǔn)確率上進(jìn)行評價的標(biāo)準(zhǔn),它們所反映的是推薦算法對分類預(yù)測的準(zhǔn)確程度。這四個評價指標(biāo)相對比較適合具有明顯二分喜好的用戶。定義如式(10)~(13)所示:
(10)
其中:Nt, p代表應(yīng)用推薦列表中用戶喜歡的應(yīng)用數(shù)量,Q則表示推薦應(yīng)用的數(shù)量。
(11)
其中:Nt, p同樣代表應(yīng)用推薦列表中用戶喜歡的應(yīng)用數(shù)量;Bu則表示擁護(hù)u喜愛的推薦應(yīng)用數(shù)量。公式所表達(dá)的內(nèi)涵是用戶所喜歡的推薦對象能被推薦的概率。
F1=(2×precision×recall)/(precision+recall)
(12)
式(12)是對式(10)和式(11)的融合。F1-measure同時考慮了precision和recall兩個評價標(biāo)準(zhǔn),所以它可以比較全面地評價推薦算法的優(yōu)劣。
(13)
其中:mu表示第u次推薦時用戶喜愛的推薦數(shù)量;P(Luq)則代表第u次推薦時推薦列表前q個推薦應(yīng)用中用戶喜愛的推薦應(yīng)用數(shù)量和位置q的比值。
為了更好地提高這些評價指標(biāo),需要推薦出相似度更高的對象,對象之間的相似度計(jì)算則必不可少。為此,提出了移動應(yīng)用標(biāo)簽相似度計(jì)算公式,如式(14)所示:
(14)
其中:N代表移動應(yīng)用總量;L代表根據(jù)當(dāng)前移動應(yīng)用a推薦出的應(yīng)用列表。為了計(jì)算推薦出來的移動應(yīng)用與當(dāng)前的移動應(yīng)用之間標(biāo)簽的相似度,需要利用c(a)計(jì)算推薦列表中的總標(biāo)簽數(shù),同時利用m(a)來計(jì)算當(dāng)前移動應(yīng)用a與推薦列表中的標(biāo)簽匹配相同的標(biāo)簽數(shù),最后通過累加和除以N計(jì)算數(shù)據(jù)集總體的相似度。需要注意此處的數(shù)值越大代表相似度越高。通過式(14)計(jì)算出的不同推薦數(shù)量下的應(yīng)用相似度結(jié)果,如圖7所示。從圖7中可以看出LDA主題模型在不同推薦數(shù)量上的相似度。隨著推薦數(shù)量的增加,推薦出的應(yīng)用與當(dāng)前應(yīng)用的相似度不斷下降;但是提升了推薦的多樣性。
為了使推薦出的移動應(yīng)用不僅具有較高的相似度,還要具有多樣性,故而需要選擇合適的推薦數(shù)量。當(dāng)推薦數(shù)量為6時,使用LDA構(gòu)建移動應(yīng)用相似度為0.129,當(dāng)前移動應(yīng)用市場推薦的應(yīng)用相似度為0.056。可看出,使用LDA主題模型構(gòu)建移動相似度比當(dāng)前移動應(yīng)用市場推薦的應(yīng)用相似度高130%。
圖7 不同推薦數(shù)量下的LDA構(gòu)建相似度
本文提出了一個基于LDA主題模型的移動應(yīng)用相似度構(gòu)建方法。該方法以移動應(yīng)用市場中應(yīng)用的標(biāo)簽為特征來描述應(yīng)用,利用LDA隱含主題模型對應(yīng)用進(jìn)行研究,實(shí)現(xiàn)了在應(yīng)用標(biāo)簽級別的小粒度的相似度構(gòu)建方法。
利用移動應(yīng)用數(shù)據(jù)集的隱含主題分布,構(gòu)建了應(yīng)用主題分布矩陣,進(jìn)而構(gòu)建了應(yīng)用相似度矩陣,并將這種基于應(yīng)用隱含主題的相似度矩陣簡單地應(yīng)用到了基于內(nèi)容的推薦策略。這種相似度的推薦策略不僅可以應(yīng)用在移動應(yīng)用中,也可以應(yīng)用在其他領(lǐng)域中,如基于文本內(nèi)容的推薦、圖像分類[27]等。
此外,由于每一個隱含主題都具有隨機(jī)性與不確定性,在LDA主題模型訓(xùn)練過程中將導(dǎo)致輸出的隱含主題難于理解,此問題有待研究;在訓(xùn)練LDA主題模型時,模型的參數(shù)還需探索與優(yōu)化,從而獲得最佳的結(jié)果;在構(gòu)建相似度矩陣的過程中,最終輸出的相似度矩陣有待優(yōu)化與調(diào)整;在本文實(shí)驗(yàn)數(shù)據(jù)集規(guī)模下,輸出的相似度矩陣保存為文本文件后約為10GB,這也說明相似度矩陣隨著應(yīng)用數(shù)量的增加會呈現(xiàn)平方級別增長趨勢,這也將是今后的一個主要研究內(nèi)容;應(yīng)用的推薦策略在轉(zhuǎn)化過程中僅使用了一種縱向和橫向鏈表相結(jié)合的存儲結(jié)構(gòu),這種結(jié)構(gòu)有著簡單、快速、可擴(kuò)展、離線和在線相結(jié)合的優(yōu)點(diǎn),但還可再完善與提高,所以此內(nèi)容也是今后需研究的內(nèi)容之一。
)
[1]BLEIDM.Probabilistictopicmodels[J].CommunicationsoftheACM, 2012, 55(4): 77-84.
[2] 王李冬, 魏寶剛, 袁杰. 基于概率主題模型的文檔聚類[J]. 電子學(xué)報(bào), 2012, 40(11):2346-2350.(WANGLD,WEIBG,YUANJ.Documentclusteringbasedonprobabilistictopicmodel[J].ActaElectronicaSinica, 2012, 40(11):2346-2350.)
[3]AL-SALEMIB,ABAZIZMJ,NOAHSA.LDA-AdaBoost.MH:acceleratedAdaBoost.MHbasedonlatentDirichletallocationfortextcategorization[J].JournalofInformationScience, 2015, 41(1): 27-40.
[4]FOULDSJ,BOYLESL,DUBOISC,etal.StochasticcollapsedvariationalBayesianinferenceforlatentDirichletallocation[C]//KDD2013:Proceedingsofthe19thACMSIGKDDInternationalConferenceonKnowledgeDiscoveryandDataMining.NewYork:ACM, 2013: 446-454.
[5]SALTONG,WONGA,YANGCS.Avectorspacemodelforautomaticindexing[J].CommunicationsoftheACM, 1975, 18(11): 613-620.
[6]LEEY-S,LOR,CHENC-Y,etal.NewstopicscategorizationusinglatentDirichletallocationandsparserepresentationclassifier[C]//Proceedingsofthe2015IEEEInternationalConferenceonConsumerElectronics.Piscataway,NJ:IEEE, 2015: 136-137.
[7]MOROS,CORTEZP,RITAP.Businessintelligenceinbanking:aliteratureanalysisfrom2002to2013usingtextminingandlatentDirichletallocation[J].ExpertSystemswithApplications, 2015, 42(3): 1314-1324.
[8]ANOOPVS,PREMSANKARC,ASHARAFS,etal.Generatingandvisualizingtopichierarchiesfrommicroblogs:aniterativelatentDirichletallocationapproach[C]//Proceedingsofthe2015InternationalConferenceonAdvancesinComputing,CommunicationsandInformatics.Piscataway,NJ:IEEE, 2015: 824-828.
[9]LIUX,ZENGJ,YANGX,etal.ScalableparallelEMalgorithmsforlatentDirichletallocationinmulti-coresystems[C]//WWW2015:Proceedingsofthe24thInternationalConferenceonWorldWideWeb.RepublicandCantonofGeneva,Switzerland:InternationalWorldWideWebConferencesSteeringCommittee, 2015: 669-679.
[10]DEEPAKNA,HARIHARANR,SINHAUN.ClusterbasedhumanactionrecognitionusinglatentDirichletallocation[C]//Proceedingsofthe2013InternationalConferenceonCircuits,ControlsandCommunications.Piscataway,NJ:IEEE, 2013: 1-4.
[11]DEERWESTERS,DUMAISST,FURNASGW,etal.Indexingbylatentsemanticanalysis[J].JournaloftheAmericanSocietyforInformationScience, 1990, 41(6): 391-407.
[12]HOFMANNT.Probabilisticlatentsemanticindexing[C]//SIGIR1999:Proceedingsofthe22ndAnnualInternationalACMSIGIRConferenceonResearchandDevelopmentinInformationRetrieval.NewYork:ACM, 1999: 50-57.
[13]BLEIDM,NGAY,JORDANMI.LatentDirichletallocation[J].TheJournalofMachineLearningResearch, 2003, 3: 993-1022.
[14] 項(xiàng)亮. 推薦系統(tǒng)實(shí)戰(zhàn)[M]. 北京:人民郵電出版社, 2012: 1-2.(XIANGL.RecommendationinPractice[M].Beijing:Posts&TelecomPress, 2012: 1-2.)
[15]BELLR,KORENY,VOLINSKYC.Modelingrelationshipsatmultiplescalestoimproveaccuracyoflargerecommendersystems[C]//Proceedingsofthe13thACMSIGKDDInternationalConferenceonKnowledgeDiscoveryandDataMining.NewYork:ACM, 2007: 95-104.
[16]ONUMAK,TONGH,FALOUTSOSC.TANGENT:anovel, “surpriseme”,recommendationalgorithm[C]//Proceedingsofthe15thACMSIGKDDInternationalConferenceonKnowledgeDiscoveryandDataMining.NewYork:ACM, 2009: 657-666.
[17]MUSTOC.Enhancedvectorspacemodelsforcontent-basedrecommendersystems[C]//ProceedingsoftheFourthACMConferenceonRecommenderSystems.NewYork:ACM, 2010: 361-364.
[18]SONGY,ZHUANGZ,LIH,etal.Real-timeautomatictagrecommendation[C]//Proceedingsofthe31stAnnualInternationalACMSIGIRConferenceonResearchandDevelopmentinInformationRetrieval.NewYork:ACM, 2008: 515-522.
[19]MASSAP,AVESANIP.Trust-awarecollaborativefilteringforrecommendersystems[C]//ProceedingsoftheOTMConfederatedInternationalConferences,CoopIS,DOA,andODBASE2004,LNCS3290.Berlin:Springer, 2004: 492-508.
[20]MASSAP,AVESANIP.Trust-awarerecommendersystems[C]//Proceedingsofthe2007ACMConferenceonRecommenderSystems.NewYork:ACM, 2007: 17-24.
[21]MAH,YANGH,LYUMR,etal.SoRec:socialrecommendationusingprobabilisticmatrixfactorization[C]//Proceedingsofthe17thACMConferenceonInformationandKnowledgeManagement.NewYork:ACM, 2008: 931-940.
[22]DONGX,WEIL,ZHUH,etal.Anefficientprivacy-preservingdata-forwardingschemeforservice-orientedvehicularAdHocnetworks[J].IEEETransactionsonVehicularTechnology, 2011, 60(2): 580-591.
[23]WEIX,CROFTWB.LDA-baseddocumentmodelsforAdHocretrieval[C]//Proceedingsofthe29thAnnualInternationalACMSIGIRConferenceonResearchandDevelopmentinInformationRetrieval.NewYork:ACM, 2006: 178-185.
[24]HEB,AGRAWALDP.Anidentity-basedauthenticationandkeyestablishmentschemeformulti-operatormaintainedwirelessmeshnetworks[C]//Proceedingsofthe7thIEEEInternationalConferenceonMobileAd-HocandSensorSystems.Piscataway,NJ:IEEE, 2010: 71-78.
[25] 朱郁筱, 呂琳援. 推薦系統(tǒng)評價指標(biāo)綜述[J]. 電子科技大學(xué)學(xué)報(bào), 2012, 41(2):164-175.(ZHUYX,LYULY.Evaluationmetricsforrecommendersystems[J].JournalofUniversityofElectronicScienceandTechnologyofChina, 2012, 41(2): 164-175.)
[26]MANNINGCD,RAGHAVANP,SCHUTZEH.IntroductiontoInformationRetrieval[M].Cambridge:CambridgeUniversityPress, 2008:76-80.
[27]LIZ,TIANW,LIY,etal.Amoreeffectivemethodforimagerepresentation:topicmodelbasedonlatentDirichletallocation[C]//Proceedingsofthe2015 14thInternationalConferenceonComputer-AidedDesignandComputerGraphics.Piscataway,NJ:IEEE, 2015: 143-148.
ThisworkispartiallysupportedbytheNationalNaturalScienceFoundationofChina(61462079,61262088,61562086,61363083).
CHU Zheng, born in 1991, M. S. candidate. His research interests include data mining, memory calculation, green computing.
YU Jiong, born in 1964, Ph. D., professor. His research interests include network security, grid computing, distributed computing.
WANG Jiayu, born in 1991, M. S. candidate. Her research interests include data mining, mobile computing.
WANG Yuefei, born in 1991, Ph. D. candidate. His research interests include data mining, memory computing, green computing.
Construction method of mobile application similarity matrix based on latent Dirichlet allocation topic model
CHU Zheng1,2, YU Jiong1,2*, WANG Jiayu1, WANG Yuefei1,2
(1.School of Software, Xinjiang University, Urumqi Xinjiang 830008, China;2.School of Information Science and Engineering, Xinjiang University, Urumqi Xinjiang 830046, China)
With the rapid development of mobile Internet, how to extract effective description information from a large number of mobile applications and then provide effective and accurate recommendation strategies for mobile users becomes urgent. At present, recommendation strategies are relatively traditional, and mostly recommend applications according to the single attribute, such as downloads, application name and application classification. In order to resolve the problem that the granularity of recommended applications is too coarse and the recommendation is not accurate, a mobile application similarity matrix construction method based on Latent Dirichlet Allocation (LDA) was proposed. Started from the application labels, a topic model distribution matrix of mobile applications was constructed, which was utilized to construct mobile application similarity matrix. Meanwhile, a method for converting the mobile application similarity matrix to the viable storage structure was also proposed. Extensive experiments demonstrate the feasibility of the proposed method, and the application similarity achieves 130 percent increasement by the proposed method compared with that by the existing 360 application market. The proposed method solves the problem that the recommended granularity is too coarse in the mobile application recommendation process, so that the recommendation result is more accurate.
similarity matrix; topic model; latent information; application recommendation; label
2016- 09- 26;
2016- 12- 25。
國家自然科學(xué)基金資助項(xiàng)目(61462079,61262088,61562086,61363083)。
褚征(1991—),男,河南南陽人,碩士研究生,CCF會員,主要研究方向:數(shù)據(jù)挖掘、內(nèi)存計(jì)算、綠色計(jì)算; 于炯(1964—),男,新疆烏魯木齊人,教授,博士,CCF會員,主要研究方向:網(wǎng)絡(luò)安全、網(wǎng)格計(jì)算、分布式計(jì)算; 王佳玉(1991—),女,黑龍江哈爾濱人,碩士研究生,CCF會員,主要研究方向:數(shù)據(jù)挖掘、移動計(jì)算; 王躍飛(1991—),男,新疆烏魯木齊人,博士研究生,主要研究方向:數(shù)據(jù)挖掘、內(nèi)存計(jì)算、綠色計(jì)算。
1001- 9081(2017)04- 1075- 08
10.11772/j.issn.1001- 9081.2017.04.1075
TP274.2
A