天天看點

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

本節書摘來自華章出版社《推薦系統:技術、評估及高效算法》一書中的第3章,第3.3節,作者 [ 美]弗朗西斯科·裡奇(francesco ricci)利奧·羅卡奇(lior rokach)布拉哈·夏皮拉(bracha shapira)保羅 b.坎特(paul b.kantor),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

顧名思義,基于内容的推薦是利用物品的内容資料來預測它和使用者個人資訊的相關性。基于内容的推薦系統的研究涉及計算機科學的許多方面,尤其是在資訊檢索[6]和人工智能領域。

在資訊檢索領域,推薦技術研究的想象力來自将使用者搜尋推薦結果看作一個資訊檢索的過程。在資訊檢索系統中,使用者需要給出一次性查詢資訊(經常是一個關鍵詞清單),而在資訊過濾系統,使用者的資訊需求被表示成他的個人資訊。由于用來描述物品的屬性在數量和類型上的差異,待推薦物品也會有較大差異。每個物品當然可以用一組已知數值的少量相同的屬性來表示,但是這種方法不是非常合适如web網頁、新聞、電子郵件或者文檔等非結構化資料表示的對象。在這種屬性值未明确定義的情況下,基于資訊檢索研究的文檔模型技術更有用。

從人工智能的觀點出發,推薦任務可以被映射成一個利用使用者過去知識來學習的學習問題。最簡單地,使用者的個人資訊形式為使用者指定的關鍵詞或準則,它反映了使用者長期的興趣。往往建議系統學習使用者個人資訊,而不是強迫使用者自己提供。這就廣泛應用了機器學習技術,其目标是基于過去已知并被使用者顯式或隐式地标記為是否感興趣的資訊,來學習分類新物品。給定這些已标記的物品資訊,機器學習的方法能夠生成一個預測模型,可以幫助判斷目标使用者對給定新物品是否感興趣。

3.3.1節闡述了多個物品資訊表示技術,從傳統的文本表示,到整合了本體和百科全書式知識等更先進的技術。3.3.2節讨論了适合上面描述的表示方法的推薦算法。

推薦給使用者的物品可以表示成一系列特征,也稱為屬性(attribute或property)。例如,在一個電影推薦的應用中,描述一個電影的特征有演員、導演、類型、主題等。當每個物品由一系列相同的屬性表示,并且知道這些屬性所有可能的取值時,該物品就被表示成了結構化資料。在此情況下,許多機器學習的算法可以用來學習使用者個人資訊[69]。

在大多數基于内容過濾的系統,物品表示是從web網頁、電子郵件、新聞或産品描述中抽取的文本特征。不像結構化資料,它們沒有明确定義的屬性。由于自然語言的歧義,在學習使用者個人資訊時,文本特征帶來大量混亂。問題是傳統的基于關鍵詞的個人資訊不能擷取使用者興趣的語義,因為他們主要是通過字元串比對操作來進行的。如果一個字元串或者某些文法變量同時在個人資訊和文檔中被發現,那麼比對就成功,文檔就被認為是相關的。字元串比對有如下問題:

一詞多義,一個詞有多個釋義。

同義,多個詞有相同的意思。

導緻的結果就是,由于同義詞的存在,當個人資訊不包含文檔中的準确關鍵詞時,相關的資訊就會遺漏;同時由于一詞多義,錯誤的文檔也被認為是相關的。

語義分析及其與個性化模型的結合是文獻中提到的最具有創新性和最有趣的解決問題的方法之一。主要的思路是采用知識庫,如詞典或本體,來注釋物品和表示個人資訊,由此獲得一個使用者資訊所需的語義翻譯。在3.3.1.1節,先回顧一個依賴于該模型的“傳統”系統,之後将介紹基于本體論和世界知識的語義分析技術。

3.3.1.1 基于關鍵字向量空間模型

