社交類(lèi)型
網(wǎng)站建設(shè)怎樣解決會(huì)員實(shí)時(shí)抽取系統(tǒng)框架的規(guī)劃?
大型社交網(wǎng)站建設(shè)對(duì)于實(shí)時(shí)抽取系統(tǒng)來(lái)說(shuō),每臺(tái)服務(wù)器可以承載大約1億用戶的用戶興趣挖掘。當(dāng)用戶發(fā)布社交網(wǎng)站后,此信息實(shí)時(shí)進(jìn)入原始Feed流隊(duì)列中,語(yǔ)義處理單元針對(duì)每條社交網(wǎng)站快速進(jìn)行語(yǔ)義計(jì)算,語(yǔ)義處理單元采取多任務(wù)結(jié)構(gòu),依次對(duì)社交網(wǎng)站進(jìn)行分詞、焦點(diǎn)詞抽取以及社交網(wǎng)站分類(lèi)計(jì)算。焦點(diǎn)詞抽取與傳統(tǒng)的關(guān)鍵詞抽取有很大差異,因?yàn)樯缃痪W(wǎng)站比較短小,如果采取傳統(tǒng)的TF.IDF框架抽取關(guān)鍵詞效果并不好,所以我們提出了焦點(diǎn)詞抽取的概念,不僅融合傳統(tǒng)的TF.IDF等計(jì)算機(jī)制,也考慮了單詞在句中的出現(xiàn)位置、詞性、是否是命名實(shí)體、是否是標(biāo)題等十幾種特征來(lái)精確抽取社交網(wǎng)站所涉及的主體內(nèi)容,避免噪聲詞的出現(xiàn)。社交網(wǎng)站分類(lèi)則通過(guò)統(tǒng)計(jì)分類(lèi)機(jī)制將社交網(wǎng)站分到內(nèi)部定義的多級(jí)分類(lèi)體系中。
當(dāng)社交網(wǎng)站經(jīng)過(guò)語(yǔ)義處理單元處理后,已經(jīng)由原始的自然語(yǔ)言方式轉(zhuǎn)換為由焦點(diǎn)詞和分類(lèi)構(gòu)成的語(yǔ)義表示。每條社交網(wǎng)站有兩個(gè)關(guān)鍵的Key:社交網(wǎng)站ID和用戶ID,經(jīng)過(guò)語(yǔ)義處理后,系統(tǒng)實(shí)時(shí)將社交網(wǎng)站插入“Feed語(yǔ)義表示Redis數(shù)據(jù)庫(kù)”中,每條記錄以社交網(wǎng)站ID為key,value則包含對(duì)應(yīng)的UID以及焦點(diǎn)詞向量和分類(lèi)向量。考慮到每天每個(gè)用戶可能會(huì)發(fā)布多條社交網(wǎng)站,為了能夠有效控制“Feed語(yǔ)義表示Redis數(shù)據(jù)庫(kù)”數(shù)據(jù)規(guī)模在一定范圍,系統(tǒng)會(huì)監(jiān)控“Feed語(yǔ)義表示Redis數(shù)據(jù)庫(kù)”大小,當(dāng)大小超出一定范圍時(shí),即將社交網(wǎng)站數(shù)據(jù)根據(jù)用戶ID進(jìn)行合并進(jìn)入“User語(yǔ)義表示Redis數(shù)據(jù)庫(kù)”。單機(jī)實(shí)時(shí)抽取系統(tǒng)架構(gòu)如下圖所示。

