日本久久99,色婷婷我要去我去也97,久久久久人妻精品一区三寸蜜桃,91人妻在线超碰,亚洲欧洲综合av在线

大數(shù)據(jù)時代 自然語言處理技術(shù)(NLP)在推薦系統(tǒng)中的應(yīng)用
個性化推薦是大數(shù)據(jù)時代不可或缺的技術(shù),在電商、信息分發(fā)、計算廣告、互聯(lián)網(wǎng)金融等領(lǐng)域都起著重要的作用。具體來講,個性化推薦在流量高效利用、信息高效分發(fā)、提升用戶體驗、長尾物品挖掘等方面均起著核心作用。
作者:CSDN云計算
來源:CSDN云計算
2017-07-03 16:19:00

個性化推薦是大數(shù)據(jù)時代不可或缺的技術(shù),在電商、信息分發(fā)、計算廣告、互聯(lián)網(wǎng)金融等領(lǐng)域都起著重要的作用。具體來講,個性化推薦在流量高效利用、信息高效分發(fā)、提升用戶體驗、長尾物品挖掘等方面均起著核心作用。在推薦系統(tǒng)中經(jīng)常需要處理各種文本類數(shù)據(jù),例如商品描述、新聞資訊、用戶留言等等。具體來講,我們需要使用文本數(shù)據(jù)完成以下任務(wù):

1.候選商品召回。候選商品召回是推薦流程的第一步,用來生成待推薦的物品集合。這部分的核心操作是根據(jù)各種不同的推薦算法來獲取到對應(yīng)的物品集合。而文本類數(shù)據(jù)就是很重要的一類召回算法,具有不依賴用戶行為、多樣性豐富等優(yōu)勢,在文本信息豐富或者用戶信息缺乏的場合中具有非常重要的作用。

2.相關(guān)性計算。相關(guān)性計算充斥著推薦系統(tǒng)流程的各個步驟,例如召回算法中的各種文本相似度算法以及用戶畫像計算時用到的一些相關(guān)性計算等。

3.作為特征參與模型排序(CTR/CVR)。在候選集召回之后的排序?qū)?,文本類特征常??梢蕴峁┖芏嗟男畔?,從而成為重要的排序特征?/p>

但是相比結(jié)構(gòu)化信息(例如商品的屬性等),文本信息在具體使用時具有一些先天缺點。

首先,文本數(shù)據(jù)中的結(jié)構(gòu)信息量少。嚴(yán)格來說,文本數(shù)據(jù)通常是沒有什么結(jié)構(gòu)的,一般能夠有的結(jié)構(gòu)可能只是“標(biāo)題”、“正文”、“評論”這樣區(qū)分文本來源的結(jié)構(gòu),除此以外一般就沒有更多的結(jié)構(gòu)信息了。為什么我們要在意結(jié)構(gòu)信息呢?因為結(jié)構(gòu)代表著信息量,無論是使用算法還是業(yè)務(wù)規(guī)則,都可以根據(jù)結(jié)構(gòu)化信息來制定推薦策略,例如“召回所有顏色為藍(lán)色的長款羽絨服”這樣一個策略里就用到了“顏色”和“款式”這兩個結(jié)構(gòu)化信息。但是如果商品的描述數(shù)據(jù)庫中沒有這樣的結(jié)構(gòu)化信息,只有一句“該羽絨服為藍(lán)色長款羽絨服”的自由文本,那么就無法利用結(jié)構(gòu)信息制定策略了。

其次,文本內(nèi)容的信息量不確定。與無結(jié)構(gòu)化相伴隨的,是文本數(shù)據(jù)在內(nèi)容的不確定性,這種不確定性體現(xiàn)在內(nèi)容和數(shù)量上,例如不同用戶對同一件二手商品的描述可能差異非常大,具體可能在用詞、描述、文本長短等方面都具有較大差異。同樣的兩個物品,在一個物品的描述中出現(xiàn)的內(nèi)容在另外一個物品中并不一定會出現(xiàn)。這種差異性的存在使得文本數(shù)據(jù)往往難以作為一種穩(wěn)定可靠的數(shù)據(jù)源來使用,尤其是在UGC化明顯的場景下更是如此。

再次,自由文本中的歧義問題較多。歧義理解是自然語言處理中的重要研究課題,同時歧義也影響著我們在推薦系統(tǒng)中對文本數(shù)據(jù)的使用。例如用戶在描述自己的二手手機時可能會寫“出售iPhone6一部,打算湊錢買iPhone7”這樣的話,這樣一句對人來說意思很明確的話,卻對機器造成了很大困擾:這個手機究竟是iPhone6還是iPhone7?在這樣的背景下如何保證推薦系統(tǒng)的準(zhǔn)確率便成為了一個挑戰(zhàn)。

但是文本數(shù)據(jù)也不是一無是處,有缺點的同時也具有一些結(jié)構(gòu)化數(shù)據(jù)所不具有的優(yōu)點:

1.數(shù)據(jù)量大。無結(jié)構(gòu)化的文本數(shù)據(jù)一般來說是非常容易獲得的,例如各種UGC渠道,以及網(wǎng)絡(luò)爬取等方法,都可穿獲得大量文本數(shù)據(jù)。

2.多樣性豐富。無結(jié)構(gòu)化是一把雙刃劍,不好的一面已經(jīng)分析過,好的一面就是由于其開放性,導(dǎo)致具有豐富的多樣性,會包含一些結(jié)構(gòu)規(guī)定以外的數(shù)據(jù)。