大多數基于内容的推薦系統使用相對簡單的檢索模型,例如,關鍵字比對或者基于tf-idf權重的向量空間模型(vector space model,vsm)。向量空間模型是一個文本文檔的空間表示方法。在該模型中,每個文檔被表示成一個n維空間中的向量,每一維對應給定文檔集合詞彙表中的一個詞。形式上,每篇文檔被表示成詞權重的向量,其中權重表示這篇文檔和該詞的關聯度。讓d={d1,d2,…,dn}表示一個文檔集合或語料庫,t={t1,t2,…,tn}表示詞典,即語料庫中詞的集合。詞典t從某些标準的自然語言處理操作中擷取,如分詞、停用詞移除、變形[6]。每篇文檔dj表示為n維向量空間上的一個向量,進而dj={w1j,w2j,…,wnj},其中wkj是文檔dj中詞tk的權重。

在向量空間模型中,文檔表示有兩個問題:為單詞賦予權重和度量特征向量的相似度。常用的權重模式有基于文本實驗觀察結果的tf-idf(詞頻—逆文檔頻率)[79]:

稀有詞相關性不小于頻繁詞相關性(逆文檔頻率假設);

一篇文檔中多處出現的詞的相關性不小于隻出現一次詞的相關性;

長文檔不一定好于短文檔(歸一化假設)。

換句話說,在一篇文檔中頻繁出現(tf=詞頻)但很少出現在語料庫中其他的文檔裡(idf=逆文檔頻率)的單詞,與該文檔主題的相關性可能很大。另外,結果權重向量的歸一化防止了長文檔有更好的檢索機會的問題。tf-idf函數很好地解釋了這些假設:

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

n表示語料庫中文檔的個數,nk表示含有詞單詞tk出現至少一次的文檔集合的數量。

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

最大值是出現在文檔dj中所有單詞tz的詞頻fz,j上計算的。為了使權重落在[0,1]區間且文檔能夠用等長向量表示,利用式(3.1)擷取權重通常用餘弦歸一化方式來歸一化:

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

其實作了歸一化的假設。

如前所述,一個相似度的度量需要先确定兩個文檔的接近程度。許多相似度的度量都衍生于對兩個向量的接近程度的度量;在這些度量中,餘弦相似度被廣泛應用:

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

 

在依賴于向量空間模型的基于内容的推薦系統中,使用者個人資訊和物品都被表示成帶權重的詞向量。預測使用者對一個特定物品的興趣可以通過計算餘弦相似度得到。

許多基于關鍵詞的推薦系統發展時間相對較短,但在很多領域都可以發現它們在應用程式中的應用,如新聞、音樂、電子商務、電影等。每個領域面對不同的問題,也就需要不同的解決方案。

在web推薦系統的領域中,關于内容的著名系統有letizia[49]、personal webwatcher[62,63]、syskill&webert[70,68]、ifweb[4]、amalthea[66]和webmate[23]。letizia是一個網頁浏覽器的擴充,它跟蹤使用者浏覽行為,并依據與使用者興趣相關的關鍵詞進行個性化模組化。它依賴隐式回報來推斷使用者的喜好。例如,收藏一個網頁就表示為使用者對這個網頁感興趣的有力證據。同樣的方式,個人webwatcher從使用者通路的網頁和離開已通路網頁的連結來學習個體的興趣。它将通路的網頁作為使用者興趣的正例,未通路的網頁作為負例。amalthea使用指定的過濾工具來協助使用者發現感興趣的資訊。使用者可以通過提供與使用者興趣相關的網頁(表示為權重向量)來确定過濾器。

syskill & webert采用了相同的方法,它用128個最有代表性的詞(文檔中有代表性的詞可以用許多不同的方法确定)來表示文檔。ifweb采用了更進階的表示技術,它将資訊表示成一定形式的帶權重的語義網。它支援顯式回報,并且不僅考慮興趣,而且還考慮了顯式的非興趣。另一個有趣的方面是,它加入了一個時間衰減的機制,如給表示使用者的興趣加上時間衰減。webmate采用了另一個不同的方法來表示使用者興趣,它在不同領域通過學習由正向訓練樣例表示的關鍵詞向量構成的使用者資訊來跟蹤使用者興趣。一個n個關鍵詞的向量可以正确地表示最多n個獨立的使用者興趣。

