鮑治國,王海安,胡士偉,馬西鋒
(河南財經(jīng)政法大學(xué)計算機與信息工程學(xué)院,河南鄭州,450046)
近年來隨著社會信息化的不斷發(fā)展,許多問題都可以在網(wǎng)絡(luò)上找到答案,所以人們對檢索內(nèi)容質(zhì)量的要求也隨之提高。并且隨著人們審美能力的逐步提高,對個性化的追求也越來越強烈。智能化推薦[1,2]在這種背景下應(yīng)運而生,而智能化推薦又依賴于機器對人類自然語言的處理。在自然語言處理中,經(jīng)常會涉及到如何度量兩個文本的相似度的問題。諸如在對話系統(tǒng)和信息檢索系統(tǒng)等問題中,如何衡量語素或句子之間的相關(guān)性,就成了問題所在。文本相似度的評估方法有基于關(guān)鍵詞匹配的傳統(tǒng)方法,如N-gram相似度[3,4]、文本映射到向量空間,再利用余弦相似度等方法。還有深度學(xué)習(xí)的方式[5,6],如:基于用戶點擊數(shù)據(jù)的深度學(xué)習(xí)語義匹配模型,基于卷積神經(jīng)網(wǎng)絡(luò)的ConvNet等。
本文將對基于向量空間的TF-IDF算法[7-9]進(jìn)行介紹,并引出對TF-IDF算法進(jìn)行改進(jìn)的基于概率模型的BM25算法[10-12]。TF-IDF是Term Frequency-Inverse Document Frequency的英文縮寫。BM是Best Match最佳匹配的縮寫,25指的是第25次算法迭代。
(1)在使用TF-IDF算法的文章中詞語的重要性與詞語在文章中出現(xiàn)的位置不相關(guān)。
(2)對區(qū)別文檔最有意義的詞語應(yīng)該是那些在文檔中出現(xiàn)頻率高,而在整個文檔集合的其他文檔中出現(xiàn)頻率少。
(3)文檔中詞的出現(xiàn)是彼此獨立的,不存在依賴出現(xiàn)。

表1 符號說明

文檔集合中所有文檔的數(shù)目n(qi) 文檔集合中包含語素qi的文檔數(shù)目D文檔集合d文檔集合中某一單個文檔Wi 對應(yīng)語素qi的相關(guān)權(quán)重fi 語素qi在某個文檔中出現(xiàn)的頻率k1, k2,b 參數(shù)dl 對應(yīng)文檔d的長度avgdl 文檔集合中所有文檔的平均長度N
TF-IDF算法是一種基于對查詢語句中語素的詞頻進(jìn)行統(tǒng)計,并將結(jié)果用于評估該詞或語素對一個文檔集合中某個文檔的相關(guān)性的算法。他的思想在于隨著該詞或語素在某個文檔中出現(xiàn)的頻率的增加而提高權(quán)重(公式(2)),隨著它在詞庫中出現(xiàn)頻率的增加而減小權(quán)重(公式(3))。也即一個詞在詞庫中出現(xiàn)的次數(shù)越多,說明這個詞語越普遍,因此它的區(qū)分度和作用就不大。比如:文檔庫中的文檔中都有“權(quán)重”一詞,那么以該詞為關(guān)鍵詞進(jìn)行相關(guān)性評分就不太合適了。而一個詞在單個文檔中出現(xiàn)的次數(shù)越多,說明該詞是文章的關(guān)鍵詞的可能性越大,所以應(yīng)提高相應(yīng)的權(quán)重。

在公式(2)中,fi表示語素qi在某個文檔中出現(xiàn)的頻率,dl表示在該文檔中的總詞數(shù)。
IDF意為逆向文檔頻率,某一特定詞語的IDF,可以由文本庫中總的文件數(shù)目與包含該詞的文件數(shù)目相除,再將得到的商取對數(shù),它的作用是為語素加上相應(yīng)的權(quán)重,如公式(3)所示。若包含語素q 的文件數(shù)越少,那么IDF就越大,說明了該語素的區(qū)分力度較大。所以當(dāng)某一個語素在少數(shù)文本中大量出現(xiàn)時,它的權(quán)重會隨之變大。反之當(dāng)某一個語素在大量文本中出現(xiàn)時他的權(quán)重就下降。