3.信息及時。在一些新名詞,新事物出現(xiàn)之后,微博、朋友圈常常是最先能夠反應(yīng)出變化的地方,而這些都是純文本的數(shù)據(jù),對這些數(shù)據(jù)的合理分析,能夠最快得到結(jié)構(gòu)化、預(yù)定義數(shù)據(jù)所無法得到的信息,這也是文本數(shù)據(jù)的優(yōu)勢。

綜上所述,文本數(shù)據(jù)是一類量大、復(fù)雜、豐富的數(shù)據(jù),對推薦系統(tǒng)起著重要的作用,本文將針對上面提到的幾個方面,對推薦系統(tǒng)中常見的文本處理方法進(jìn)行介紹。

從這里出發(fā):詞袋模型

詞袋模型(Bag of Words,簡稱BOW模型)是最簡單的文本處理方法,其核心假設(shè)非常簡單,就是認(rèn)為一篇文檔是由文檔中的詞組成的多重集合(多重集合與普通集合的不同在于考慮了集合中元素的出現(xiàn)次數(shù))構(gòu)成的。這是一種最簡單的假設(shè),沒有考慮文檔中諸如語法、詞序等其他重要因素,只考慮了詞的出現(xiàn)次數(shù)。這樣簡單的假設(shè)顯然丟掉了很多信息,但是帶來的好處是使用和計算都比較簡單,同時也具有較大的靈活性。

在推薦系統(tǒng)中,如果將一個物品看作一個詞袋,我們可以根據(jù)袋中的詞來召回相關(guān)物品,例如用戶瀏覽了一個包含“羽絨服”關(guān)鍵詞的商品,我們可以召回包含“羽絨服”的其他商品作為該次推薦的候選商品,并且可以根據(jù)這個詞在詞袋中出現(xiàn)的次數(shù)(詞頻)對召回商品進(jìn)行排序。

這種簡單的做法顯然存在著很多問題:

首先,將文本進(jìn)行分詞后得到的詞里面,并不是每個詞都可以用來做召回和排序,例如“的地得你我他”這樣的“停用詞”就該去掉,此外,一些出現(xiàn)頻率特別高或者特別低的詞也需要做特殊處理,否則會導(dǎo)致召回結(jié)果相關(guān)性低或召回結(jié)果過少等問題。

其次,使用詞頻來度量重要性也顯得合理性不足。以上面的“羽絨服”召回為例,如果在羽絨服的類別里使用“羽絨服”這個詞在商品描述中的出現(xiàn)頻率來衡量商品的相關(guān)性,會導(dǎo)致所有的羽絨服都具有類似的相關(guān)性,因為在描述中大家都會使用類似數(shù)量的該詞匯。所以我們需要一種更為科學(xué)合理的方法來度量文本之間的相關(guān)性。

除了上面的用法,我們還可以將詞袋中的每個詞作為一維特征加入到排序模型中。例如,在一個以LR為模型的CTR排序模型中,如果這一維特征的權(quán)重為w,則可解釋為“包含這個詞的樣本相比不包含這個詞的樣本在點擊率的log odds上要高出w”。在排序模型中使用詞特征的時候,為了增強特征的區(qū)分能力,我們常常會使用簡單詞袋模型的一種升級版——N-gram詞袋模型。

N-gram指的就是把N個連續(xù)的詞作為一個單位進(jìn)行處理,例如:“John likes to watch movies.Mary likes movies too.”這句話處理為簡單詞袋模型后的結(jié)果為:

而處理為bigram(2-gram)后的結(jié)果為:

做這樣的處理有什么好處呢?如果將bigram作為排序模型的特征或者相似度計算的特征,最明顯的好處就是增強了特征的區(qū)分能力,簡單來講就是:兩個有N個bigram重合的物品,其相關(guān)性要大于有N個詞重合的物品。從根本上來講,是因為bigram的重合幾率要低于1-gram(也就是普通詞)的重合幾率。那么是不是N-gram中的N越大就越好呢?N的增大雖然增強了特征的區(qū)分能力,但是同時也加大了數(shù)據(jù)的稀疏性,從極端情況來講,假設(shè)N取到100,那么幾乎不會有兩個文檔有重合的100-gram了,那這樣的特征也就失去了意義。一般在實際應(yīng)用中,bigram和trigram(3-gram)能夠在區(qū)分性和稀疏性之間取到比較好的平衡,N如果繼續(xù)增大,稀疏性會有明顯增加,但是效果卻不會有明顯提升,甚至還會有降低。

綜合來看,雖然詞袋模型存在著明顯的弊端,但是只需要對文本做簡單處理就可以使用,所以不失為一種對文本數(shù)據(jù)進(jìn)行快速處理的使用方法,并且在預(yù)處理(常用的預(yù)處理包括停用詞的去除,高頻/低頻詞的去除或降權(quán)等重要性處理方法,也可以借助外部高質(zhì)量數(shù)據(jù)對自由文本數(shù)據(jù)進(jìn)行過濾和限定,以求獲得質(zhì)量更高的原始數(shù)據(jù))充分的情況下,也常常能夠得到很好的效果。

統(tǒng)一度量衡:權(quán)重計算和向量空間模型

從上文我們看到簡單的詞袋模型在經(jīng)過適當(dāng)預(yù)處理之后,可以用來在推薦系統(tǒng)中召回候選物品。但是在計算物品和關(guān)鍵詞的相關(guān)性,以及物品之間的相關(guān)性時,僅僅使用簡單的詞頻作為排序因素顯然是不合理的。為了解決這個問題,我們可以引入表達(dá)能力更強的基于TF-IDF的權(quán)重計算方法。在TF-IDF方法中,一個詞t在文檔d中權(quán)重的計算方法為:

技術(shù)3

其中tft,d代表t在d中出現(xiàn)的頻次,而dft指的是包含t的文檔數(shù)目,N代表全部文檔的數(shù)目。

TF-IDF以及其各種改進(jìn)和變種(關(guān)于TF-IDF變種和改進(jìn)的詳細(xì)介紹,可參考《Introduction to Information Retrieval》的第六章。)相比簡單的TF方法,核心改進(jìn)在于對一個詞的重要性度量,例如:

1.原始TF-IDF在TF的基礎(chǔ)上加入了對IDF的考慮,從而降低了出現(xiàn)頻率高而導(dǎo)致無區(qū)分能力的詞的重要性,典型的如停用詞。

2.因為詞在文檔中的重要性和出現(xiàn)次數(shù)并不是完全線性相關(guān),非線性TF縮放對TF進(jìn)行l(wèi)og縮放,從而降低出現(xiàn)頻率特別高的詞所占的權(quán)重。

3.詞在文檔中出現(xiàn)的頻率除了和重要性相關(guān),還可能和文檔的長短相關(guān),為了消除這種差異,可以使用最大TF對所有的TF進(jìn)行歸一化。

這些方法的目的都是使對詞在文檔中重要性的度量更加合理,在此基礎(chǔ)之上,我們可以對基于詞頻的方法進(jìn)行改進(jìn),例如,可以將之前使用詞頻來對物品進(jìn)行排序的方法,改進(jìn)為根據(jù)TF-IDF得分來進(jìn)行排序。

但是除此以外,我們還需要一套統(tǒng)一的方法來度量關(guān)鍵詞和文檔,以及文檔和文檔之間的相關(guān)性,這套方法就是向量空間模型(Vector Space Model,簡稱VSM)。

VSM的核心思想是將一篇文檔表達(dá)為一個向量,向量的每一維可以代表一個詞,在此基礎(chǔ)上,可以使用向量運算的方法對文檔間相似度進(jìn)行統(tǒng)一計算,而這其中最為核心的計算,就是向量的余弦相似度計算:

技術(shù)2

其中V(d1)和V(d2)分別為兩個文檔的向量表示。這樣一個看似簡單的計算公式其實有著非常重要的意義。首先,它給出了一種相關(guān)性計算的通用思路,那就是只要能將兩個物品用向量進(jìn)行表示,就可以使用該公式進(jìn)行相關(guān)性計算。其次,它對向量的具體表示內(nèi)容沒有任何限制——基于用戶行為的協(xié)同過濾使用的也是同樣的計算公式,而在文本相關(guān)性計算方面,我們可以使用TFIDF填充向量,同時也可以用N-gram,以及后面會介紹的文本主題的概率分布、各種詞向量等其他表示形式。只要對該公式的內(nèi)涵有了深刻理解,就可以根據(jù)需求構(gòu)造合理的向量表示。再次,該公式具有較強的可解釋性,它將整體的相關(guān)性拆解為多個分量的相關(guān)性的疊加,并且這個疊加方式可以通過公式進(jìn)行調(diào)節(jié),這樣一套方法很容易解釋,即使對非技術(shù)人員,也是比較容易理解的,這對于和產(chǎn)品、運營等非技術(shù)人員解釋算法思路有很重要的意義。最后,這個公式在實際計算中可以進(jìn)行一些很高效的工程優(yōu)化,使其能夠從容應(yīng)對大數(shù)據(jù)環(huán)境下的海量數(shù)據(jù),這一點是其他相關(guān)性計算方法很難匹敵的。

VSM是一種“重劍無鋒,大巧不工”的方法,形態(tài)簡單而又變化多端,領(lǐng)會其精髓之后,可以發(fā)揮出極大的能量。

透過現(xiàn)象看本質(zhì):隱語義模型

前面介紹了文本數(shù)據(jù)的一些“顯式”使用方法,所謂顯式,是指我們將可讀可理解的文本本身作為了相關(guān)性計算、物品召回以及模型排序的特征。這樣做的好處是簡單直觀,能夠清晰地看到起作用的是什么,但是其弊端是無法捕捉到隱藏在文本表面之下的深層次信息。例如,“羽絨服”和“棉衣”指的是類似的東西,“羽絨服”和“棉鞋”具有很強的相關(guān)性,類似這樣的深層次信息,是顯式的文本處理所無法捕捉的,因此我們需要一些更復(fù)雜的方法來捕捉,而隱語義模型(Latent Semantic Analysis,簡稱LSA)便是這類方法的鼻祖之一。

隱語義模型中的“隱”指的是隱含的主題,這個模型的核心假設(shè),是認(rèn)為雖然一個文檔由很多的詞組成,但是這些詞背后的主題并不是很多。換句話說,詞不過是由背后的主題產(chǎn)生的,這背后的主題才是更為核心的信息。這種從詞下沉到主題的思路,貫穿著我們后面要介紹到的其他模型,也是各種不同文本主體模型(Topic Model)的共同中心思想,因此理解這種思路非常的重要。

在對文檔做LSA分解之前,我們需要構(gòu)造文檔和詞之間的關(guān)系,一個由5個文檔和5個詞組成的簡單例子如下:

技術(shù)4

LSA的做法是將這個原始矩陣C進(jìn)行如下形式的SVD分解:

技術(shù)5

其中U是矩陣CCT的正交特征向量矩陣,V是矩陣CTC的正交特征向量矩陣,∑k是包含前k個奇異值的對角矩陣,k是事先選定的一個降維參數(shù)。