在新聞過濾領域,著名的推薦系統有newt[87]、psun[90]、informer[91]、newsdude[12]、daily learner[13]和yournews[2]。newt(news tailor)允許使用者提供關于文章、部分章節、作者或來源的顯式和隐式回報。許多過濾工具用不同類型的資訊進行訓練,如政治類新聞過濾器、體育類新聞過濾器等。yournews是一個最近新出現的個性化新聞通路系統,使用同樣的方法為8個不同主題(國内、國際、經濟等)分别維護有一個興趣個人資訊。使用者對這些主題的興趣資訊用一個權重的原型詞向量表示,向量值從使用者浏覽的新聞的曆史記錄中抽取。使用者過去浏覽了n篇文章,抽取前100個權重了的詞來生成使用者最終的原型向量。該系統維護了一個僅考慮最近浏覽過的20篇新聞資訊的短期特征,而長期特征考慮的是過去所有浏覽過的新聞。系統可以利用這些個人資訊來顯示最近的和推薦的兩類新聞。 這裡的“recent and recommended”應該表示的是兩種推薦的形式。——譯者注

在新聞過濾系統中,學習短期和長期特征是兩種非常典型的方式。newsdude在使用者提供的感興趣新聞的初始訓練集基礎上,用基于tf-idf(餘弦相似度)的方法學習使用者短期模型,用基于樸素貝葉斯分類器的模型學習使用者的長期模型。新聞來源于雅虎新聞。同樣的daily learner無線資訊通路的學習工具,也采用一種方法來學習兩種不同的使用者模型。前者基于最近鄰的文本分類器算法來維護使用者的短期興趣特征,後者利用長時間收集到的資料,基于樸素貝葉斯分類器,來學習使用者的長期興趣特征。

在對文章和個人資訊使用更複雜表示的系統中,需要注意psun和informer。psun采用了一個可選擇的文本表示方法。初始特征由系統中使用者選擇感興趣的某些文章來提供。文本中重複出現的單詞被記錄在稱為n-gams的網絡中,這個網絡中的單詞可以互相吸引或者排斥,互相吸引程度主要取決于網絡中兩個詞共同出現的次數。每個使用者都有多個特征,它們是需要顯式回報,經過一個遺傳算法來競争産生的。informer使用一個語義網絡來同時表示使用者特征和文本。一個擴散激活技術[25]用來比較文本和使用者特征,并且為使系統行為适應變化的使用者興趣,采用一個相關的回報機制。一個純擴散激活模型是由被标記或權重的連結起來的節點組成的資料網絡。給一組源節點标記激活權重,然後不斷疊代,将源節點激活權重傳播給與它相連的其他節點,直到終止條件滿足使得網絡中的搜尋過程結束。

為了完成采用簡單的關鍵字向量空間表示的基于内容的推薦系統的研究,我們也會提到一些融合了協同和基于内容的方法的混合推薦系統,如fab[7]、webwacther[45]、profbuilder[99]、ptv[89]、content-boosted collaborative filtering[56]、cinemascreen[78]和在文獻[94]中提到的一個。

對過去15年裡主流系統的發展進行分析學習,最重要的發現是,同時對物品和使用者資訊采用基于關鍵詞的表示,并通過足夠多的資訊證明使用者興趣可用,可以準确預測使用者行為。大多數基于内容的系統被認為是建立在包括使用者興趣正例和負例文本訓練集上的文本分類器。是以推薦的準确率依賴于大量的訓練樣本,而訓練樣本的好壞又依賴于對使用者興趣的可靠的句法分析的結果。這個方法的問題就是“缺乏智能”。當要求更進階的特性時,基于關鍵詞的方法就顯得不足。如果使用者有個如“法國印象派”的關鍵詞,基于關鍵詞的方法隻能找出包含有詞“法國”和“印象派”的文檔。那麼關于claude monet或renoir展覽的文檔将不會出現在推薦集合中,即使他們可能對使用者來說更相關一些。更進階的表示政策需要為基于内容的推薦系統添加“語義智能”,它可以超越由關鍵詞提供的使用者興趣的文法證據。

