本發(fā)明涉及商務(wù)網(wǎng)站的一種基于文檔內(nèi)容推薦的技術(shù)領(lǐng)域,特別涉及一種基lda模型與退火算法組合的推薦算法。
背景技術(shù):
從互聯(lián)網(wǎng)的誕生開(kāi)始,各類信息技術(shù)迅猛發(fā)展,電子商務(wù)、網(wǎng)上服務(wù)等網(wǎng)絡(luò)業(yè)務(wù)越來(lái)越普及,當(dāng)然,這些網(wǎng)絡(luò)業(yè)務(wù)積累的信息也越來(lái)越龐大,用戶想從這海量的信息中快速準(zhǔn)確地尋找到自己感興趣的信息已經(jīng)變得越來(lái)越困難。為了解決這個(gè)問(wèn)題,百度、google等搜索引擎就應(yīng)運(yùn)而生了,客戶可以方便地針對(duì)自己想要的快速搜索到相關(guān)信息。但是,在客戶無(wú)法準(zhǔn)確描述自己需求時(shí),即不清楚自己所要信息的關(guān)鍵詞時(shí),搜索引擎就無(wú)能為力了。
且在實(shí)際上,用數(shù)學(xué)語(yǔ)言描述需求:我們的需求并不是絕對(duì)的只是有限的一個(gè)點(diǎn),而往往是一個(gè)無(wú)邊界的鄰域,即對(duì)信息的需求往往沒(méi)有明確界定邊界。這是因?yàn)榭此茻o(wú)關(guān)的信息間往往是存在藕斷絲連關(guān)系的。簡(jiǎn)單來(lái)說(shuō),就是需求往往會(huì)衍生出需求。
如此,在這個(gè)信息時(shí)代中,便有商家悟到其中道理,從而根據(jù)客戶的需求,向客戶推薦出可能的需求。這便是推薦技術(shù)的中心思想。推薦技術(shù)使得客戶在滿足自己需求后發(fā)現(xiàn)自己一些潛在的需求,從而較全面的完成需求,而這同時(shí)也為商家?guī)?lái)一定利益,故而達(dá)到雙贏。盡管現(xiàn)在的推薦算法多種多樣,但是這個(gè)中心思想是不變的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)商務(wù)網(wǎng)站提出的一種基于文檔內(nèi)容的推薦技術(shù),從文檔內(nèi)容的角度出發(fā),對(duì)文檔內(nèi)容進(jìn)行分類,提出結(jié)合基于文檔內(nèi)容lda主題分析算法與退火算法,向用戶推薦相似文檔,供參考閱讀。
本發(fā)明使用lda算法,本質(zhì)上是一種文檔聚類的算法,通過(guò)提取文檔主題,對(duì)各文檔文檔的主題分布進(jìn)行研究,將主題分布偏離度低的文檔聚為一類。如此通過(guò)用戶瀏覽過(guò)的歷史文檔主題分析,找到與其同屬一類的其他文檔,可根據(jù)偏離度最低的文檔對(duì)用戶進(jìn)行推薦文檔。
文檔選擇了退火算法代替相似度的計(jì)算,依據(jù)這樣一個(gè)事實(shí):在實(shí)際應(yīng)用推薦系統(tǒng)中,商品(本發(fā)明主要指文檔文檔)類目過(guò)多,因此構(gòu)建的文檔—詞矩陣是一個(gè)具有高度稀疏性的矩陣,在計(jì)算相似度過(guò)程中,時(shí)間和空間復(fù)制度都很高。
所述的基于lda與退火算法的組合推薦算法具體步驟如下:
1)采用gibbs抽樣構(gòu)建主題—文檔矩陣和主題—詞矩陣,得到歷史瀏覽文檔的多維主題分布φnew,從多維主題分布φnew中抽出k個(gè)具有高峰分布的主題作為這些文檔的代表主題{zk}rep
2)采用一次退火算法在所有文檔中篩選出在代表主題上的分布滿足一定條件的歷史文檔作為備選文檔
3)再采用第二次不同的退火算法從這些備選文檔中篩選出來(lái)h篇與歷史瀏覽文檔在對(duì)應(yīng)的代表主題上有較高相似度的文檔作為最終推薦文檔。
4)模型評(píng)價(jià),本發(fā)明選擇的lda算法與退火算法組合推薦模型與單獨(dú)采用lda主題分析模型進(jìn)行了對(duì)比分析。
本發(fā)明提出的基于lda算法與退火算法組合推薦模型,經(jīng)驗(yàn)證(見(jiàn)后文算法),效果明顯優(yōu)于單獨(dú)采用lda主題分析模型。本發(fā)明文檔選擇了退火算法代替相似度的計(jì)算。退火算法本身,是一個(gè)簡(jiǎn)單的尋找近似全局最優(yōu)的算法,操作簡(jiǎn)單方便,運(yùn)行快捷,用來(lái)尋找有限篇文檔的推薦非常合適。并且本發(fā)明采用了兩次退火算法,第一次是篩選,第二次才是真正的尋優(yōu),如此安排在后面實(shí)驗(yàn)中也表明,運(yùn)行時(shí)效和結(jié)果準(zhǔn)確率都有所提高。
附圖說(shuō)明
圖1本發(fā)明實(shí)施步驟流程圖;
圖2步驟1歷史瀏覽文檔主題詞匯頻數(shù)分布圖;
圖3步驟1歷史未瀏覽文檔1的主題詞匯頻數(shù)分布圖;
圖4步驟1歷史未瀏覽文檔2的主題詞匯頻數(shù)分布圖;
圖5本發(fā)明算法與傳統(tǒng)算法的平均相似度曲線比較圖;
圖6本發(fā)明算法與傳統(tǒng)算法的困惑度曲線比較圖。
具體實(shí)施方式
具體步驟如下:
步驟1:采用gibbs抽樣構(gòu)建主題—文檔矩陣和主題—詞矩陣,得到歷史瀏覽文檔的多維主題分布φnew,從多維主題分布φnew中抽出k個(gè)具有高峰分布的主題作為這些文檔的代表主題{zk}rep
步驟2:采用一次退火算法在所有文檔中篩選出在代表主題上的分布滿足一定條件的歷史文檔作為備選文檔
步驟3:再采用第二次不同的退火算法從這些備選文檔中篩選出來(lái)h篇與歷史瀏覽文檔在對(duì)應(yīng)的代表主題上有較高相似度的文檔作為最終推薦文檔。
步驟4:模型評(píng)價(jià),本發(fā)明選擇的lda算法與退火算法組合推薦模型與單獨(dú)采用lda主題分析模型進(jìn)行了對(duì)比分析。
本發(fā)明提出的基于lda算法與退火算法組合推薦模型,經(jīng)驗(yàn)證(見(jiàn)后文算法),效果明顯優(yōu)于單獨(dú)采用lda主題分析模型。本發(fā)明文檔選擇了退火算法代替相似度的計(jì)算。退火算法本身,是一個(gè)簡(jiǎn)單的尋找近似全局最優(yōu)的算法,操作簡(jiǎn)單方便,運(yùn)行快捷,用來(lái)尋找有限篇文檔的推薦非常合適。并且本發(fā)明采用了兩次退火算法,第一次是篩選,第二次才是真正的尋優(yōu),如此安排在后面實(shí)驗(yàn)中也表明,運(yùn)行時(shí)效和結(jié)果準(zhǔn)確率都有所提高
所述的步驟1具體說(shuō)明如下:
抽取文檔數(shù)據(jù)如下表所示:
對(duì)文檔主題建模的方法便是將主題視為詞匯的概率分布。假設(shè)有k個(gè)主題
若假設(shè)這k個(gè)主題形成m篇文檔,共有w個(gè)詞匯,則記
對(duì)主題變量
關(guān)于上述符號(hào)說(shuō)明如下:
上述后驗(yàn)概率分布公式中i=(m,n)是一個(gè)二維下標(biāo),對(duì)應(yīng)的是第m篇文檔的第n個(gè)詞,zi
就表示這個(gè)詞對(duì)應(yīng)的主題。而用/i表示去除下標(biāo)為i的詞,故:
而
gibbs抽樣算法過(guò)程簡(jiǎn)述如下:
(1)初始化zi為1到k之間的某個(gè)隨機(jī)整數(shù)k,i從(1,1)循環(huán)到(m,nm),m是文檔的總篇數(shù),nm是第m篇文檔的詞數(shù)(即是所有詞匯的頻數(shù)和)。
(2)根據(jù)(式3)按i從(1,1)循環(huán)到(m,nm)將下標(biāo)為i的詞匯
(3)對(duì)(2)迭代一定次數(shù)后,取i從(1,1)循環(huán)到(m,nm)的每個(gè)zi的當(dāng)前值記錄為樣本。
由(3)得到的樣本可以統(tǒng)計(jì)得到一個(gè)主題與詞匯共現(xiàn)的頻數(shù)分布矩陣,該矩陣就是lda模型,如下矩陣表1:
其中,n為單一性詞匯數(shù),n(k,n)表示為
同時(shí)也可以統(tǒng)計(jì)得到文檔與主題共現(xiàn)的頻數(shù)分布矩陣,如下表2:
其中,n(m,k)表示為
其中,
有了lda模型,我們可以再根據(jù)(式3)對(duì)歷史瀏覽文檔中的每一個(gè)詞按照上述gibbs抽樣過(guò)程對(duì)歷史瀏覽文檔進(jìn)行主題分析,從而得到歷史瀏覽文檔的主題與詞匯頻數(shù)分布矩陣
所述的步驟2的子步驟具體說(shuō)明如下:
本發(fā)明在得到文檔主題分布后,先采用一次退火算法根據(jù)主題分布從所有未瀏覽文檔中篩選出與歷史瀏覽文檔有相似主題高峰分布的文檔,如此大大降低文檔基數(shù),以便第二次退火算法的運(yùn)行。
退火算法過(guò)程如下:
(1)采用帶有記憶的退火算法確定歷史瀏覽文檔主題分布中的幾個(gè)高峰的峰值主題:如圖1,歷史瀏覽文檔有5個(gè)高峰分布區(qū)間,它們對(duì)應(yīng)的峰值主題分別為:k(x1)、k(x2)、k(x3)、k(x4)、k(x5)。其中x1<x2<x3<x4<x5是主題編號(hào)1、2、…、k中的數(shù)。
該步驟是采用有記憶的退火算法,在尋找最優(yōu)的過(guò)程保留每個(gè)局部最優(yōu),最后可得到峰值比較式:k(x3)>k(x1)>k(x4)>k(x2)>k(x5)。如圖2所示
(2)確定歷史瀏覽文檔的代表主題:
先判斷最大峰值n(k(x3))是否大于等于上界,若是,則進(jìn)行以下(2.1)。若不,則進(jìn)行以下(2.2)。
(2.1)判斷最小峰值k(x5)是否大于等于上界,若小于則舍去該峰值k(x5),繼續(xù)判斷排序第四的峰值k(x2)是否大于等于上界,若小于則舍去,繼續(xù)判斷排序第三的峰值k(x4)是否大于等于上界,若小于則舍去,繼續(xù)判斷排序第二的峰值k(x1)是否大于等于上界,若小于則舍去。最后剩下排序第一的峰值k(x3),顯然該峰值是大于等于上界的,且該峰值附近很大可能存在頻數(shù)值大于上界的主題,故可在該峰值主題左右選出四個(gè)依次小于該峰值的頻數(shù)值對(duì)應(yīng)的主題k(y1)、k(y2)、k(y3)、k(y4),同樣判斷這些頻數(shù)值是否大于上界,小于等于的則舍去,保留下來(lái)的主題加上第一峰值k(x3)共同作為該歷史瀏覽文檔的代表主題{z5}rep。
若最小峰值k(x5)大于等于上界,則這五個(gè)峰值主題共同作為歷史瀏覽文檔的代表主題{z5}rep;若排序第四的峰值k(x2)大于等于上界,則在第一峰值k(x3)左右取一個(gè)依次小于k(x3)的頻數(shù)值對(duì)應(yīng)的主題。如此類推下去。
說(shuō)明:這里的上界即是箱形圖里的上界。
(2.2)按照(2.1)將上界換成上四分位數(shù)進(jìn)行。
假設(shè)得到歷史瀏覽文檔的代表主題就是k(x3)、k(x1)、k(x4)、k(x2)、k(x5)。
(3)從歷史文檔中篩選出相關(guān)文檔:根據(jù)歷史瀏覽文檔的代表主題,對(duì)歷史文檔做如下篩選:依次判斷歷史文檔的主題k(x3)、k(x1)、k(x4)、k(x2)、k(x5)的頻數(shù)值是否大于該分檔詞匯頻數(shù)值的上四分位數(shù),只要其中一個(gè)滿足,則將該歷史文檔篩選出來(lái)作為推薦的備選文檔。
所述的步驟3的子步驟具體說(shuō)明如下:
采用退火算法確定與歷史瀏覽文檔最相似的歷史文檔組合:假設(shè)備選文檔有l(wèi)篇,要從中選取h篇作為歷史瀏覽文檔的最相似推薦,其中1<h<l。則有c(l,h)種組合法。但采用退火算法則顯然不用每種都嘗試,下面是退火算法的應(yīng)用過(guò)程:
(1)確定目標(biāo)函數(shù):設(shè)歷史瀏覽文檔與備選文檔di對(duì)應(yīng)的代表主題和非代表主題分別求余弦相似度
則退火算法的目的就是尋找推薦的h篇文檔的相似程度和最大,故退火算法的目標(biāo)函數(shù)為:
令
(2)初始化:
取初始解s0為備選文檔中依次的前h篇
取初始狀態(tài)t0=
(3)確定隨機(jī)移動(dòng)準(zhǔn)則:
本發(fā)明采用metropolis準(zhǔn)則,隨機(jī)移動(dòng)接受概率如下:
(4)新解產(chǎn)生方式:
隨機(jī)從1到h中取兩個(gè)數(shù)s和g,然后從當(dāng)前解以外的所有文檔中隨機(jī)抽取兩篇文檔代替這兩個(gè)隨機(jī)數(shù)對(duì)應(yīng)的文檔構(gòu)成新解,根據(jù)目標(biāo)函數(shù)和隨機(jī)移動(dòng)準(zhǔn)則對(duì)新解進(jìn)行分析接受情況并對(duì)所得到的目標(biāo)函數(shù)值對(duì)應(yīng)新解記憶保留,循環(huán)直至接受概率趨近0時(shí),取所有得到的目標(biāo)函數(shù)值中最大的值對(duì)應(yīng)的組合解作為最終解。
以下是兩種與歷史瀏覽文檔相似度不同的文檔圖示,圖2的文檔doc(x)與歷史瀏覽文檔的相似性比圖3的文檔doc(y)高。
所述的步驟4具體說(shuō)明如下:
如下表所示(按相似度降序排序):
下面便采用平均相似度分析兩種不同算法推薦出的各文檔與原文檔的主題相似度,以及用困惑度分析推薦文檔的混亂程度,以此評(píng)估兩種算法模型的性能?;靵y程度越小,說(shuō)明文檔符合推薦文檔的概率越大,推薦算法模型的性能更優(yōu)。
平均相似度公式如下所示:
其中,
(式8)中的
困惑度公式如下所示:
其中,
所求得的兩種算法模型的平均相似度曲線如圖5所示。本發(fā)明算法所求的平均相似度都明顯高于普通算法所求的,這說(shuō)明在針對(duì)有代表性的主要主題,本發(fā)明采用的算法是具有更高的準(zhǔn)確性的
困惑度越小表明模型對(duì)文檔的預(yù)測(cè)能力越強(qiáng),泛化性能也越強(qiáng)。由圖6可見(jiàn),兩種算法模型的困惑度在后面趨于平穩(wěn),而推薦篇數(shù)超過(guò)2后,本發(fā)明算法模型的困惑度明顯小于普通算法,而且本發(fā)明算法模型的困惑度曲線整體較平穩(wěn),不像普通算法模型的困惑度曲線一樣跨度大。這驗(yàn)證了本發(fā)明算法模型的推薦性能比普通算法的好。
綜上所述,本發(fā)明提出的一種基于lda與退火算法的組合推薦算法在文檔推薦上是較高效的。該算法針對(duì)文檔,根據(jù)lda對(duì)歷史文檔的主題分析,得到歷史瀏覽文檔的多維主題分布φnew,從多維主題分布φnew中抽出具有高峰分布的主題作為該歷史瀏覽文檔的代表主題,然后采用一次退火算法在所有文檔中篩選出在代表主題上的分布滿足一定條件的歷史文檔作為備選文檔,然后在采用第二次不同的退火算法從這些備選文檔中篩選出來(lái)h篇與歷史瀏覽文檔在對(duì)應(yīng)的代表主題上有較高相似度的文檔作為最終推薦文檔。經(jīng)驗(yàn)證,本發(fā)明所提出的算法無(wú)論在性能上還是運(yùn)行速度上都高于普通算法。