1.得到原始數(shù)據(jù)的一個低維表示,降低后的維度包含了更多的信息,可以認(rèn)為每個維度代表了一個主題。

2.降維后的每個維度包含了更豐富的信息,例如可以識別近義詞和一詞多義。

3.可以將不在訓(xùn)練文檔中的文檔d通過

技術(shù)6

變換為新向量空間內(nèi)的一個向量(這樣的變換無法捕捉到新文檔中的信息,例如詞的共現(xiàn),以及新詞的出現(xiàn)等等,所以該模型需要定期進(jìn)行全量訓(xùn)練。),從而可以在降維后的空間里計算文檔間相似度。由于新的向量空間包含了同義詞等更深層的信息,這樣的變換會提高相似度計算的準(zhǔn)確率和召回率。

為什么LSA能具有這樣的能力?我們可以從這樣一個角度來看待:CCT中每個元素CCTi,j代表同時包含詞i和詞j的文檔數(shù)量,而CTC中每個元素CTCi,j代表文檔i和文檔j共享的詞的數(shù)量。所以這兩個矩陣中包含了不同詞的共同出現(xiàn)情況,以及文檔對詞的共享情況,通過分解這些信息得到了類似主題一樣比關(guān)鍵詞信息量更高的低維度數(shù)據(jù)。

從另外一個角度來看,LSA相當(dāng)于是對文檔進(jìn)行了一次軟聚類,降維后的每個維度可看做是一個類,而文檔在這個維度上的取值則代表了文檔對于這個聚類的歸屬程度。

LSA處理之后的數(shù)據(jù)推薦中能做什么用呢?首先,我們可以將分解后的新維度(主題維度)作為索引的單位對物品進(jìn)行索引,來替代傳統(tǒng)的以詞為單位的索引,再將用戶對物品的行為映射為對新維度的行為。這兩個數(shù)據(jù)準(zhǔn)備好之后,就可以使用新的數(shù)據(jù)維度對候選商品進(jìn)行召回,召回之后可以使用VSM進(jìn)行相似度計算,如前文所述,降維后的計算會帶來更高的準(zhǔn)確率和召回率,同時也能夠減少噪音詞的干擾,典型的,即使兩個文檔沒有任何共享的詞,它們之間仍然會存在相關(guān)性,而這正是LSA帶來的核心優(yōu)勢之一。此外,還可以將其作為排序模型的排序特征。

簡單來講,我們能在普通關(guān)鍵詞上面使用的方法,在LSA上面仍然全部可用,因為LSA的本質(zhì)就是對原始數(shù)據(jù)進(jìn)行了語義的降維,只需將其看作是信息量更豐富的關(guān)鍵詞即可。

可以看到LSA相比關(guān)鍵詞來說前進(jìn)了一大步,主要體現(xiàn)在信息量的提升,維度的降低,以及對近義詞和多義詞的理解。但是LSA同時也具有一些缺點,例如:

1.訓(xùn)練復(fù)雜度高。LSA的訓(xùn)練時通過SVD進(jìn)行的,而SVD本身的復(fù)雜度是很高的,在海量文檔和海量詞匯的場景下難以計算,雖然有一些優(yōu)化方法可降低計算的復(fù)雜度,但該問題仍然沒有得到根本解決。

2.檢索(召回)復(fù)雜度高。如上文所述,使用LSA做召回需要先將文檔或者查詢關(guān)鍵詞映射到LSA的向量空間中,這顯然也是一個耗時的操作。

3.LSA中每個主題下詞的值沒有概率含義,甚至可能出現(xiàn)負(fù)值,只能反應(yīng)數(shù)值大小關(guān)系。這讓我們難以從概率角度來解釋和理解主題和詞的關(guān)系,從而限制了我們對其結(jié)果更豐富的使用。

概率的魔力:概率隱語義模型

為了進(jìn)一步發(fā)揚隱語義模型的威力,并盡力克服LSA模型的問題,Thomas Hofmann在1999年提出了概率隱語義模型(probabilistic Latent Semantic Analysis,簡稱pLSA)。從前面LSA的介紹可以看出,雖然具體的優(yōu)化方法使用的是矩陣分解,但是從另一個角度來講,我們可以認(rèn)為分解后的U和V兩個矩陣中的向量,分別代表文檔和詞在隱語義空間中的表示,例如一個文檔的隱向量表示為(1,2,0)T, 代表其在第一維隱向量上取值為1,第二維上取值為2,第三維上取值為0。如果這些取值能夠構(gòu)成一個概率分布,那么不僅模型的結(jié)果更利于理解,同時還會帶來很多優(yōu)良的性質(zhì),這正是pLSA思想的核心:將文檔和詞的關(guān)系看作概率分布,然后試圖找出這個概率分布來,有了文檔和詞的概率分布,我們就可以得到一切我們想要得到的東西了。

在pLSA的基本假設(shè)中,文檔d和詞w的生成過程如下:

1.以 P(d) 的概率選擇文檔d。

2.以 P(z|d) 的概率選擇隱類z。

3.以 P(w|z) 的概率從z生成w。

4.P(z|d)和P(w|z) 均為多項式分布。

將這個過程用聯(lián)合概率進(jìn)行表達(dá)得到:

技術(shù)7

技術(shù)8

(圖1 pLSA的生成過程)

可以看到,我們將隱變量z作為中間橋梁,將文檔和詞連接了起來,形成了一個定義良好、環(huán)環(huán)相扣的概率生成鏈條(如圖1所示)。雖然pLSA的核心是一種概率模型,但是同樣可以用類似LSI的矩陣分解形式進(jìn)行表達(dá)。為此,我們將LSI中等號右邊的三個矩陣進(jìn)行重新定義:

