基于folfm模型的新聞推薦系統(tǒng)及方法
【專利摘要】本發(fā)明提供一種基于FOLFM模型的新聞推薦系統(tǒng)及方法,在基于內(nèi)容推薦方法的基礎(chǔ)上,利用隱類模型和內(nèi)容特征對新聞內(nèi)容模型進行抽象表達,為每個用戶構(gòu)建其個性化的隱類偏好模型。通過對用戶的實時行為記錄進行實時訓練得到用戶對于某個隱類新聞的偏好,計算決定新聞是否推薦給用戶,并經(jīng)過一系列的處理過程得到最終的新聞推薦列表,本發(fā)明深入挖掘用戶興趣,提高推薦準確率及用戶滿意度,避免新聞的冷啟動問題,在盡可能提高推薦效果的情況下保證性能。經(jīng)實驗表明,本發(fā)明既保證了高精度和高速度要求,又實現(xiàn)了用戶視覺上的實時推薦。
【專利說明】基于FOLFM模型的新聞推薦系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種個性化新聞推薦系統(tǒng)及方法,具體一種基于FOLFM隱語義模型的新聞推薦方法,主要改進傳統(tǒng)LFM(Latent factor model,隱語義模型)為FOLFM(FastOnline Latent FactorModel,快速在線學習隱語義模型)并將其應(yīng)用于挖掘新聞網(wǎng)站中的隱性反饋數(shù)據(jù)集,通過實時的新聞分類和用戶興趣聚類進行TopN推薦,屬于自然語言處理領(lǐng)域。
【背景技術(shù)】
[0002]個性化推薦系統(tǒng)是一種幫助用戶快速發(fā)現(xiàn)有用信息的工具,可以為不同的用戶提供個性化服務(wù),以滿足其特定的興趣和需求。與搜索引擎不同,推薦系統(tǒng)不需要用戶提供明確的需求,而是通過分析用戶的歷史行為對用戶的興趣建模,并以此為依據(jù)主動給用戶推薦能夠滿足他們興趣和需求的信息。
[0003]在互聯(lián)網(wǎng)的各類網(wǎng)站中都可以看到個性化推薦系統(tǒng)的應(yīng)用,包括電子商務(wù)、電影及視頻、音樂、社交網(wǎng)絡(luò)等等。淘寶、亞馬遜等應(yīng)用推薦系統(tǒng),通過協(xié)同過濾等個性化推薦模型預(yù)測用戶可能感興趣的商品為其推薦。協(xié)同過濾推薦(Collaborative Filtering,CF)是利用某個興趣相投、擁有共同經(jīng)驗的群體的喜好來向使用者推薦其感興趣的物品或信息。Facebook、Twitter等利用個性化推薦系統(tǒng)向用戶推薦好友、音樂等內(nèi)容,提高網(wǎng)站的點擊率與轉(zhuǎn)化率。
[0004]個性化新聞推薦系統(tǒng)是根據(jù)用戶的興趣特點和行為,向用戶推薦其感興趣的新聞資訊的推薦系統(tǒng)。個性化新聞推薦技術(shù)則是個性化推薦在新聞處理領(lǐng)域中的一個延伸應(yīng)用,它是通過推薦系統(tǒng)將新聞自動推薦給對其感興趣的用戶,實現(xiàn)新聞網(wǎng)站及網(wǎng)站用戶的利益雙贏。個性化新聞推薦系統(tǒng)將個性化推薦應(yīng)用于新聞的推薦,它可以幫助用戶從互聯(lián)網(wǎng)上的海量信息中輕松獲取感興趣的新聞,并挖掘用戶可能感興趣的內(nèi)容。
[0005]新聞屬于某個或多個主題類(例如體育、政治等),所以每篇新聞的歸屬不是唯一的,且用戶的興趣分類粒度也是多樣的且用戶的興趣多樣性決定了向其推薦的新聞也必須是多樣且新穎的。
[0006]傳統(tǒng)的基于協(xié)同過濾的方法雖然得到了普遍應(yīng)用,但它對用戶的興趣表示及建模不完整,只是采用相似用戶的形式,無法準確表達用戶的興趣偏好。并且基于物品的協(xié)同過濾需要維系一張十分龐大的物品相關(guān)向量,計算效率低,難以應(yīng)用于數(shù)據(jù)規(guī)模較大的海量新聞推薦。
[0007]在新聞推薦中,冷啟動問題非常明顯。每天都會有大量新的新聞,因此他們的生存周期很短,而推薦算法需要在它們短暫的時間內(nèi)就將其推薦給對它們感興趣的用戶。所以,實時性在新聞的推薦系統(tǒng)中是非常重要的,傳統(tǒng)的協(xié)同過濾方法每次訓練都需要掃描所有用戶的行為記錄,無法滿足實時性要求。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的是提供一種基于用戶行為統(tǒng)計的自動興趣聚類的推薦系統(tǒng)及方法,深入挖掘用戶興趣,提高推薦準確率及用戶滿意度,避免新聞的冷啟動問題,在盡可能提高推薦效果的情況下保證性能。
[0009]本發(fā)明的技術(shù)解決方案是:
[0010]一種基于FOLFM模型的新聞推薦,包括樣本采集處理模塊、FOLFM模型訓練模塊、FOLFM推薦計算模塊、新聞推薦生成模塊,
[0011]樣本采集處理模塊:收集用戶對于新聞鏈接的點擊行為,根據(jù)用戶歷史上對首頁鏈接的行為記錄采集新聞樣本;
[0012]FOLFM模型訓練模塊:利用最速下降法求最優(yōu)化損失函數(shù),得到FOLFM的模型參數(shù):用戶隱類偏好向量P和新聞隱類向量Q,將訓練得到的模型緩存保存至數(shù)據(jù)庫中;
[0013]FOLFM推薦計算模塊:在基于內(nèi)容推薦方法的基礎(chǔ)上,利用隱類模型和內(nèi)容特征對新聞內(nèi)容模型進行抽象表達,為每個用戶構(gòu)建其個性化的隱類偏好模型;通過對用戶的實時的行為記錄的實時訓練和計算用戶對于某個隱類新聞的偏好,計算決定新聞是否推薦給用戶,得到最終的新聞推薦列表;
[0014]新聞推薦生成模塊:對后臺新發(fā)布的新聞,結(jié)合用戶的行為實時訓練的除的FOLFM模型得到用戶感興趣的新發(fā)布的新聞,得到這些一位用戶對應(yīng)數(shù)條新聞的數(shù)據(jù)后,需要調(diào)用新聞推薦生成初始推薦列表并實時的更新推薦列表。
[0015]進一步地,樣本采集處理模塊的具體操作步驟如下:
[0016]步驟1.1)對于用戶u有過行為的新聞鏈接i定義為(U,i),并標記為正樣本。
[0017]步驟1.2)根據(jù)用戶行為不同,標記行為的權(quán)重為W,則對新聞i的興趣度標記為Rui = w ;
[0018]步驟1.3)對于展示給用戶u的新聞鏈接i,當用戶從沒發(fā)生過行為,就定義(u,i)為負樣本,Rui = O ;
[0019]步驟1.4)過濾樣本的網(wǎng)頁標簽和冗余信息保存為新聞文本存入mysql數(shù)據(jù)庫;
[0020]步驟1.5)提取采樣新聞內(nèi)容屬性(關(guān)鍵詞、類別等)生成新聞i的內(nèi)容特征向量Y1,并提取關(guān)鍵詞構(gòu)成關(guān)鍵詞序列并對應(yīng)其新聞條目存于數(shù)據(jù)庫。
[0021 ] 進一步地,F(xiàn)OLFM模型訓練模塊的具體步驟如下:
[0022]步驟2)設(shè)置訓練參數(shù):隱特征的個數(shù)F,學習速率alpha,正則化參數(shù)lambda。并將參數(shù)寫入配置文件保存;
[0023]步驟2.1)讀取配置文件,初始化用戶隱類偏好向量P,新聞隱類向量Q(初始值為
0.l*rand(0,1)除以 sqrt (dim)填充,dim 表示維度);
[0024]步驟1.2)開始迭代,從數(shù)據(jù)集中依次取出user以及該user喜歡的iterms集作為正樣本且興趣度為Rui ;
[0025]步驟2.3)調(diào)用樣本采集預(yù)處理模塊,進行隨機抽樣,為user抽取與items數(shù)量相當?shù)呢摌颖?,并將正負樣本合并,用于?yōu)化計算;
[0026]步驟2.4)從數(shù)據(jù)庫中取出item和user,對該item的興趣度記為Rui ;
[0027]步驟2.5)根據(jù)向量P和Q計算當前用戶u對新聞i的興趣度,計算公式為Rui’=P*Q ;
[0028]步驟2.6)計算當前的誤差損失為C = Ru1-Rui’ ;
[0029]步驟2.7)代入誤差、學習速率、正則化參數(shù)值,利用最速梯度下降法迭代F次,計算得到表示用戶隱類偏好向量P和新聞隱類向量Q ;
[0030]步驟2.8)調(diào)整學習速率,繼續(xù)迭代優(yōu)化損失函數(shù)找到最合適的參數(shù)P和Q,迭代次數(shù)小于規(guī)定步數(shù)轉(zhuǎn)到步驟3);
[0031]步驟2.9)將找到的最佳參數(shù)向量P和Q存入數(shù)據(jù)庫。
[0032]進一步地,F(xiàn)OLFM推薦計算模塊中,
[0033]用戶的隱類偏好模型為Fu = {P?,X1J,其中,Pu為用戶的隱類興趣偏好,Xu為用戶的關(guān)鍵詞興趣,
[0034]用戶的隱類興趣偏好由一組權(quán)值向量表示=Pu = {ffm, ffU2, Wu3, , Wu3I,Wui (I ^ i ^ m)代表用戶對第i個隱類的興趣偏好度,m為設(shè)定的隱類個數(shù);對于用戶的隱類偏好興趣模型通過每過幾個小時對用戶行為記錄的掃描然后調(diào)用“F0LFM模型訓練模塊”訓練得到;
[0035]用戶的關(guān)鍵詞興趣由向量空間模型表示,即一組關(guān)鍵詞權(quán)值序列:
[0036]Xu — { (Xui) ω Ul) (Χυ2,ωυ2) (Χυ3,ωυ3),...,(Xun,W Un) ^ ?
[0037]其中,Xw (I彡j彡η)表示用戶感興趣的關(guān)鍵詞,ω^.表示用戶對關(guān)鍵詞Xw感興趣的程度;用戶的關(guān)鍵詞興趣序列基于用戶的歷史閱讀行為和新聞的關(guān)鍵詞權(quán)值計算得到。
[0038]進一步地,用戶關(guān)鍵詞興趣計算方法:
[0039]步驟3)對于每一個用戶,選擇用戶的η個權(quán)值較大的關(guān)鍵詞作為種子;
[0040]步驟3.1)遍歷每一篇用戶產(chǎn)生行為的對應(yīng)新聞,對于不同的用戶行為賦予不同的權(quán)值Xj ;
[0041]步驟3.2)遍歷每一個關(guān)鍵詞的權(quán)值;
[0042]步驟3.3)判斷是否接受該關(guān)鍵詞,接收并且Xu存在該關(guān)鍵詞,則權(quán)值增加,否則向Xu中加入該關(guān)鍵詞權(quán)值。不接受則舍棄該關(guān)鍵詞?;氐讲襟E3)繼續(xù)遍歷每個關(guān)鍵詞的權(quán)值;
[0043]步驟3.4)關(guān)鍵詞重新排序前η個;
[0044]步驟3.5)回到步驟3.1);
[0045]步驟3.6)將計算得到的用戶的關(guān)鍵詞序列保存到數(shù)據(jù)庫。
[0046]進一步地,F(xiàn)OLFM推薦計算模塊中,新聞模型構(gòu)建及新加入新聞的推薦計算
[0047]將新聞表示為一個三維的模型,包括隱類特征向量、關(guān)鍵詞權(quán)值和新聞時間,Ns ={Qs, Xs, tts};
[0048]新聞表示為一組隱類向量,即:QS = {ffn, Wn2, Wn3,..Wni——,W?},向量中得每一維表示新聞η在第i個隱類的權(quán)值,m為設(shè)定的隱類個數(shù),新聞內(nèi)容模型的隱類特征向量Qs通過實時調(diào)用“F0LFM模型訓練模塊”訓練得到;
[0049]新聞內(nèi)容模型的關(guān)鍵詞權(quán)值Xs采用向量空間模型方法,應(yīng)用TF-1DF計算得至1J,向量的每一維表示新聞的一個關(guān)鍵詞及其對應(yīng)權(quán)值,即Xs = { (XS1, wSl) (XS2.wS2)(XS3, ω53),..., (XSn, coSn) },其中,Xsj (I彡j彡n)表示新聞的第j個關(guān)鍵詞,《Sn對應(yīng)該關(guān)鍵詞&的權(quán)值,η為關(guān)鍵詞的個數(shù)。
[0050]進一步地,計算用戶u對于新聞i準確的興趣值的具體步驟如下:
[0051]步驟4)利用新聞鏈接的內(nèi)容屬性(關(guān)鍵詞、類別等)得到鏈接的內(nèi)容特征向量Xs ;
[0052]步驟4.1)讀取用戶歷史行為記錄中的內(nèi)容特征興趣得到用戶對于該內(nèi)容特征的興趣程度Y1 ;
[0053]步驟4.2)計算XMY1得到用戶對于新聞的興趣值并將新聞的id送入新聞推薦生成模塊;
[0054]步驟4.3)系統(tǒng)后臺實時收集用戶最近幾個小時用戶u對新聞i的興趣樣本并加入系統(tǒng)緩存,每過幾個小時待收集完新的用戶行為后清空緩存。
[0055]步驟4.4)調(diào)用“F0LFM模型訓練模塊”進行訓練得到模型參數(shù)Pu和Q1 ;
[0056]步驟4.5)然后通過以下公式=Rui = Xs*Yi+Pu*Qi?計算得到用戶u對于新聞i準確的興趣值,然后調(diào)用推薦生成模塊。
[0057]進一步地,新聞推薦列表生成模塊的具體步驟如下:
[0058]步驟5)將推薦計算模塊傳遞過來的新聞ID加入推薦列表隊列并存入緩存;
[0059]步驟5.1)讀取每個用戶的初始新聞推薦列表;
[0060]步驟5.2)刪除列表中內(nèi)容和主題相似的新聞;
[0061]步驟5.3)過濾列表中質(zhì)量較低或用戶己經(jīng)有過行為的新聞;
[0062]步驟5.4)根據(jù)用戶的隱類偏好編號對列表中新聞進行分組;
[0063]步驟5.5)每個分組組內(nèi)的新聞基于時間權(quán)值的降序排列;
[0064]步驟5.6)選取每個隱類組靠前的新聞即TopN選擇;
[0065]步驟5.7)更新每個在線活動用戶的推薦列表并使用Ajax技術(shù)將新聞異步的推送到用戶瀏覽前臺界面。
[0066]一種基于FOLFM隱語義模型的新聞推薦方法,在基于內(nèi)容推薦方法的基礎(chǔ)上,利用隱類模型和內(nèi)容特征對新聞內(nèi)容模型進行抽象表達;為每個用戶構(gòu)建其個性化的隱類偏好模型;通過對用戶的實時的行為記錄的實時訓練和計算用戶對于某個隱類新聞的偏好;計算決定新聞是否推薦給用戶,得到最終的新聞推薦列表。
[0067]具體步驟如下:
[0068]步驟I)根據(jù)用戶頁面點擊記錄抽取新聞樣本,進行樣本標記并存入數(shù)據(jù)庫;
[0069]步驟1.1)對同一時間段用戶有過行為(閱讀、發(fā)布、評論、收藏)的新聞標記為正樣本并根據(jù)瀏覽行為賦權(quán)重,對用戶沒有過的行為的新聞標記為負樣本且權(quán)重為O ;
[0070]步驟1.2)對抽取的新聞鏈接(新聞概要)進行整理編號,然后將用戶進行編號以及瀏覽過的新聞編號分別成對編號并賦權(quán)重存數(shù)據(jù)庫;
[0071]步驟2)提取用戶瀏覽過新聞的關(guān)鍵字并根據(jù)用戶行為賦上關(guān)鍵字權(quán)值,存入數(shù)據(jù)庫;
[0072]步驟3)初始化參數(shù)訓練用戶興趣模型:初始化FOLFM模型訓練參數(shù),包括隱特征的個數(shù)、學習速率、正則化參數(shù),并將參數(shù)寫入配置文件;
[0073]步驟3.1)初始化新聞模型表示的隱類向量和用戶興趣模型向量;
[0074]步驟3.2)讀取用戶的歷史訪問記錄,使用最速梯度下降法進行迭代計算出FOLFM模型參數(shù):用戶隱類偏好向量P和新聞隱類向量Q,
[0075]步驟3.3)將此作為用戶的長期興趣偏好模型存于數(shù)據(jù)庫,并按設(shè)定的t小時收集用戶的歷史記錄更新此模型;
[0076]步驟4)利用新聞鏈接的內(nèi)容屬性(關(guān)鍵詞、類別等)得到鏈接的內(nèi)容特征向量;
[0077]步驟4.1)根據(jù)用戶歷史行為記錄得到用戶對于該內(nèi)容的興趣程度,同時讀取用戶的長期感興趣的FOLFM模型;
[0078]步驟4.2)計算出用戶對于當前新聞的興趣,兩者結(jié)合得到當天的新聞估計推薦;
[0079]步驟5)實時興趣精確推薦計算:一旦用戶有了瀏覽行為后,實時收集用戶對鏈接的行為并利用FOLFM計算實時的用戶隱類偏好向量模型和新聞隱類向量模型;
[0080]步驟6)通過FOLFM公式計算出同一時段發(fā)布的新聞的用戶的感興趣程度。此處只需計算當前時間段某位正處于活動用戶的模型,而不用訓練所有用戶的FOLFM模型。
[0081]步驟7)實時生成推薦列表并更新;
[0082]步驟7.1)對用戶感興趣且未訪問過N新聞鏈接進行排序并分組;
[0083]步驟7.2)對訪問過的新聞進行過濾;
[0084]步驟7.3)使用Ajax技術(shù)將最終TopN的新聞推送到用戶當前瀏覽的前端的UI界面,然后根據(jù)根據(jù)用戶的動作實時更新推薦列表展示給用戶。
[0085]有益效果:由于FOLFM是一種基于機器學習的方法,且采用最優(yōu)化的理論進行學習,具有較好的理論基礎(chǔ),本發(fā)明具有以下一些特殊優(yōu)點和有益成果:
[0086]高準確率:機器學習主要的評價指標為準確率(precis1n)和召回率(recall),在推薦系統(tǒng)中,準確率描述最終的推薦列表中有多少比例是發(fā)生過的用戶-物品評分記錄,召回率描述有多少比例的用戶-物品評分記錄包含在最終的推薦列表中。顯然精度和召回率越高表示效果越好。本發(fā)明提出的方法采用最優(yōu)化方法進行迭代計算出的FOLFM模型對于新聞推薦的準確率和召回率均達到了理想的效果。
[0087]解決新聞實時性問題:由于新聞的實時性特性,決定對于新聞的推薦也必須是實時性的,而現(xiàn)在大部分的傳統(tǒng)的新聞推薦都是離線的計算,待用戶再次登陸的時候才進行推薦,往往是一天計算一次,且要掃描所有用戶的歷史行為記錄表,因此效率并不高,本發(fā)明采用長期學習和短期實時學習相結(jié)合的方法既滿足了新聞推薦實時性的要求,并且有較高的推薦效率和精度。
[0088]解決冷啟動問題:數(shù)據(jù)庫中存放著用戶常訪問的新聞的特征關(guān)鍵詞,每天用戶只要登陸系統(tǒng)就會有較為切合的新聞推薦給用戶,解決了新聞推薦中的冷啟動問題。
[0089]應(yīng)用領(lǐng)域廣泛:由于本發(fā)明實際提出了一種利用最優(yōu)化理論計算的隱含語義方法,我們不需要關(guān)心分類的角度,結(jié)果都是基于用戶行為統(tǒng)計自動聚類的,不需要關(guān)心分類粒度的問題,通過設(shè)置FOLFM的最終分類數(shù)就可控制粒度,分類數(shù)越大,粒度越細。對于一個item,并不是明確的劃分到某一類,而是計算其屬于每一類的概率,是一種標準的軟分類。對于一個user,我們可以得到他對于每一類的興趣度,而不是只關(guān)心可見列表中的那幾個類。對于每一個class,我們可以得到類中每個item的權(quán)重,越能代表這個類的item,權(quán)重越高。因此本發(fā)明對于推薦系統(tǒng)中的各種推薦問題幾乎都能應(yīng)用。
【專利附圖】
【附圖說明】
[0090]圖1是本發(fā)明方案的總體模塊圖。
[0091]圖2是本發(fā)明方案的新聞預(yù)處理流程圖。
[0092]圖3是本發(fā)明方案的FOLFM樣本訓練算法流程圖。
[0093]圖4是本發(fā)明方案的用戶興趣關(guān)鍵詞計算方法流程圖。
[0094]圖5是本發(fā)明方案的新聞推薦生成模塊。
【具體實施方式】
[0095]下面結(jié)合附圖詳細說明本發(fā)明的優(yōu)選實施例。
[0096]實施例為一種基于FOLFM隱語義模型的新聞推薦系統(tǒng)及方法,涉及一種針對用戶隱性行為數(shù)據(jù)集的隱類模型最優(yōu)化建模,通過對用戶的實時的行為記錄的訓練和計算用戶對于某個隱類新聞的偏好,計算決定新聞是否推薦給用戶,并經(jīng)過一系列的緩存存儲和MongoDB數(shù)據(jù)庫存儲優(yōu)化和處理得到最終的新聞推薦列表。
[0097]該系統(tǒng)的設(shè)計主旨是在基于內(nèi)容推薦方法的基礎(chǔ)上,利用隱類模型和內(nèi)容特征對新聞內(nèi)容模型進行抽象表達,為每個用戶構(gòu)建其個性化的隱類偏好模型。通過對用戶的實時行為記錄進行實時訓練得到用戶對于某個隱類新聞的偏好,計算決定新聞是否推薦給用戶,并經(jīng)過一系列的處理過程得到最終的新聞推薦列表,如圖1所示。目標是深入挖掘用戶興趣,提高推薦準確率及用戶滿意度,避免新聞的冷啟動問題,在盡可能提高推薦效果的情況下保證性能。
[0098]實施例技術(shù)方案主要分為四大部分,由4個模塊組成:新聞數(shù)據(jù)采集處理模塊、FOLFM模型訓練模塊、基于FOLFM模型推薦計算模塊、新聞推薦生成模塊。樣本采集處理模塊,負責對新加入的新聞和用戶有過行為的新聞樣本進行預(yù)處理,F(xiàn)OLFM模型訓練模塊負責對采樣樣本進行訓練得到用戶的隱類偏好向量和新聞隱類向量,F(xiàn)OLFM推薦計算模塊負責對實時訓練的模型結(jié)果進行建模計算并送入推薦生成模塊,新聞推薦生成模塊負責生成初始推薦列表以及實時得對列表進行更新。其中,最核心的是FOLFM模型訓練和基于FOLFM模型推薦計算模塊。
[0099]1.樣本采集預(yù)處理模塊
[0100]因為本發(fā)明主要以優(yōu)化點擊率為目標,因此主要收集用戶對于新聞鏈接的點擊行為。采集樣本時遵循以下原則:
[0101]I)對于每個用戶,要保證正負樣本的平衡;
[0102]2)對于每個用戶采樣負樣本時,選取那些很熱門,而用戶卻沒有行為的新聞。
[0103]如圖2所示,具體操作步驟如下:
[0104]步驟I)根據(jù)用戶歷史上對首頁鏈接的行為記錄采集新聞樣本。
[0105]步驟1.1)對于用戶u有過行為的新聞鏈接i定義為(U,i),并標記為正樣本。
[0106]步驟1.2)根據(jù)用戶行為不同,標記行為的權(quán)重為W,則對新聞i的興趣度標記為Rui = w ;
[0107]步驟1.3)對于展示給用戶u的新聞鏈接i,當用戶從沒發(fā)生過行為,就定義(u,i)為負樣本,Rui = O ;
[0108]步驟1.4)過濾樣本的網(wǎng)頁標簽和冗余信息保存為新聞文本存入mysql數(shù)據(jù)庫;
[0109]步驟1.5)提取采樣新聞內(nèi)容屬性(關(guān)鍵詞、類別等)生成新聞i的內(nèi)容特征向量Y1,并提取關(guān)鍵詞構(gòu)成關(guān)鍵詞序列并對應(yīng)其新聞條目存于數(shù)據(jù)庫。
[0110]2.FOLFM模型訓練模塊
[0111]FOLFM模型訓練模塊包括新聞模型和用戶興趣模型,新聞模型由隱類向量表示,用于表示某個隱類與新聞之間的關(guān)系。用戶興趣模型采用隱類偏好向量P表示用戶的興趣與某個隱類的關(guān)系,新聞隱類模型采用新聞隱類向量Q表示某篇新聞與各個隱類的分布關(guān)系O
[0112]FOLFM模型訓練模塊利用最速下降法求最優(yōu)化損失函數(shù),從而得到FOLFM的模型參數(shù):用戶隱類偏好向量P和新聞隱類向量Q。如圖3所示,具體步驟如下:
[0113]步驟2)設(shè)置訓練參數(shù):隱特征的個數(shù)F,學習速率alpha,正則化參數(shù)lambda。并將參數(shù)寫入配置文件保存;
[0114]步驟2.1)讀取配置文件,初始化用戶隱類偏好向量P,新聞隱類向量Q(初始值為
0.l*rand(0,1)除以 sqrt (dim)填充,dim 表示維度);
[0115]步驟1.2)開始迭代,從數(shù)據(jù)集中依次取出user以及該user喜歡的iterms集作為正樣本且興趣度為Rui ;
[0116]步驟2.3)調(diào)用樣本采集預(yù)處理模塊,進行隨機抽樣,為user抽取與items數(shù)量相當?shù)呢摌颖?,并將正負樣本合并,用于?yōu)化計算;
[0117]步驟2.4)從數(shù)據(jù)庫中取出item和user,對該item的興趣度記為Rui ;
[0118]步驟2.5)根據(jù)向量P和Q計算當前用戶u對新聞i的興趣度,計算公式為Rui’=P*Q ;
[0119]步驟2.6)計算當前的誤差損失為C = Ru1-Rui’ ;
[0120]步驟2.7)代入誤差、學習速率、正則化參數(shù)值,利用最速梯度下降法迭代F次,計算得到表示用戶隱類偏好向量P和新聞隱類向量Q ;
[0121]步驟2.8)調(diào)整學習速率,繼續(xù)迭代優(yōu)化損失函數(shù)找到最合適的參數(shù)P和Q,迭代次數(shù)小于規(guī)定步數(shù)轉(zhuǎn)到步驟3);
[0122]步驟2.9)將找到的最佳參數(shù)向量P和Q存入數(shù)據(jù)庫;
[0123]3.FOLFM推薦計算模塊
[0124]a)用戶隱類偏好模型構(gòu)建計算
[0125]本推薦方法定義用戶的隱類偏好模型為Fu = {P?,XJ
[0126]定義一:用戶的隱類興趣偏好Pu
[0127]用戶的隱類偏好由一組權(quán)值向量表示=Pu = {ffm,ffU2, Wu3, , Wu3I ,Wui (I ^m)代表用戶對第i個隱類的興趣偏好度,m為設(shè)定的隱類個數(shù)。對于用戶的隱類偏好興趣模型通過每過幾個小時對用戶行為記錄的掃描然后調(diào)用“F0LFM模型訓練模塊”訓練得到。
[0128]定義二:用戶的關(guān)鍵詞興趣Xu
[0129]該部分定義用于解決用戶當天第一次登陸系統(tǒng)或者用戶沒有行為時的冷啟動問題,用戶對用戶進行估計推薦。
[0130]用戶的關(guān)鍵詞興趣由向量空間模型表示,即一組關(guān)鍵詞權(quán)值序列:
[0131]Xu — { (Xui) ω Ul) (Χυ2,ωυ2) (Χυ3,ωυ3),...,(^Un> W Un) ^ ?
[0132]其中,Xw (I彡j彡η)表示用戶感興趣的關(guān)鍵詞,ω^.表示用戶對關(guān)鍵詞Xw感興趣的程度。用戶的關(guān)鍵詞興趣序列基于用戶的歷史閱讀行為和新聞的關(guān)鍵詞權(quán)值計算得到。
[0133]用戶關(guān)鍵詞興趣計算方法,如圖4所示:
[0134]步驟3)對于每一個用戶,選擇用戶的η個權(quán)值較大的關(guān)鍵詞作為種子;
[0135]步驟3.1)遍歷每一篇用戶產(chǎn)生行為的對應(yīng)新聞,對于不同的用戶行為賦予不同的權(quán)值Xj ;
[0136]步驟3.2)遍歷每一個關(guān)鍵詞的權(quán)值;
[0137]步驟3.3)判斷是否接受該關(guān)鍵詞,接收并且Xu存在該關(guān)鍵詞,則權(quán)值增加,否則向Xu中加入該關(guān)鍵詞權(quán)值。不接受則舍棄該關(guān)鍵詞?;氐讲襟E3)繼續(xù)遍歷每個關(guān)鍵詞的權(quán)值;
[0138]步驟3.4)關(guān)鍵詞重新排序前η個;
[0139]步驟3.5)回到步驟3.1);
[0140]步驟3.6)將計算得到的用戶的關(guān)鍵詞序列保存到數(shù)據(jù)庫;
[0141]b)新聞模型構(gòu)建及新加入新聞的推薦計算
[0142]該推薦方法將新聞表示為一個三維的模型,包括隱類特征向量、關(guān)鍵詞權(quán)值和新聞時間,NS= {Qs,Xs,tts}。用戶關(guān)心的新聞是關(guān)于隱類的概率分布,而用戶對于新聞的行為記錄,反應(yīng)了用戶對于新聞內(nèi)容的實時興趣變化,因此新聞可以表示為一組隱類向量,即:Qs = {Wn, ffn2, ffn3,..Wn1....,W1J,向量中得每一維表示新聞η在第i個隱類的權(quán)值,m為設(shè)定的隱類個數(shù)。新聞內(nèi)容模型的隱類特征向量Qs通過實時調(diào)用“F0LFM模型訓練模塊”訓練得到。
[0143]新聞內(nèi)容模型的關(guān)鍵詞權(quán)值Xs采用傳統(tǒng)的向量空間模型方法,應(yīng)用TF-1DF計算得到,向量的每一維表示新聞的一個關(guān)鍵詞及其對應(yīng)權(quán)值,即Xs = { (XS1, ?Si) (XS2.wS2)(XS3, ω53),..., (XSn, coSn) },其中,Xsj (I彡j彡n)表示新聞的第j個關(guān)鍵詞,《Sn對應(yīng)該關(guān)鍵詞Xu的權(quán)值,η為關(guān)鍵詞的個數(shù)。具體步驟如下:
[0144]步驟4)利用新聞鏈接的內(nèi)容屬性(關(guān)鍵詞、類別等)得到鏈接的內(nèi)容特征向量Xs ;
[0145]步驟4.1)讀取用戶歷史行為記錄中的內(nèi)容特征興趣得到用戶對于該內(nèi)容特征的興趣程度Y1 ;
[0146]步驟4.2)計算Xs^Y1得到用戶對于新聞的興趣值并將新聞的id送入新聞推薦生成模塊;
[0147]步驟4.3)系統(tǒng)后臺實時收集用戶最近幾個小時用戶u對新聞i的興趣樣本并加入系統(tǒng)緩存,每過幾個小時待收集完新的用戶行為后清空緩存。
[0148]步驟4.4)調(diào)用“F0LFM模型訓練模塊”進行訓練得到模型參數(shù)Pu和Q1 ;
[0149]步驟4.5)然后通過以下公式=Rui = Xs*Yi+Pu*Qi?計算得到用戶u對于新聞i準確的興趣值然后調(diào)用推薦生成模塊。
[0150]5.新聞推薦列表生成模塊
[0151]對于后臺新發(fā)布的新聞,結(jié)合用戶的行為實時訓練的除的FOLFM模型得到哪些用戶分別對哪些新發(fā)布的新聞感興趣,得到這些一位用戶對應(yīng)數(shù)條新聞的數(shù)據(jù)后,需要調(diào)用新聞推薦生成初始推薦列表并實時的更新推薦列表。這些推薦列表保存在MongDB數(shù)據(jù)庫中。如圖5所示,具體步驟如下:
[0152]步驟5)將推薦計算模塊傳遞過來的新聞ID加入推薦列表隊列并存入緩存;
[0153]步驟5.1)讀取每個用戶的初始新聞推薦列表;
[0154]步驟5.2)刪除列表中內(nèi)容和主題相似的新聞;
[0155]步驟5.3)過濾列表中質(zhì)量較低或用戶己經(jīng)有過行為的新聞;
[0156]步驟5.4)根據(jù)用戶的隱類偏好編號對列表中新聞進行分組;
[0157]步驟5.5)每個分組組內(nèi)的新聞基于時間權(quán)值的降序排列;
[0158]步驟5.6)選取每個隱類組靠前的新聞即TopN選擇;
[0159]步驟5.7)更新每個在線活動用戶的推薦列表并使用Ajax技術(shù)將新聞異步的推送到用戶瀏覽前臺界面。
[0160]基于FOLFM隱語義模型的新聞推薦方法
[0161]該方法通過分析用戶行為,發(fā)現(xiàn)物品之間或者是用戶之間的相關(guān)性,并據(jù)此向用戶進行推薦?;趦?nèi)容的推薦方法起源于信息檢索和信息過濾的研究,是協(xié)同過濾推薦的延伸與發(fā)展。該方法是對推薦對象進行內(nèi)容上的挖掘與分析,通過用戶歷史行為獲得用戶的興趣,并向用戶推薦在內(nèi)容上與其興趣最匹配的物品。該方法的核心在于對推薦對象內(nèi)容特征的挖掘,以及對內(nèi)容特征和用戶行為興趣的模型構(gòu)建。
[0162]推薦過程中通過預(yù)先計算內(nèi)容特征預(yù)判用戶的興趣鏈接內(nèi)容解決冷啟動,然后實時計算用戶的隱類偏好進行個性化推薦。具體步驟如下:
[0163]步驟I)獲取設(shè)定的某一時間段的活躍用戶賬號列表;
[0164]步驟1.1)獲取第一個用戶賬號;
[0165]步驟1.2)查找日志文件記錄表中該時間段該用戶的訪問記錄;
[0166]步驟1.2.1)根據(jù)訪問記錄抽取用戶訪問過的新聞,標記為正樣本;
[0167]步驟1.2.2)查找新聞庫中這一時間段發(fā)布在首頁該用戶未訪問的新聞標記為負樣本;
[0168]步驟1.2.3)將正負樣本合并構(gòu)成新聞樣本集;
[0169]步驟1.3)獲取第一條新聞樣本;
[0170]步驟1.4)判斷當前新聞樣本是否正樣本,是則轉(zhuǎn)步驟1.5),否則轉(zhuǎn)步驟1.6);
[0171]步驟1.5)對標記過的正樣本新聞根據(jù)其瀏覽行為(瀏覽,點評,收藏,轉(zhuǎn)載)賦權(quán)重;
[0172]步驟1.6)對用戶沒有產(chǎn)生過行為的新聞樣本標記為負樣本且權(quán)重為O ;
[0173]步驟1.7)遍歷下一條新聞樣本;
[0174]步驟1.8)判斷當前新聞樣本是否是最后一個新聞樣本集末端,是則轉(zhuǎn)步驟1.9),否則轉(zhuǎn)步驟1.3);
[0175]步驟1.9)對抽取的新聞鏈接(新聞概要)進行整理編號;
[0176]步驟1.10)將用戶進行編號以及瀏覽過的新聞編號分別成對編號并賦權(quán)重存入用戶新聞表中;
[0177]步驟1.11)遍歷下一個用戶賬號;
[0178]步驟1.12)判斷當前用戶賬號是不是用戶列表末端,是則轉(zhuǎn)步驟1.4),否則轉(zhuǎn)步驟 1.13);
[0179]步驟1.13)更新用戶新聞表;
[0180]步驟2)遍歷獲取新加入新聞表中新加入的新聞;
[0181]步驟2.1)讀取當前新聞的鏈接摘要及類別信息;
[0182]步驟2.2)利用關(guān)鍵詞提取技術(shù)對讀取的摘要和類別進行關(guān)鍵特征提?。?br>
[0183]步驟2.2.1)遍歷提取到的每個關(guān)鍵特征;
[0184]步驟2.2.2)計算當前關(guān)鍵特征的權(quán)重;
[0185]步驟2.2.3)判斷關(guān)鍵特征是否遍歷結(jié)束,是則轉(zhuǎn)步驟2.3),否則轉(zhuǎn)步驟2.2.2);
[0186]步驟2.3)對提取的關(guān)鍵特征及其權(quán)重組合新聞存放到新聞表對應(yīng)列種;
[0187]步驟3)初始化用戶興趣特征向量Xu = {(Km, GJm) (Κ?2, ω?2)(Κ?3, ωυ3),...,(Kun, ω J},Kui表示用戶u感興趣的內(nèi)容特征Ki ;
[0188]步驟3.1)遍歷用戶新聞表,計算用戶興趣內(nèi)容特征;
[0189]步驟3.2)獲取一個用戶,獲取用戶產(chǎn)生行為的對應(yīng)新聞的關(guān)鍵特征及權(quán)重;
[0190]步驟3.3)選擇的η個權(quán)值較大的關(guān)鍵特征作為種子;
[0191]步驟3.3.1)遍歷每一個關(guān)鍵特征的權(quán)值;
[0192]步驟3.3.2)判斷Xu是否接受該關(guān)鍵詞,是則轉(zhuǎn)到步驟3.3.3),否則轉(zhuǎn)到步驟3.3.4);
[0193]步驟3.3.3)接收并且Ku存在該關(guān)鍵詞轉(zhuǎn)到步驟3.3.3.1),接收Ku不存在該關(guān)鍵詞轉(zhuǎn)到步驟3.3.3.2);
[0194]步驟3.3.3.1)權(quán)值增加;
[0195]步驟3.3.3.2)向Ku中加入該關(guān)鍵特征的權(quán)值;
[0196]步驟3.3.4)不接受則舍棄該關(guān)鍵詞;
[0197]步驟3.3.5)轉(zhuǎn)到步驟3.3.1)繼續(xù)遍歷每個關(guān)鍵特征的權(quán)值,遍歷結(jié)束轉(zhuǎn)到步驟3.5);
[0198]步驟3.5)關(guān)鍵特征重新排序前η個;
[0199]步驟3.6)是否到達當前用戶訪問過的新聞列末端,是則轉(zhuǎn)步驟3.7),否則轉(zhuǎn)步驟3.2);
[0200]步驟3.7)將計算得到的用戶的關(guān)鍵特征序列保存到數(shù)據(jù)庫用戶表中;
[0201]步驟4)讀取用戶新聞表,獲取步驟I)抽樣得到的新聞樣本集,準備訓練模型;
[0202]步驟4.1)初始化用戶隱類偏好模型及新聞隱類模型;
[0203]步驟4.2)初始化FOLFM模型訓練參數(shù)(隱特征的個數(shù),學習速率,正則化參數(shù));
[0204]步驟4.3)使用最速梯度下降法進行迭代計算出FOLFM模型參數(shù):用戶隱類偏好向量P和新聞隱類向量Q ;
[0205]步驟4.4)將訓練得到的模型緩存保存至數(shù)據(jù)庫中;
[0206]步驟4.5)實時收集用戶訪問記錄并將訪問記錄更新至系統(tǒng)緩存中;
[0207]步驟4.6)監(jiān)聽新聞后臺發(fā)布行為,是否有新新聞加入,是則轉(zhuǎn)到步驟2)對新加入的新聞進行關(guān)鍵特征提取,并且同時轉(zhuǎn)到步驟5);
[0208]步驟5)計算用戶的初始推薦列表;
[0209]步驟5.1)監(jiān)控用戶在線列表,取出最新登陸的用戶ID ;
[0210]步驟5.2)獲取第一個用戶興趣內(nèi)容特征;
[0211]步驟5.3)遍歷新加入新聞表獲得最新加入的新聞;
[0212]步驟5.3.1)獲得最新加入新聞的關(guān)鍵內(nèi)容特征;
[0213]步驟5.3.2)將關(guān)鍵內(nèi)容特征與用戶興趣內(nèi)容特征結(jié)合計算得到用戶對于新加入新聞的預(yù)判興趣;
[0214]步驟5.3.3)對興趣值進行排序,并將排名在預(yù)設(shè)數(shù)之內(nèi)的新聞加入用戶自己的初始推薦列表;
[0215]步驟5.3.4)將用戶的初始推薦列表存放在分布式數(shù)據(jù)庫中;
[0216]步驟5.3.5)判斷新加入的新聞表列表是否到達末端,是則轉(zhuǎn)步驟5.5),否則轉(zhuǎn)步驟 5.4);
[0217]步驟5.4)判斷在線用戶列表中是否有新用戶到達,是則轉(zhuǎn)步驟5.1);
[0218]步驟5.5)監(jiān)控新聞表動態(tài);
[0219]步驟6)計算精確推薦結(jié)果;
[0220]步驟6.1)取出系統(tǒng)緩存中用戶的行為記錄進行整合更新至用戶行為日志文件;
[0221]步驟6.2)取出實時訓練得到的模型文件進行計算得到用戶短期興趣結(jié)果;
[0222]步驟6.3)合并計算用戶長期興趣結(jié)果與短期興趣結(jié)果得到精確推薦結(jié)果;
[0223]步驟7)更新初始推薦列表;
[0224]步驟7.1)對用戶感興趣且未訪問過N新聞鏈接進行排序并分組;
[0225]步驟7.2)對訪問過的新聞進行過濾;
[0226]步驟7.3)使用Ajax技術(shù)將最終TopN的新聞推送到用戶當前瀏覽的前端的UI界面,然后根據(jù)根據(jù)用戶的動作實時更新推薦列表展示給用戶。
[0227]經(jīng)實驗表明,該方法既保證了高精度和高速度要求,又實現(xiàn)了用戶視覺上的實時推薦。
【權(quán)利要求】
1.一種基于FOLFM模型的新聞推薦系統(tǒng),其特征在于:包括樣本采集處理模塊、FOLFM模型訓練模塊、FOLFM推薦計算模塊、新聞推薦生成模塊, 樣本采集處理模塊:收集用戶對于新聞鏈接的點擊行為,根據(jù)用戶歷史上對首頁鏈接的行為記錄采集新聞樣本; FOLFM模型訓練模塊:利用最速下降法求最優(yōu)化損失函數(shù),得到FOLFM的模型參數(shù):用戶隱類偏好向量P和新聞隱類向量Q,將訓練得到的模型緩存保存至數(shù)據(jù)庫中; FOLFM推薦計算模塊:在基于內(nèi)容推薦方法的基礎(chǔ)上,利用隱類模型和內(nèi)容特征對新聞內(nèi)容模型進行抽象表達,為每個用戶構(gòu)建其個性化的隱類偏好模型;通過對用戶的實時的行為記錄的實時訓練和計算用戶對于某個隱類新聞的偏好,計算決定新聞是否推薦給用戶,得到最終的新聞推薦列表; 新聞推薦生成模塊:對后臺新發(fā)布的新聞,結(jié)合用戶的行為實時訓練的除的FOLFM模型得到用戶感興趣的新發(fā)布的新聞,得到這些一位用戶對應(yīng)數(shù)條新聞的數(shù)據(jù)后,需要調(diào)用新聞推薦生成初始推薦列表并實時的更新推薦列表。
2.如權(quán)利要求1所述的基于FOLFM隱語義模型的新聞推薦系統(tǒng),其特征在于,樣本采集處理模塊的具體操作步驟如下: 步驟1.1)對于用戶u有過行為的新聞鏈接i定義為(u,i),并標記為正樣本。 步驟1.2)根據(jù)用戶行為不同,標記行為的權(quán)重為W,則對新聞i的興趣度標記為Rui =W ; 步驟1.3)對于展示給用戶u的新聞鏈接i,當用戶從沒發(fā)生過行為,就定義(u,i)為負樣本,Rui = O ; 步驟1.4)過濾樣本的網(wǎng)頁標簽和冗余信息保存為新聞文本存入mysql數(shù)據(jù)庫; 步驟1.5)提取采樣新聞內(nèi)容屬性生成新聞i的內(nèi)容特征向量?,并提取關(guān)鍵詞構(gòu)成關(guān)鍵詞序列并對應(yīng)其新聞條目存于數(shù)據(jù)庫。
3.如權(quán)利要求1所述的基于FOLFM隱語義模型的新聞推薦系統(tǒng),其特征在于,F(xiàn)OLFM模型訓練模塊的具體步驟如下: 步驟2)設(shè)置訓練參數(shù):隱特征的個數(shù)F,學習速率alpha,正則化參數(shù)lambda。并將參數(shù)寫入配置文件保存; 步驟2.1)讀取配置文件,初始化用戶隱類偏好向量P,新聞隱類向量Q; 步驟2.2)開始迭代,從數(shù)據(jù)集中依次取出user以及該user喜歡的iterms集作為正樣本且興趣度為Rui ; 步驟2.3)調(diào)用樣本采集預(yù)處理模塊,進行隨機抽樣,為user抽取與items數(shù)量相當?shù)呢摌颖荆⒄摌颖竞喜?,用于?yōu)化計算; 步驟2.4)從數(shù)據(jù)庫中取出item和user,對該item的興趣度記為Rui ; 步驟2.5)根據(jù)向量P和Q計算當前用戶u對新聞i的興趣度,計算公式為Rui ’ = P*Q ; 步驟2.6)計算當前的誤差損失為C = Ru1-Rui’ ; 步驟2.7)代入誤差、學習速率、正則化參數(shù)值,利用最速梯度下降法迭代F次,計算得到表示用戶隱類偏好向量P和新聞隱類向量Q ; 步驟2.8)調(diào)整學習速率,繼續(xù)迭代優(yōu)化損失函數(shù)找到最合適的參數(shù)P和Q,迭代次數(shù)小于規(guī)定步數(shù)轉(zhuǎn)到步驟3); 步驟2.9)將找到的最佳參數(shù)向量P和Q存入數(shù)據(jù)庫。
4.如權(quán)利要求3所述的基于FOLFM隱語義模型的新聞推薦系統(tǒng),其特征在于,F(xiàn)OLFM推薦計算模塊中, 用戶的隱類偏好模型為Fu = {P?,XJ,其中,Pu為用戶的隱類興趣偏好,Xu為用戶的關(guān)鍵詞興趣, 用戶的隱類興趣偏好由一組權(quán)值向量表示=Pu = {wm, ffU2, Wu3,, ffU3},Wui (I彡i彡m)代表用戶對第i個隱類的興趣偏好度,m為設(shè)定的隱類個數(shù);對于用戶的隱類偏好興趣模型通過每過幾個小時對用戶行為記錄的掃描然后調(diào)用“F0LFM模型訓練模塊”訓練得到; 用戶的關(guān)鍵詞興趣由向量空間模型表示,即一組關(guān)鍵詞權(quán)值序列:
Xu — { (Χυ?,ω Ul) (Χυ2,ωυ2) (Χυ3,ω U3),...,(^Un> W Un) ^ ? 其中,Xuj(I彡j彡η)表示用戶感興趣的關(guān)鍵詞,表示用戶對關(guān)鍵詞Xljj感興趣的程度;用戶的關(guān)鍵詞興趣序列基于用戶的歷史閱讀行為和新聞的關(guān)鍵詞權(quán)值計算得到。
5.如權(quán)利要求4所述的基于FOLFM隱語義模型的新聞推薦系統(tǒng),其特征在于,用戶關(guān)鍵詞興趣計算方法: 步驟3)對于每一個用戶,選擇用戶的η個權(quán)值較大的關(guān)鍵詞作為種子; 步驟3.1)遍歷每一篇用戶產(chǎn)生行為的對應(yīng)新聞,對于不同的用戶行為賦予不同的權(quán)it Xj; 步驟3.2)遍歷每一個關(guān)鍵詞的權(quán)值; 步驟3.3)判斷是否接受該關(guān)鍵詞,接收并且Xu存在該關(guān)鍵詞,則權(quán)值增加,否則向Xu中加入該關(guān)鍵詞權(quán)值。不接受則舍棄該關(guān)鍵詞?;氐讲襟E3)繼續(xù)遍歷每個關(guān)鍵詞的權(quán)值; 步驟3.4)關(guān)鍵詞重新排序前η個; 步驟3.5)回到步驟3.1); 步驟3.6)將計算得到的用戶的關(guān)鍵詞序列保存到數(shù)據(jù)庫。
6.如權(quán)利要求1所述的基于FOLFM隱語義模型的新聞推薦系統(tǒng),其特征在于,F(xiàn)OLFM推薦計算模塊中,新聞模型構(gòu)建及新加入新聞的推薦計算 將新聞表示為一個三維的模型,包括隱類特征向量、關(guān)鍵詞權(quán)值和新聞時間,Ns = {Qs,Xs,tts}; 新聞表示為一組隱類向量,S卩:QS = {Wn, Wn2, Wn3,..Wni——,W1J ,向量中得每一維表示新聞η在第i個隱類的權(quán)值,m為設(shè)定的隱類個數(shù),新聞內(nèi)容模型的隱類特征向量Qs通過實時調(diào)用“F0LFM模型訓練模塊”訓練得到; 新聞內(nèi)容模型的關(guān)鍵詞權(quán)值Xs采用向量空間模型方法,應(yīng)用TF-1DF計算得到,向量的每一維表示新聞的一個關(guān)鍵詞及其對應(yīng)權(quán)值,即Xs = {(Xsi, ω S1) (XS2, ω S2)(XS3,ω53),..., (XSn, coSn) },其中,Xsj (I彡j彡n)表示新聞的第j個關(guān)鍵詞,《Sn對應(yīng)該關(guān)鍵詞&的權(quán)值,η為關(guān)鍵詞的個數(shù)。
7.如權(quán)利要求1-6任一項所述的基于FOLFM隱語義模型的新聞推薦系統(tǒng),其特征在于,計算用戶u對于新聞i準確的興趣值的具體步驟如下: 步驟4)利用新聞鏈接的內(nèi)容屬性得到鏈接的內(nèi)容特征向量Xs ; 步驟4.1)讀取用戶歷史行為記錄中的內(nèi)容特征興趣得到用戶對于該內(nèi)容特征的興趣程度Y1 ; 步驟4.2)計算X^Y1得到用戶對于新聞的興趣值并將新聞的id送入新聞推薦生成模塊; 步驟4.3)系統(tǒng)后臺實時收集用戶最近幾個小時用戶u對新聞i的興趣樣本并加入系統(tǒng)緩存,每過幾個小時待收集完新的用戶行為后清空緩存。 步驟4.4)調(diào)用“FOLFM模型訓練模塊”進行訓練得到模型參數(shù)Pu和Q1 ; 步驟4.5)然后通過以下公式=Rui = Xs^+P^Qx,計算得到用戶u對于新聞i準確的興趣值,然后調(diào)用推薦生成模塊。
8.如權(quán)利要求1所述的基于FOLFM隱語義模型的新聞推薦方法,其特征在于,新聞推薦列表生成模塊的具體步驟如下: 步驟5)將推薦計算模塊傳遞過來的新聞ID加入推薦列表隊列并存入緩存; 步驟5.1)讀取每個用戶的初始新聞推薦列表; 步驟5.2)刪除列表中內(nèi)容和主題相似的新聞; 步驟5.3)過濾列表中質(zhì)量較低或用戶己經(jīng)有過行為的新聞; 步驟5.4)根據(jù)用戶的隱類偏好編號對列表中新聞進行分組; 步驟5.5)每個分組組內(nèi)的新聞基于時間權(quán)值的降序排列; 步驟5.6)選取每個隱類組靠前的新聞即TopN選擇; 步驟5.7)更新每個在線活動用戶的推薦列表并使用Ajax技術(shù)將新聞異步的推送到用戶瀏覽前臺界面。
9.一種基于FOLFM隱語義模型的新聞推薦方法,其特征在于, 在基于內(nèi)容推薦方法的基礎(chǔ)上,利用隱類模型和內(nèi)容特征對新聞內(nèi)容模型進行抽象表達; 為每個用戶構(gòu)建其個性化的隱類偏好模型; 通過對用戶的實時的行為記錄的實時訓練和計算用戶對于某個隱類新聞的偏好; 計算決定新聞是否推薦給用戶,得到最終的新聞推薦列表。
10.如權(quán)利要求9所述的基于FOLFM隱語義模型的新聞推薦方法,其特征在于,具體步驟如下: 步驟I)根據(jù)用戶頁面點擊記錄抽取新聞樣本,進行樣本標記并存入數(shù)據(jù)庫; 步驟1.1)對同一時間段用戶有過行為的新聞標記為正樣本并根據(jù)瀏覽行為賦權(quán)重,對用戶沒有過的行為的新聞標記為負樣本且權(quán)重為O ; 步驟1.2)對抽取的新聞鏈接進行整理編號,然后將用戶進行編號以及瀏覽過的新聞編號分別成對編號并賦權(quán)重存數(shù)據(jù)庫; 步驟2)提取用戶瀏覽過新聞的關(guān)鍵字并根據(jù)用戶行為賦上關(guān)鍵字權(quán)值,存入數(shù)據(jù)庫;步驟3)初始化參數(shù)訓練用戶興趣模型:初始化FOLFM模型訓練參數(shù),包括隱特征的個數(shù)、學習速率、正則化參數(shù),并將參數(shù)寫入配置文件; 步驟3.1)初始化新聞模型表示的隱類向量和用戶興趣模型向量; 步驟3.2)讀取用戶的歷史訪問記錄,使用最速梯度下降法進行迭代計算出FOLFM模型參數(shù):用戶隱類偏好向量P和新聞隱類向量Q ; 步驟3.3)將此作為用戶的長期興趣偏好模型存于數(shù)據(jù)庫,并按設(shè)定的t小時收集用戶的歷史記錄更新此模型; 步驟4)利用新聞鏈接的內(nèi)容屬性得到鏈接的內(nèi)容特征向量; 步驟4.1)根據(jù)用戶歷史行為記錄得到用戶對于該內(nèi)容的興趣程度,同時讀取用戶的長期感興趣的FOLFM模型; 步驟4.2)計算出用戶對于當前新聞的興趣,兩者結(jié)合得到當天的新聞估計推薦; 步驟5)實時興趣精確推薦計算:一旦用戶有了瀏覽行為后,實時收集用戶對鏈接的行為并利用FOLFM計算實時的用戶隱類偏好向量模型和新聞隱類向量模型; 步驟6)通過FOLFM公式計算出同一時段發(fā)布的新聞的用戶的感興趣程度。此處只需計算當前時間段某位正處于活動用戶的模型,而不用訓練所有用戶的FOLFM模型。 步驟7)實時生成推薦列表并更新; 步驟7.1)對用戶感興趣且未訪問過N新聞鏈接進行排序并分組; 步驟7.2)對訪問過的新聞進行過濾; 步驟7.3)使用Ajax技術(shù)將最終TopN的新聞推送到用戶當前瀏覽的前端的UI界面,然后根據(jù)根據(jù)用戶的動作實時更新推薦列表展示給用戶。
【文檔編號】G06F17/30GK104166668SQ201410254094
【公開日】2014年11月26日 申請日期:2014年6月9日 優(yōu)先權(quán)日:2014年6月9日
【發(fā)明者】張衛(wèi)豐, 周磊, 王云, 王子元, 張迎周, 周國強 申請人:南京郵電大學