在公式(3)中N為語料庫中文檔的數(shù)量,n (qi)表示包含該詞的文檔數(shù)目。此外TF與IDF之間,沒有必然聯(lián)系,因為TF表示語素對于單個文檔的評分,而IDF是基于整個文檔集合中的語素對其進(jìn)行加權(quán)。由于TF-IDF算法將詞頻作為一個重要的標(biāo)準(zhǔn),這就出現(xiàn)了一個問題,即語素中的無關(guān)語素會對結(jié)果進(jìn)行干擾,比如助動詞和介詞之類的。因此,我們必須做停用詞的操作,將一些語素中的助詞和介詞去掉。此外還有詞頻飽和度問題(詞頻沒有上限)也沒進(jìn)行解決,實際上當(dāng)一篇文章中的一個關(guān)鍵詞出現(xiàn)20次左右時他的評分應(yīng)該不再增長,否則詞頻得分的無限擴張會影響評分的準(zhǔn)確性。
TTF-IDF算法作為傳統(tǒng)詞頻統(tǒng)計方法,它是一種簡單,直接結(jié)果與實際情況相符的算法,能夠基本滿足使用。不足之處如下:
(1)該算法對于文檔集合中含有關(guān)鍵詞的文檔進(jìn)行評分時才能夠有精確的結(jié)果。例如在詩詞推薦中,由于存在大量抽象寫意性描寫和同義詞替換。如考慮太陽與日的關(guān)系時,TF-IDF往往是不盡人意的。
(2)僅以詞頻作為關(guān)鍵詞重要性的指示標(biāo)準(zhǔn),對于一些文檔而言可行,但對于文檔中關(guān)鍵詞出現(xiàn)次數(shù)較少的的文章,無法較好地得到合適的評分。按照傳統(tǒng)的TF-IDF算法,往往一些生僻詞的評分會比較高,因此生僻詞常常被作為關(guān)鍵詞而被賦予極大的權(quán)重。
(3)在計算詞頻得分時,并未考慮到文章整體長度對于詞頻的影響,比如長篇文檔中出現(xiàn)一百個語素詞和短篇文檔中出現(xiàn)一百個語素詞是不一樣的。因此,算法對于長文章而言并不友好。
(4)存在詞頻飽和度問題。假設(shè)在兩份描述同一件事物的文檔中,關(guān)鍵詞也一樣,但是由于一份文檔中出現(xiàn)關(guān)鍵詞次數(shù)過多而導(dǎo)致兩份文檔的評分相差幾倍明顯是不合理的,詞頻的決定因素應(yīng)該被加以限制。
BM25算法(基于概率模型)也作為一種搜索相關(guān)性評分,并對相關(guān)性得分進(jìn)行加權(quán)求和的算法。他是在TF-IDF算法的基礎(chǔ)上,通過加入k1,k2,b等控制參數(shù)來解決詞頻飽和度問題以及文本長度歸一化的問題。他需要對相關(guān)搜索語句進(jìn)行分詞處理,然后對每個分詞結(jié)果和文檔進(jìn)行相關(guān)性處理得到評分,然后將語素qi的相關(guān)性評分進(jìn)行加權(quán)求和。


從公式(6)中可以看出k1的作用在于提高詞頻在相關(guān)性評分中的作用,可以看出k1越大,那么詞頻的重要性越高,也就是說它控制著詞頻飽和度的上升速度。k2為語素qi在搜索語句Q中出現(xiàn)的次數(shù),因為在絕大多數(shù)情況下語素qi在Q中只出現(xiàn)一次,所以公式可以簡化為:

公式中dl表示文檔d的長度,avgdl表示語料庫中的文檔的平均長度。b的作用從公式中分析出是為了控制文章歸一化的程度,b 等于零時會禁用歸一化,參數(shù)b控制著文檔長度對相關(guān)性影響的大小。b越大,文檔長度對相關(guān)性評分的影響就越大,b 越小那么文檔長度對于語素的評分影響就越小。因為文檔越長,那么含關(guān)鍵詞的可能性就越大,所以在文檔中語素qi出現(xiàn)同樣次數(shù)的情況下還應(yīng)考慮文本歸一化的程度。因此在使用中,應(yīng)多次通過對不同長度的文檔進(jìn)行測驗,得到合適的參數(shù)大小。從公式的改進(jìn)可以看出BM25算法很好的解決了詞頻飽和的問題和文檔歸一劃問題。
最終的評分公式如下(9)所示:

然后觀察文檔長度對于兩個算法精確度的影響。首先來看TF-IDF算法在文檔長度歸一化方面的表現(xiàn),如圖1所示。隨著文檔的長度越來越長,算法的評分波動越來越大,說明文檔的長度對于算法的得分情況影響很大,文檔的長度直接影響了文檔的相關(guān)性評分,這會導(dǎo)致算法在評估時的精確度下降,使得算法的表現(xiàn)很差。BM25算法的歸一化表現(xiàn),如圖2所示。文檔長度在[500,1000]的區(qū)間內(nèi),文檔的長度對于得分基本沒什么影響,所以文檔長度對于BM25算法而言影響并不大,BM25算法的表現(xiàn)在實際情況中良好。