技術(shù)9

在這樣的定義下,原始的矩陣C仍然可以表述為C=U∑VT。這樣的對應(yīng)關(guān)系讓我們更加清晰地看到了前面提到的pLSA在概率方面的良好定義和清晰含義,同時也揭示了隱語義概率模型和矩陣分解之間的密切關(guān)系(關(guān)于概率模型和矩陣分解的密切關(guān)系可參考這篇文檔:http://www.cs.cmu.edu/~epxing/Class/10708-15/slides/LDA_SC.pdf)。在這樣的定義,隱變量z所代表的主題含義更加明顯,也就是說,我們可以明確的把一個z看作一個主題,主題里的詞和文檔中的主題都有著明確的概率含義。也正是由于這樣良好的性質(zhì),再加上優(yōu)化方法的便捷性,使得從pLSA開始,文本主題開始在各種大數(shù)據(jù)應(yīng)用中占據(jù)重要地位。

從矩陣的角度來看,LSA和pLSA看上去非常像,但是它們的內(nèi)涵卻有著本質(zhì)的不同,這其中最為重要的一點就是兩者的優(yōu)化目標(biāo)是完全不同的:LSA本質(zhì)上是在優(yōu)化SVD分解后的矩陣和原始矩陣之間的平方誤差,而pLSA本質(zhì)上是在優(yōu)化似然函數(shù),是一種標(biāo)準(zhǔn)的機器學(xué)習(xí)優(yōu)化套路。也正是由于這一點本質(zhì)的不同,導(dǎo)致了兩者在優(yōu)化結(jié)果和解釋能力方面的不同。

至此我們看到,pLSA將LSA的思想從概率分布的角度進(jìn)行了一大步擴展,得到了一個性質(zhì)更加優(yōu)良的結(jié)果,但是pLSA仍然存在一些問題,主要包括:

由于pLSA為每個文檔生成一組文檔級參數(shù),模型中參數(shù)的數(shù)量隨著與文檔數(shù)成正比,因此在文檔數(shù)較多的情況下容易過擬合。

pLSA將每個文檔d表示為一組主題的混合,然而具體的混合比例卻沒有對應(yīng)的生成概率模型,換句話說,對于不在訓(xùn)練集中的新文檔,pLSA無法給予一個很好的主題分布。簡言之,pLSA并非完全的生成式模型。

而LDA的出現(xiàn),就是為了解決這些問題。

概率的概率:生成式概率模型

為了解決上面提到的pLSA存在的問題,David Blei等人在2003年提出了一個新模型,名為“隱狄利克雷分配”(Latent Dirichlet Allocation,簡稱LDA),這個名字念起來頗為隱晦,而且從名字上似乎也看不出究竟是個什么模型,在這里我們試著做一種可能的解讀:

1.Latent:這個詞不用多說,是說這個模型仍然是個隱語義模型。

2.Dirichlet:這個詞是在說該模型涉及到的主要概率分布式狄利克雷分布。

3.Allocation:這個詞是在說這個模型的生成過程就是在使用狄利克雷分布不斷地分配主題和詞。

上面并非官方解釋,但希望能對理解這個模型能起到一些幫助作用。

LDA的中心思想就是在pLSA外面又包了一層先驗,使得文檔中的主題分布和主題下的詞分布都有了生成概率,從而解決了上面pLSA存在的“非生成式”的問題,順便也減少了模型中的參數(shù),從而解決了pLSA的另外一個問題。在LDA中為一篇文檔di生成詞的過程如下:

1.從泊松分布中抽樣一個數(shù)字N作為文檔的長度(這一步并非必須,也不影響后面的過程)。

2.從狄利克雷分布Dir(α)中抽樣一個樣本θi,代表該篇文檔下主題的分布。

3.從狄利克雷分布Dir(β)中抽樣一組樣本Φk,代表每個主題下詞的分布。

4.對于1到N的每個詞wn:

(1)從多項式分布Multinomial(θi) 中抽樣一個主題ci,j。

(2) 從多項式分布Multinomial(Φi) 中抽樣一個詞wi,j。

技術(shù)10

(圖2 LDA的生成過程)

忽略掉最開始選擇文檔長度的步驟,我們發(fā)現(xiàn)LDA的生成過程相比pLSA來講,在文檔到主題的分布和主題到詞的分布上面都加了一層概率,使得這兩者都加上了一層不確定性,從而能夠很自然地容納訓(xùn)練文檔中沒有出現(xiàn)過的文檔和詞,這使得LDA具有了比pLSA更好的概率性質(zhì)。

LDA的應(yīng)用

這部分我們介紹LDA在用作相似度計算和排序特征時需要注意的一些地方,然后介紹以LDA為代表的文本主題在推薦系統(tǒng)中更多不同角度的應(yīng)用。

相似度計算

上面提到LSA可以直接套用到VSM中進(jìn)行相似度計算,在LDA中也可以做類似的計算,具體方法是把文檔的主題分布值向量化然后用余弦公式進(jìn)行計算。但是把余弦相似度替換為KL divergence或Jensen–Shannon divergence效果更好,原因是LDA給出的主題分布是含義明確的概率值,用度量概率之間相似度的方法來進(jìn)行度量更為合理。

排序特征

將物品的LDA主題作為排序模型的特征是一種很自然的使用方法,但并不是所有的主題都有用。物品上的主題分布一般有兩種情況:

1.有少數(shù)主題(三個或更少)占據(jù)了比較大的概率,剩余的主題概率加起來比較小。

2.所有主題的概率值都差不多,都比較小。

在第一種情況下,只有前面幾個概率比較大的主題是有用的,而在第二種情況下,基本上所有的主題都沒有用。那么該如何識別這兩種情況呢?第一種方法,可以根據(jù)主題的概率值對主題做一個簡單的K-Means聚類,K選為2,如果是第一種情況,那么兩個類中的主題數(shù)量會相差較大——一個類中包含少量有用主題,另一個類包含其他無用主題;而第二種情況下主題數(shù)量則相差不大,可以用這種方法來識別主題的重要性。第二種方法,可以計算主題分布的信息熵,第一種情況對應(yīng)的信息熵會比較小,而第二種情況會比較大,選取合適的閾值也可以區(qū)分這兩種情況。

物品打標(biāo)簽&用戶打標(biāo)簽

為物品計算出其對應(yīng)的主題,以及主題下面對應(yīng)的詞分布之后,我們可以選取概率最大的幾個主題,然后從這幾個主題下選取概率最大的幾個詞,作為這個物品的標(biāo)簽。在此基礎(chǔ)上,如果用戶對該物品發(fā)生了行為,則可以將這些標(biāo)簽傳播到用戶身上。

這種方法打出的標(biāo)簽,具有非常直觀的解釋,在適當(dāng)場景下可以充當(dāng)推薦解釋的理由。例如我們在做移動端個性化推送時,可供展示文案的空間非常小,可以通過上面的方式先為物品打上標(biāo)簽,然后再根據(jù)用戶把標(biāo)簽傳播到用戶身上,在推送時將這些標(biāo)簽詞同時作為召回源和推薦理由,讓用戶明白為什么給他做出這樣的推薦。

主題&詞的重要性度量

LDA訓(xùn)練生成的主題中,雖然都有著同等的位置,但是其重要性卻是各不相同的,有的主題包含了重要的信息,有的則不然。例如,一個主題可能包含“教育、讀書、學(xué)校”等詞,和這樣主題相關(guān)的文檔,一般來說是和教育相關(guān)的主題,那么這就是一個信息量高的主題;相反,有的主題可能會包含“第一冊、第二冊、第三冊……”等詞(如果在一個圖書銷售網(wǎng)站的所有圖書上訓(xùn)練LDA,就有可能得到這樣的主題,因為有很多套裝圖書都包含這樣的信息),和這樣主題相關(guān)的文檔卻有可能是任何主題,這樣的主題就是信息量低的主題。

如何區(qū)分主題是否重要呢?從上面的例子中我們可以得到啟發(fā):重要的主題不會到處出現(xiàn),只會出現(xiàn)在小部分與之相關(guān)的文檔中,而不重要的主題則可能在各種文章中都出現(xiàn)?;谶@樣的思想,我們可以使用信息熵的方法來衡量一個主題中的信息量。通過對LDA輸出信息做適當(dāng)?shù)淖儞Q,我們可以得到主題θi在不同文檔中的概率分布,然后我們對這個概率分布計算其信息熵,通俗來講信息熵衡量了一個概率分布中概率值分散程度,越分散熵越大,越集中熵越小。所以在我們的問題中,信息熵越小的主題,說明該主題所對應(yīng)的文檔越少,主題的重要性越高。