下面将會探究在索引階段通過本體和廣博知識源注入知識的可能方式。

語義分析需要學習大量準确的資訊,這些資訊包括參考在外部知識基礎上定義的概念。這個方法的主要的目是提供一個有文化和語言背景知識的推薦系統,且系統具有翻譯自然語言文檔和分析内容的能力。

本節将會介紹一些現在主流政策裡所采用的語義推薦過程。這些政策大緻主

要考慮以下幾個标準:

包含知識源的類型(如詞典、本體等);

物品的注釋或表示所采用的技術;

使用者個人資訊中内容的類型;

物品使用者個人資訊比對政策。

siteif[52]是一個多語言新聞網站的個性化的工具。為了最好地表示知識,這是第一個采用基于感覺的文檔表示來對使用者興趣模組化的系統。multiwordnet是一個在表示過程包括外部知識源的系統和一個集合了英語和意大利語的多語言詞彙資料庫。每篇新聞會使用詞領域消歧(word domain disambiguation)[51]來自動關聯到一個multiwordnet的同義詞集合。使用者資訊是來自于使用者讀過的文檔中發現的語義網絡中某節點表示的同義詞集合。在比對階段,系統将文檔的同義詞表示集合和目前使用者模型作為輸入,将使用語義網絡數值技術(semantic network value technique)[92]産生的相關文檔作為預測輸出。

itr(item recommender)是一個可以在多個領域應用的物品推薦系統(如電影、音樂、書籍),它以文本的形式提供了對物品的描述(如情節摘要、概述、短摘要)[27,83]。和siteif相似,itr在學習使用者資訊的過程中集合了多語言知識,但是與詞領域消歧不同,詞感覺消歧(word sense disambiguation)采取的是基于感覺的文檔表示。多語言知識不包含來自于wordnet詞彙的本體。物品根據一個基于同義詞集合的向量空間模型進行表示,稱作同義詞袋(bags-of-synsets,bos),它是經典的詞袋模型(bags-of-words,bow)的一個擴充[8,84]。在bos模型中,同義詞集合向量不是像一個詞向量對應一篇文檔一樣。使用者資訊采用一個樸素貝葉斯二進制文本分類器可以将文本分類成感興趣和不感興趣。在訓練階段,根據條件機率估計值,可以得到更能象征使用者偏好的那些同義詞集合。文本—使用者資訊比對操作在于通過使用使用者資訊的同義詞集合的機率,計算物品屬于“感興趣”類的機率。

sewep(semantic enhancement for web personalization,用于web個性化的語義增強)[31]是一個web個性化系統,它利用日志和web站點内容的語義來實作個性化。為得到統一一緻的詞彙表,采用了特定領域的類别分類對網頁進行語義标注。類别是人工建立的,而标注的過程是自動完成的。sewep,像siteif和itr一樣,利用wordnet中的詞典知識,來“翻譯”文本的内容并支援标注/表示的過程。網頁最初被表示成從其内容中抽取的關鍵詞,然後這些關鍵詞被映射到類别中的概念。給定一個關鍵詞,基于wordnet中詞的相似度度量,用來找出與這個關鍵詞“最近”的類别的詞。sewep不會給使用者建立個性化資訊,而是發現一種導航模式。sewep的推薦引擎利用與一個模式有“語義關聯”的類别來擴充個性化網頁推薦集合,這個類别可能就是使用者感興趣的主題分類。