圖1 TF-IDF算法文檔長度對評分的影響

圖2 BM25算法文檔長度對評分的影響
關(guān)于詞頻飽和度問題的比較,由于對文檔的得分評估中應(yīng)該設(shè)定文檔的詞頻上限,BM25在TF-IDF上增加了幾個可調(diào)節(jié)的參數(shù),使得它在應(yīng)用上更加靈活和強大,具有較高的實用性。詞頻對得分的影響可以控制在一定范圍內(nèi),而不是像TF-IDF那樣持續(xù)增大。如圖3和圖4之間的比較,可以得到對于TF-IDF算法而言,詞頻對于評分的影響是線性增長的,詞頻會無限制的影響得分,而BM25算法中詞頻對得分的影響會收斂,所以詞頻到達(dá)一定程度后就不再對評分有過大的影響,也就解決了詞頻飽和度問題,這是BM25算法較于TF算法精準(zhǔn)的原因。

圖3 TF-IDF算法詞頻對評分的影響

圖4 BM25算法詞頻對評分的影響
BM25算法在TF-IDF的基礎(chǔ)上提供了參數(shù)來控制詞頻飽和度和文章歸一化,從而使得算法在進(jìn)行相關(guān)性評分時更加合理。而且BM25算法由兩部分組成,分別是語素分析方法、語素權(quán)重判別法,還有語素和文檔的相關(guān)性判斷方法。他的方法組合并不是固定的,具有很好的靈活性。因此可以通過使用不同的搜索和評判相關(guān)性的方法進(jìn)行組合。在實際應(yīng)用中可以根據(jù)相應(yīng)的參數(shù)來靈活地調(diào)節(jié)算法。
由于BM25算法并不能理解語意,本質(zhì)上它只是一種基于關(guān)鍵詞匹配的相關(guān)性分析算法,所以目前對于BM25的算法應(yīng)用依賴于已有的特征項,必須在所推薦的數(shù)據(jù)結(jié)構(gòu)對象上加入標(biāo)簽,或根據(jù)文本信息與標(biāo)簽的相似度分析來實現(xiàn)。可以根據(jù)用戶點擊或收藏內(nèi)容的標(biāo)簽,結(jié)合他們被點擊或者搜索的次數(shù)加以分析,進(jìn)而達(dá)到智能化推薦。目前絕大多數(shù)具有內(nèi)容推送功能的應(yīng)用在早期的時候,比如淘寶、小紅書、抖音、微博等,將對用戶所瀏覽,收藏或多次點擊的商品或短視頻等元素進(jìn)行標(biāo)簽化,基于相關(guān)特征進(jìn)行提權(quán)結(jié)合,將標(biāo)簽作為該商品的內(nèi)容特征,同時對用戶購買的商品也做特征提取。通過上述方式來為用戶推薦更多內(nèi)容。以上是基于內(nèi)容的歷史推薦,他可以推薦用戶感興趣的商品,但卻無法跳出標(biāo)簽的限制。也就是說,無法為用戶提供新的感興趣的產(chǎn)品,因此還需要與協(xié)同過濾的推薦系統(tǒng)相結(jié)合,通過相似用戶集群和相似的商品進(jìn)行推薦,或者利用word2vec這種已經(jīng)訓(xùn)練完善的開源訓(xùn)練向量數(shù)據(jù)集,來進(jìn)行一些語義上的分析與擴展,補足BM25局限于關(guān)鍵詞而在語義分析上不足的問題,提高語義的泛化性進(jìn)而達(dá)到更完善的推薦。Word2vec的相似詞語的效果[13],如表2所示。

表2 Word2vec同義詞聯(lián)想
針對自然語言處理中文本相似度評估問題,本文分析了TF-IDF算法和BM25算法,分別介紹了這兩種算法的基本原理。之后分析了TF-IDF算法的文檔歸一化問題、詞頻飽和度問題,并引出了他的改進(jìn)方法BM25算法。接著通過實驗分析這兩種算法的實際表現(xiàn)效果,對于TF-IDF算法而言,詞頻對于評分的影響是線性增長的,詞頻會無限制的影響得分;而BM25算法中詞頻對得分的影響會收斂,對于BM25算法而言文檔的長度對于得分基本沒什么影響的結(jié)論。這些都說明了BM25算法的優(yōu)越性。最后介紹了BM25算法在推薦系統(tǒng)中的應(yīng)用,并提出了通過Word2vec解決BM25算法語義泛化的問題。