使用類似的方法,我們還可以計算詞的重要性,在此不再贅述。

更多應(yīng)用

除了上面提到的,LDA還有很多其他應(yīng)用,甚至在文本領(lǐng)域以外的圖像等領(lǐng)域也存在著廣泛應(yīng)用。LSA/pLSA/LDA這些主題模型的核心基礎(chǔ)是詞在文檔中的共現(xiàn),在此基礎(chǔ)上才有了各種概率分布,把握住這個核心基礎(chǔ),就可以找到文本主體模型的更多應(yīng)用。例如,協(xié)同過濾問題中,基礎(chǔ)數(shù)據(jù)也是用戶對物品的共同行為,這也構(gòu)成了文本主題模型的基礎(chǔ),因此也可以使用LDA對用戶對物品的行為進(jìn)行建模,得到用戶行為的主題,以及主題下對應(yīng)的物品,然后進(jìn)行物品/用戶的推薦。

捕捉上下文信息:神經(jīng)概率語言模型

以LDA為代表的文本主題模型通過對詞的共現(xiàn)信息的分解處理,得到了很多有用的信息,但是pLSA/LDA有一個很重要的假設(shè),那就是文檔集合中的文檔,以及一篇文檔中的詞在選定了主題分布的情況下都是相互獨立,可交換的,換句話說,模型中沒有考慮詞的順序以及詞和詞之間的關(guān)系,這種假設(shè)隱含了兩個含義:

1.在生成詞的過程中,之前生成的詞對接下來生成的詞是沒有影響的。

2.兩篇文檔如果包含同樣的詞,但是詞的出現(xiàn)順序不同,那么在LDA看來他們是完全相同的。

這樣的假設(shè)使得LDA會丟失一些重要的信息,而近年來得到關(guān)注越來越多的以word2vec為代表的神經(jīng)概率語言模型恰好在這方面和LDA形成了一定程度的互補關(guān)系,從而可以捕捉到LDA所無法捕捉到的信息。

word2vector的中心思想用一句話來講就是:A word is characterized by the company it keeps(一個詞的特征由它周圍的詞所決定)。

這是一句頗有哲理的話,很像是成語中的“物以類聚人以群分”。具體來講,詞向量模型使用“周圍的詞=>當(dāng)前詞”或“當(dāng)前詞=>周圍的詞”這樣的方式構(gòu)造訓(xùn)練樣本,然后使用神經(jīng)網(wǎng)絡(luò)來訓(xùn)練模型,訓(xùn)練完成之后,輸入詞的輸入向量表示便成為了該詞的向量表示,如圖3所示。