informed recommender[1]使用消費者産品評價給出推薦建議。系統通過作為知識表示和共享的翻譯本體,把使用者觀點轉換成一個結構化形式。本體提供了一個可控的詞表及要描述的詞與詞的關系:消費者的專業水準及對被評論的産品的使用經驗。為了這個目的,本體主要包含了兩部分:觀點的品質和産品的品質,由此形成了兩個形式化概念。一個文本挖掘過程自動地将評價中的句子映射到本體資訊結構。該系統不會為使用者建立特征,而是基于使用者請求計算推薦集,如使用者對産品特定特征的品質有所要求。informed recommender可以響應這個查詢,并且可以根據使用者關心的特征屬性推薦最好的産品。值得注意的兩個方面:一個是本體知識可以根據産品的标注對不同觀點模組化;另一個是使用者的評價描述是以自由文本的形式。

之前提到過的推薦系統interactive digital television[14],借鑒語義網的合理技術來比較使用者偏好和物品(電視節目),比傳統的語義名額更有彈性。在推薦過程中可用的電視節目使用能夠正确描述其主要屬性的中繼資料進行标注。電視領域的知識和使用者特征都采用owl本體來表示。本體—使用者特征給出了使用者偏好的表示,可以找出偏好的原因,也可以發現跟使用者興趣有關的額外知識。推薦階段采用存儲在使用者特征中的知識來發現隐藏在使用者偏好和産品之間的語義關聯。知識推理的過程和擴散激活技術被應用在給使用者建議産品。這項工作值得注意的方面是,基于扁平清單的方式不是良好結構化的資料,本體—使用者特征改進了這種方式,幫助發現新的知識。

jump系統[10,9]可以智能地将基于情景的和個性化的資訊發送給日常工作環境中做着非正常工作的知識工程師。jump使用者的資訊需求被表示成複雜的查詢,查詢可以是一個任務支撐需求,而不是一個使用者資訊。比如,一個複雜的查詢例子“我需要準備一個vikef工程的技術報告”。同時對文檔和使用者需求資訊進行語義分析,是基于其中概念是通過wordnet同義詞集合進行手工标注的領域本體。而從文檔到領域或詞典概念的映射是通過詞感覺消歧和命名實體識别自動完成的,其中在領域本體中使用了詞典标注。而使用者需求的概念和文檔的概念比對是根據他們在領域本體中的聯系。在前面的查詢例子中,概念“技術報告”和“工程”的實體及實體之間的關系都是從本體中提取的。

wordnet采用了語義消歧技術,經常用在語義翻譯上,而由于其廣泛使用,語言知識的領先地位越來越突出。另一方面,上述研究表明,僅有wordnet所帶來的巨大潛力還不足以了解使用者興趣以及應用領域中興趣的上下文。特定領域的知識是必需的。本體是應用領域形成的基礎,用于領域中的物品的語義描述、概念(如類别及其執行個體)的表示、關系(如層次關系、屬性)的定義中。總之,相比于傳統的基于内容的方法,不管是囊括了語言還是特定領域知識,抑或是基于内容的過濾方法的研究,都提供了更好、更準确的推薦結果。這也鼓勵了研究人員利用像主題詞表或本體一樣的外部知識形式化使用者興趣并将其置于上下文中,來設計研究使用者興趣的新穎的過濾方式。

相比于隻有很多詞的集合,常識和特定領域知識産生更有資訊量的特征,對于改進自然語言處理技術可能會有幫助。在學習使用者特征的過程中,相對于經典的使用内因知識的技術,注入外因知識(外部提供的)得到的效果會更好。近些年來,世界上很多的知識資訊源已經變得容易擷取。舉例來說,開放目錄工程(open directory project,odp)、yahoo!web directory、wikipedia都是通用的知識庫。

接下來簡單地回顧下利用通用知識産生新的進階特征的新方法,即使其中有些方法在學習使用者特征的情景中并沒有被使用。

顯式語義分析(explicit semantic analysis,esa)[34,35]技術利用wikipedia中的概念将自然語言文本表示成細粒度的語義概念。wikipedia的文章定義了概念,如italy、計算機科學、推薦系統。這類方法是受增加對大量客觀世界知識進行文本表示的需求而産生的。将wikipedia作為知識源有幾個好處,如社群成員的不斷完善、有多種語言可使用,及其高度準确性[37]。經驗顯示,esa對計算詞國文本的相關性和在不同資料集上的文本分類都有本質的改進。這也表明esa确實提高了傳統基于bow的檢索模型[30]。