在用戶不活躍時(shí)段,系統(tǒng)會(huì)將“User語(yǔ)義表示Redis數(shù)據(jù)庫(kù)”的內(nèi)容和保存在MySQL中的用戶歷史興趣信息進(jìn)行合并,在合并時(shí)會(huì)考慮時(shí)間衰減因素,將當(dāng)日社交網(wǎng)站用戶新發(fā)表的內(nèi)容和歷史內(nèi)容進(jìn)行融合。為了提高系統(tǒng)效率,會(huì)設(shè)立一個(gè)歷史信息緩存Redis數(shù)據(jù)庫(kù),首先將部分用戶的歷史數(shù)據(jù)讀入內(nèi)存,在內(nèi)存完成合并后寫(xiě)入MySQL進(jìn)行數(shù)據(jù)更新。
大型社交網(wǎng)站建設(shè)怎樣解決離線挖掘
系統(tǒng)出于精準(zhǔn)定位用戶興趣的目的,在實(shí)時(shí)抽取系統(tǒng)已經(jīng)通過(guò)“焦點(diǎn)詞抽取”以及歷史合并時(shí)采取一些特殊合并策略來(lái)優(yōu)化算法,但是通過(guò)實(shí)際數(shù)據(jù)分析發(fā)現(xiàn),有些用戶的興趣詞向量還包含不少噪聲。主要原因在于:社交網(wǎng)站用戶在發(fā)布社交網(wǎng)站或者轉(zhuǎn)發(fā)社交網(wǎng)站時(shí)有很大的隨意性,并非每條用戶發(fā)布的社交網(wǎng)站都能夠表示用戶的興趣,比如用戶轉(zhuǎn)發(fā)一條“有獎(jiǎng)轉(zhuǎn)發(fā)”的社交網(wǎng)站,目的在于希望能夠通過(guò)轉(zhuǎn)發(fā)中獎(jiǎng),所以其社交網(wǎng)站內(nèi)容并不能反映用戶興趣所在。為了能夠更加精準(zhǔn)地從用戶發(fā)布內(nèi)容定位用戶興趣詞,我們通過(guò)對(duì)實(shí)時(shí)系統(tǒng)累積的用戶歷史興趣進(jìn)行離線挖掘來(lái)進(jìn)一步優(yōu)化系統(tǒng)效果。
大型社交網(wǎng)站建設(shè)離線挖掘的基本邏輯是:
社交網(wǎng)站用戶發(fā)布的社交網(wǎng)站有些能夠代表個(gè)人興趣,有些不能代表個(gè)人興趣。離線挖掘的基本目標(biāo)是對(duì)實(shí)時(shí)系統(tǒng)累積的個(gè)人興趣詞進(jìn)行判別,過(guò)濾掉不能代表個(gè)人興趣的內(nèi)容,只保留能夠代表個(gè)人興趣的興趣詞。我們假設(shè)如果用戶具有某個(gè)興趣點(diǎn),那么他不會(huì)只發(fā)布一條與此相關(guān)的社交網(wǎng)站,一般會(huì)發(fā)布多條語(yǔ)義相近的社交網(wǎng)站,通過(guò)是否經(jīng)常發(fā)布這個(gè)興趣類(lèi)別的社交網(wǎng)站可以作為過(guò)濾依據(jù)。比如假設(shè)某個(gè)用戶是蘋(píng)果產(chǎn)品的忠實(shí)用戶,那么他可能會(huì)經(jīng)常發(fā)布與蘋(píng)果產(chǎn)品相關(guān)內(nèi)容。但是問(wèn)題在于,如何知道兩條社交網(wǎng)站是否語(yǔ)義相近?更具體而言,通過(guò)實(shí)時(shí)抽取系統(tǒng)累積的用戶興趣已經(jīng)以若干興趣詞的表示方式存在,那么問(wèn)題就轉(zhuǎn)換成:如何知道兩個(gè)單詞是否語(yǔ)義相近?如何將語(yǔ)義相近的興趣詞進(jìn)行聚類(lèi)?如何判別聚類(lèi)后的興趣詞?哪些可以保留哪些需要過(guò)濾?我們通過(guò)圖挖掘算法來(lái)解決上述問(wèn)題,將某個(gè)用戶歷史累計(jì)的興趣詞構(gòu)建成一個(gè)語(yǔ)義相似圖,任意兩個(gè)單詞之間的語(yǔ)義相似性通過(guò)計(jì)算單詞之間的上下文相似性來(lái)獲得,如果兩個(gè)單詞上下文相似性高于一定值則在圖中建立一條邊。然后在這個(gè)圖上運(yùn)行Pagerank算法來(lái)不斷迭代給單詞節(jié)點(diǎn)打分,當(dāng)?shù)Y(jié)束后,將得分較高的單詞保留作為能夠表達(dá)用戶興趣的興趣詞,而將其他單詞作為噪聲進(jìn)行過(guò)濾。下圖是興趣詞語(yǔ)義相似圖的一個(gè)具體示例,通過(guò)這張圖可以看出,如果用戶某個(gè)興趣比較突出,則很容易形成一個(gè)連接密集的子圖。通過(guò)在語(yǔ)義相似圖上運(yùn)行Pagerank算法,語(yǔ)義相近的興趣詞會(huì)形成得分互相促進(jìn)加強(qiáng)的作用,密集子圖越大,其相互增強(qiáng)作用越明顯,最后得分也會(huì)越高,所以通過(guò)這種方法可以有效識(shí)別噪聲和真正的用戶興趣。
在具體實(shí)現(xiàn)時(shí),因?yàn)槊看芜\(yùn)算都是在單個(gè)用戶基礎(chǔ)上,記錄之間無(wú)耦合性,所以非常適合在Hadoop平臺(tái)下使用MapReduce來(lái)分布計(jì)算,加快運(yùn)算效率。
深圳網(wǎng)站建設(shè)公司總結(jié)用戶興趣建模在社交網(wǎng)站環(huán)境下有著非常重要的作用,一個(gè)好的用戶興趣建模系統(tǒng)可以有效支持個(gè)性化推薦、搜索以及個(gè)性化廣告推送系統(tǒng)。博納網(wǎng)絡(luò)本文主要從體系結(jié)構(gòu)角度,簡(jiǎn)單介紹了社交網(wǎng)站用戶興趣建模分布式體系結(jié)構(gòu),并介紹了其中比較關(guān)鍵的數(shù)據(jù)挖掘算法。好了,本文關(guān)于“社交類(lèi)型網(wǎng)站建設(shè)怎樣解決會(huì)員實(shí)時(shí)抽取系統(tǒng)框架的規(guī)劃?”的框架解決方案就分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。