這樣的訓(xùn)練方式,本質(zhì)上是在說,如果兩個詞具有類似的上下文(上下文由周圍的詞組成),那么這兩個詞就會具有類似的向量表示。有了詞的向量表示之后,我們可以做很多事情,最常見的是將這一層向量表示作為更深層次模型的一個嵌入層。除了在深度學(xué)習(xí)中的使用以外,在推薦系統(tǒng)中還可以做很多其他的事情,其中之一就是做詞的聚類,以及尋找相似詞。我們知道LDA天然就可以做到詞的聚類和相似詞的計算,那么使用word2vec計算出來的結(jié)果和LDA有什么不同呢?它們之間的不同具體體現(xiàn)在兩點:第一是聚類的粒度不同,LDA關(guān)注的主題級別的粒度,層次更高,而詞向量關(guān)注的是更低層次的語法語義級別的含義。例如“蘋果”,“小米”和“三星”這三個詞,在LDA方法中很可能會被聚類在一個主題中,但是在詞向量的角度來看,“蘋果”和“小米”可能會具有更高的相似度,就像“喬布斯”和“雷軍”在詞向量下的關(guān)系一樣,所以在詞向量中可能會有:“vector(小米)- vector(蘋果)+vector(喬布斯)= vector(雷軍)”這樣的結(jié)果。

除此以外,由于word2vec有著“根據(jù)上下文預(yù)測當(dāng)前內(nèi)容”的能力,將其做適當(dāng)修改之后,還可以用來對用戶行為喜好做出預(yù)測。首先我們將用戶的行為日志進(jìn)行收集,進(jìn)行session劃分,得到類似文本語料的訓(xùn)練數(shù)據(jù),在這個數(shù)據(jù)上訓(xùn)練word2vec模型,可以得到一個“根據(jù)上下文行為預(yù)測當(dāng)前行為”的模型。但是原始的行為數(shù)據(jù)中行為的對象常常是id級的,例如商品、視頻的id等等,如果直接放到模型中訓(xùn)練,會造成訓(xùn)練速度慢、泛化能力差等問題,因此需要對原始行為做降維,具體來說可以將行為映射到搜索詞、LDA Topic、類別等等低維度特征上,然后再進(jìn)行訓(xùn)練。例如,我們可以對用戶的搜索詞訓(xùn)練一個word2vec模型,然后就可以根據(jù)用戶的歷史搜索行為預(yù)測他的下一步搜索行為,并在此基礎(chǔ)上進(jìn)行推薦。這種方法考慮到了上下文,但是對前后關(guān)系并沒有做最恰當(dāng)?shù)奶幚?,因為word2vec的思想是“根據(jù)上下文預(yù)測當(dāng)前內(nèi)容”,但我們希望得到的模型是“根據(jù)歷史行為預(yù)測下一步行為”,這兩者之間有著微妙的差別。例如用戶的行為序列為“ABCDE”,每個字母代表對一個物品(或關(guān)鍵詞)的行為,標(biāo)準(zhǔn)的word2vec算法可能會構(gòu)造出下面這些樣本:AC→B, BD→C, CE→D… 但是我們希望的形式其實是這樣的:AB→C, BC→D,CD→E…因此,需要對word2vec生成樣本的邏輯進(jìn)行修改,使其只包含我們需要的單方向的樣本,方可在最終模型中得到我們真正期望的結(jié)果。

下面是按照該方法生成的一些預(yù)測例子:

可以看出,預(yù)測搜索詞都與歷史搜索詞有著緊密的關(guān)系,是對歷史搜索詞的延伸(例如學(xué)生書桌和烤腸機的例子)或者細(xì)化(例如小龜王和西鐵城手表的例子),具有比較好的預(yù)測屬性,是非常好的推薦策略來源。沿著這樣的思路,我們還可以對word2vec作進(jìn)一步修改,得到對時序關(guān)系更為敏感的模型,以及嘗試使用RNN、LSTM等純時序模型來得到更好的預(yù)測結(jié)果,但由于篇幅所限,在此不做展開。

行業(yè)應(yīng)用現(xiàn)狀

文本主題模型在被提出之后,由于其良好的概率性質(zhì),以及對文本數(shù)據(jù)有意義的聚類抽象能力,在互聯(lián)網(wǎng)的各個行業(yè)中都取得了廣泛的應(yīng)用。搜索巨頭Google在其系統(tǒng)的各個方面都在廣泛使用文本主題模型,并為此開發(fā)了大規(guī)模文本主題系統(tǒng)Rephil。例如在為用戶搜索產(chǎn)生廣告的過程中,就使用了文本主題來計算網(wǎng)頁內(nèi)容和廣告之間的匹配度,是其廣告產(chǎn)品成功的重要因素之一。此外,在匹配用戶搜索詞和網(wǎng)頁間關(guān)系的時候,文本主題也可用來提高匹配召回率和準(zhǔn)確性。Yahoo!也在其搜索排序模型中大量使用了LDA主題特征,還為此開源了著名的Yahoo!LDA工具。

在國內(nèi),文本主題最著名的系統(tǒng)當(dāng)屬騰訊開發(fā)的Peacock系統(tǒng),該系統(tǒng)可以捕捉百萬級別的文本主題,在騰訊的廣告分類、網(wǎng)頁分類、精準(zhǔn)廣告定向、QQ群分類等重要業(yè)務(wù)上均起著重要的作用。該系統(tǒng)使用的HDP(Hierarchical Dirichlet Process)模型是LDA模型的一個擴展,可智能選擇數(shù)據(jù)中主題的數(shù)量,還具有捕捉長尾主題的能力。除了騰訊以外,文本主題模型在各公司的推薦、搜索等業(yè)務(wù)中也已經(jīng)在廣泛使用,使用方法根據(jù)各自業(yè)務(wù)有所不同。