另一項有意思的方法是wikify!系統提出的給文本添加語義[59,26],也就是可以識别文本中的重要概念(關鍵詞抽取),并将這些概念和相應的wikipedia網頁相連(詞義消歧)。wikify!系統給出的這些标注可以自動地增加與文本内容語義相關的資訊。為了比較系統給出的标注和wikipedia貢獻者提供的人工标注的品質,研究人員設計了一個類似圖靈測試的試驗,要求參與者區分出人工和自動标注。結果顯示,計算機和人工給出的标注很難區分,即說明wikify!系統的标注品質很高。

據我們所知,還沒有推薦系統(基于内容)可以利用前面提到的進階語義文本表示的方法學習到使用者現實世界的真實的特征。在幾個任務中利用如語義關聯、文本分類、檢索等先進的文本表示方法擷取到的正向結果顯示在推薦任務中也能得到類似的正向結果。這看起來是一個有前景但還未被探讨的研究領域。

在文獻[47]中,為了提高netfilx prize 比賽的推薦準确度,wikipedia常被用來估計電影之間的相似度。更具體地,wikipedia文本的内容和超連結被用來衡量電影之間的相似度。基于包含每兩部電影之間相似度的相似度矩陣,使用者預測的估計值使用k近鄰和僞svd算法進行計算。這些方法都是将wikipedia的相似度估計與訓練集的評價合并,在測試集上進行預測估計。遺憾的是,這些技術對于整體的精确度的提高沒有非常重要的改進。

文獻[88]介紹了一個很複雜但還沒有完成的過濾rss種子和電子郵件的方法。更具體地,作者介紹了利用wikipedia從使用者文檔集合中自動提取産生使用者特征的方法。這個方法主要由4個步驟構成,即wikipedia索引、特征産生、問題導向索引資料庫建立和資訊過濾。特征産生階段利用隐式表示使用者感興趣主題的曆史文檔集合。從這些文檔中抽取特征詞,并使用esa算法得到它們和wikipedia相似的文章。這時系統從文章中抽取出wikipedia的分類清單,聚合這些類别,進而得到對應于使用者個人資訊中一個主題的子類别。使用者也可以檢視自己的使用者特征,并且可以增加和修改這些類别,進而改善主題特征。對于使用者特征的每個主題,建立一個問題導向的wikipedia語料庫并索引,來表示過濾資訊庫。

文獻[85]介紹了一個在内容分析階段利用wikipedia的不同方法。更确切地說,該方法是一個向基于内容推薦系統灌輸知識的過程,希望通過增加文化背景知識,相比于經典的基于詞的方法,提高内容分析的準确性。百科全書式的知識有利于識别特定的依賴領域的概念或命名實體,尤其是在那些領域本體應用不可行的上下文中。wikipedia的實體在詞空間模型的基礎上一直使用語義向量進行模組化[77],該模型基于詞空間、向量空間的點表示一組語義概念,如詞和文檔。詞之間的關系通過使用擴散激活算法産生新特征,這些新特征可以用在推薦過程中的多個方面。

通常用于推導基于内容的使用者個人資訊的機器學習技術也會非常适合用于文本分類[82]。在用來文本分類的機器學習方法中,推導過程通過從一個訓練文檔集合(文檔已經被标記為他們所屬的分類)中學習類别的特征,自動建立一個文本分類器。

學習使用者特征的問題可以轉換為一個二進制文本分類任務:每一個文檔都根據使用者的偏好被分類成感興趣或不感興趣。是以,類别集合為c={c+,c-},其中,c+是正類(使用者喜歡的),c-是負類(使用者不喜歡的)。

下面将回顧在基于内容的推薦系統中使用最多的學習算法。它們能夠學習一個能對每個使用者興趣模組化的函數。這些方法通常要求使用者賦給文檔一個相關的分數來标記文檔,自動推斷出使用者的個人資訊,并用于過濾過程根據使用者的偏好對文檔排序。

樸素貝葉斯是一個歸納式學習的機率方法,屬于一般的貝葉斯分類器。這類方法基于之前的觀察資料産生一個機率模型。該模型估計文檔d屬于類别c的後驗機率p(cd)。這個估計是基于先驗機率p(c),即觀測到一個文檔屬于類别c的機率,p(dc)即在給定類别c的情況下觀測到文檔d的機率,和p(d)即觀測到文檔d的機率。使用這些機率,應用貝葉斯定理來計算p(cd):

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

為了對文檔d分類,選擇機率最高的作為類别:

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

  p(d)與所有類别cj相等時,一般将其去掉。當我們不知道p(dc)和p(c)的值時,我們利用觀測到的訓練資料對它們進行估計。然而,這樣估計p(dc)是有問題的,因為相同的文檔不太可能再次出現:觀測資料普遍不足以産生好的機率。樸素貝葉斯分類器通過獨立假設簡化了該模型,進而克服了這個問題,該獨立假設為:在觀測文檔d中,在給定類别下,所有的詞或記号之間是條件獨立的。文檔中,這些詞的個體機率是分别估計的,而不是将整個文檔作為一個整體。條件獨立的假設明顯地違反了現實世界的資料,盡管如此,樸素貝葉斯分類器在實際文本分類經驗上确實做得不錯[48,11]。

有兩個被普遍使用的樸素貝葉斯分類模型:多元伯努利事件模型和多項式事件模型[54]。兩個模型都将文檔看作一個在語料庫詞彙表v上的向量值,向量中的每個實體表示它在這個文檔中是否出現,是以模型都損失了關于詞順序的資訊。多元伯努利事件模型将每個詞編碼為一個二進制屬性,即一個詞出現或沒出現,而多項式時間模型計算一個詞在一個文檔中出現的次數。經驗結果顯示,多項式樸素貝葉斯公式的表現勝過多元伯努利模型。尤其在巨大的詞彙表下,這個效果比較明顯[54]。多項式事件模型計算p(cjdj)方式如下:

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

n(di,tk)表示詞或記号tk在文檔di出現的次數。這裡要注意,僅是文檔di中包含的詞彙表子集vdi的機率相乘,而不是整個語料庫中詞彙表v中所有的詞的機率相乘。

實作樸素貝葉斯的一個關鍵步驟是估計詞的機率p(tkcj)。為了使機率估計對于很少出現的詞更有健壯性,需要采用一個簡單的事件計數的平滑方法修正這個機率。一個很重要的平滑作用就是它避免了在訓練資料的某一類中,一個沒有出現過的詞機率為0的情況。一個相當簡單的平滑方法是基于常用拉普拉斯估計(如一個類中,所有的詞計數都給它加1)。witten-bell[100]是另一個更有趣的方法。盡管樸素貝葉斯的表現不如其他的統計學習的方法,如基于近鄰的分類器或者支援向量機,但它在那些對計算機率要求不那麼高的分類任務上表現得非常好。樸素貝葉斯方法的另一個好處是它的高效和相比于其他學習方法更容易實施。

盡管基于多項式的模型分類器在詞彙表數量巨大的情況下,優于基于多元的模型,他們的表現在以下情況下也不令人滿意:1)訓練集合中的文檔不一樣長,是以導緻參數估計粗糙;2)處理稀少的類(很少的訓練樣本可用)。這些情況都頻繁出現在使用者特征模組化的任務中,其中訓練文檔的長度無法給出假設,擷取合适大小的負例樣本(如類别c-的樣本)是個問題。事實上,使用者不會馬上察覺到向系統提供負回報時效果會立竿見影[81],訓練集的類别c+樣本(使用者喜歡的)可能經常都比類别c-(使用者不喜歡的)更大。在文獻[46]中,作者提出了一個多元泊松模型的樸素貝葉斯文本分類器,它采取比前面提到的條件機率更合理的參數估計。我們已經将該方法用到[36]中提到的使用者特征任務中。