以word2vec為代表的神經(jīng)網(wǎng)絡(luò)模型近年來的使用也比較廣泛,典型的應(yīng)用如詞的聚類、近義詞的發(fā)現(xiàn)、quer y的擴展、推薦興趣的擴展等。Facebook開發(fā)了一種word2vec的替代方案FastText,該方案在傳統(tǒng)詞向量的基礎(chǔ)上,考慮子詞(subword)的概念,取得了比word2vec更好的效果 。

總結(jié)和展望

我們從簡單的文本關(guān)鍵詞出發(fā),沿著結(jié)構(gòu)化、降維、聚類、概率、時序的思路,結(jié)合推薦系統(tǒng)中候選集召回、相關(guān)性計算、排序模型特征等具體應(yīng)用,介紹了推薦系統(tǒng)中一些常用的自然語言處理技術(shù)和具體應(yīng)用方法。自然語言處理技術(shù)借著深度學(xué)習(xí)的東風(fēng),近年來取得了長足的進(jìn)步,而其與推薦系統(tǒng)的緊密關(guān)系,也意味著推薦系統(tǒng)在這方面仍然有著巨大的提升空間,讓我們拭目以待。

作者: 張相於,58集團(tuán)算法架構(gòu)師,轉(zhuǎn)轉(zhuǎn)搜索推薦部負(fù)責(zé)人,負(fù)責(zé)搜索、推薦以及算法相關(guān)工作。多年來主要從事推薦系統(tǒng)以及機器學(xué)習(xí),也做過計算廣告、反作弊等相關(guān)工作,并熱衷于探索大數(shù)據(jù)和機器學(xué)習(xí)技術(shù)在其他領(lǐng)域的應(yīng)用實踐。

本文為《程序員》原創(chuàng)文章。

關(guān)注中國IDC圈官方微信:idc-quan或微信號:821496803 我們將定期推送IDC產(chǎn)業(yè)最新資訊

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高興

  • 震驚

  • 憤怒

  • 無聊

  • 無奈

  • 謊言

  • 槍稿

  • 不解

  • 標(biāo)題黨
2022-04-20 09:21:44
大數(shù)據(jù)資訊 浪潮李龍翔:多層數(shù)據(jù)訪問優(yōu)化 應(yīng)對超大規(guī)模系統(tǒng)挑戰(zhàn)
4月9日-13日,第十三屆國際性能工程學(xué)大會(ICPE2022)在線召開。此次大會涉及AI建模及算法、算力提升、能效測量、新型計算架構(gòu)、體系結(jié)構(gòu)研究等多個主題。 <詳情>
2022-03-24 10:20:00
2022-01-13 16:15:02
市場情報 悠易互通CTO李旸:洞察2022營銷技術(shù)發(fā)展趨勢
品牌與潛客溝通時,推薦什么樣的內(nèi)容,采用什么樣的創(chuàng)意、什么樣的素材、什么樣的文案、什么樣的落地頁等等,這些都可以通過個性化的方式去實現(xiàn),并達(dá)到很好的溝通效果。 <詳情>
2022-01-04 13:45:01
大數(shù)據(jù)技術(shù) 零售行業(yè)如何利用大數(shù)據(jù)技術(shù)最大化商業(yè)成功?
核心場景賦能是零售大數(shù)據(jù)方案中的一大特點,從不同的數(shù)據(jù)來源看,任何一個零售場景都離不開人、貨、場三個要素。 <詳情>
2021-09-09 16:01:07
市場情報 StarRocks開源——攜手未來,星辰大海!
StarRocks自主打造的新一代全面向量化的MPP引擎使查詢性能大幅提高,是非原生向量化系統(tǒng)的3~5倍以上。 <詳情>
2021-09-06 09:48:54
大數(shù)據(jù)資訊 大數(shù)據(jù)和人工智能時代,審計人還需要有思想嗎?
面對具體的工作和特定的任務(wù),審計人只要思考如何完成就行了,不必再浪費時間去思考更深層次的事情。 <詳情>
2021-08-04 09:58:00
大數(shù)據(jù)應(yīng)用 物聯(lián)網(wǎng)和海運業(yè):數(shù)據(jù)的海洋
實時大數(shù)據(jù)分析正在幫助人們更有效地應(yīng)對意想不到的挑戰(zhàn)。 <詳情>
2021-08-02 11:11:46
大數(shù)據(jù)應(yīng)用 大數(shù)據(jù)技術(shù)應(yīng)用是健康險創(chuàng)新的關(guān)鍵
在渴求數(shù)據(jù)的保險公司面前,一座座“數(shù)據(jù)孤島”是健康險行業(yè)推進(jìn)大數(shù)據(jù)應(yīng)用必須跨越的難關(guān)。 <詳情>
2021-07-30 10:25:14
國內(nèi)資訊 北京大數(shù)據(jù)研究院莫曉康:區(qū)塊鏈與隱私計算是未來25年金融科技之核動力革命
2021“光大杯”第五屆中關(guān)村“番鈦客”金融科技國際創(chuàng)新大賽在北京舉行,主題為“聚焦金融科技創(chuàng)新,打造數(shù)字金融應(yīng)用場景” <詳情>

CSDN云計算

閱讀量
閱讀排行榜