樸素貝葉斯分類器用在許多基于内容的推薦系統中,如skill&webert[70,68]、newsdude[12]、daily learner[13]、libra[65]和itr[27,83]。

相關回報是一個資訊檢索中應用的技術,它幫助使用者逐漸完善基于之前搜尋結果的查詢。它是由使用者根據所需資訊檢索到的相關文檔,給出的進一步使用者回報組成的。

相關回報及其在文本分類中的融合和著名的rocchio公式[75],都普遍被基于内容的推薦系統所采用。基本的原則是允許使用者給推薦系統根據使用者的資訊需求推薦的文本打分。這種形式的回報随後被用來逐漸改善使用者特征,或者為訓練将使用者個人資訊作為分類器的學習算法所使用。

一些線性分類器由類别的顯式描述(或原始文檔)組成[82]。rocchio算法是一個可用于推導出這種線性的且帶有描述風格的分類器。該算法将文檔表示成向量,是以有相似内容的文檔有相似的向量。向量的每個成分對應着文檔中的一項,比較典型的是一個詞。而每個成分的權重使用tf-idf計算得到。在類别集合c中,對每個類,通過合并文檔向量(正例和負例樣本)得到每個類的原型向量來完成學習過程。對新文檔d分類,計算文檔d表示的向量與每個類的原型向量的相似度,然後把d配置設定給與原型相似度最高的類。

更正式地,rocchio算法計算一個分類ci的向量ci→=〈ω1i,…,ωti〉(t是詞彙表,訓練集裡不用詞的集合),公式如下:

《推薦系統:技術、評估及高效算法》一3.3 基于内容的推薦系統的現狀

 其中ωkj是文檔dj中詞tk的tf-idf權重,posi和negi是指定類别cj中的正例和負例樣本集合。β和γ是控制參數,可以用來設定所有正例和負例樣本的相關程度。計算文檔向量dj→與每個類别的原型向量ci→的相似度,和ci相似度最高的類别為c,則将c作為文檔dj→的類别。基于rocchio的分類算法沒有任何理論基礎,也不保證有效或收斂[69]。

相關回報已經在許多基于内容的推薦系統中使用,如yournews[2]、fab[7]和newt[87]。

用在基于内容的推薦系統中的還有其他的學習算法,接下來簡要地介紹一些非常重要的算法。完整的概述在[64,69,82]中有介紹。

在決策樹裡,所有内部節點用詞來标記,從它們出發的分支被标記為對測試文檔中詞的權重的測算,葉子節點用類别标記。決策樹的學習是通過遞歸地分割訓練資料(即文本文檔)為子資料集,直到這些子資料集僅包含一個類别為止。資料分割是把文檔所含将要标記的詞作為内部節點,在其上做權重計算的測算得到的。選擇哪個詞作為分割的操作,普遍采用的是資訊增益或資訊熵準則[101]。syskill&webert[70,68]推薦系統使用的是決策樹。

決策規則分類器和決策樹類似,他們都采用上面介紹的相似的方法遞歸地分割資料。規則學習器的一個優點是,相比于決策樹學習器,它可以生成一個更簡潔的分類器。規則學習的方法常試圖從所有可能的規則(如可以正确将訓練樣本全部正确分類的規則)中根據一些最小化準則挑選“最好”的規則。

最近鄰算法,也稱為懶惰學習器,将訓練資料簡單地存儲在記憶體裡,對于一個新的樣本,通過一個相似函數比較它與存儲的所有樣本的相似度,進而對它進行分類。确定“最近鄰”或“k-最近鄰”物品,未分類的類标簽來源于最近鄰的類标簽。這時就需要相似度函數,例如,當樣本用vsm表示的時候,采用餘弦相似度。最近鄰算法非常有效,雖然其最大的缺點是在分類時效率低下,因為缺少一個真正的訓練階段,是以拖延了分類時間。daily learner[13]和qucikstep[58]使用最近鄰算法建立一個使用者短期興趣模型,并将論文的語義标注和類别名中的本體分别關聯起來。

繼續閱讀