鮑治國(guó),王海安,胡士偉,馬西鋒
(河南財(cái)經(jīng)政法大學(xué)計(jì)算機(jī)與信息工程學(xué)院,河南鄭州,450046)
近年來(lái)隨著社會(huì)信息化的不斷發(fā)展,許多問(wèn)題都可以在網(wǎng)絡(luò)上找到答案,所以人們對(duì)檢索內(nèi)容質(zhì)量的要求也隨之提高。并且隨著人們審美能力的逐步提高,對(duì)個(gè)性化的追求也越來(lái)越強(qiáng)烈。智能化推薦[1,2]在這種背景下應(yīng)運(yùn)而生,而智能化推薦又依賴(lài)于機(jī)器對(duì)人類(lèi)自然語(yǔ)言的處理。在自然語(yǔ)言處理中,經(jīng)常會(huì)涉及到如何度量?jī)蓚€(gè)文本的相似度的問(wèn)題。諸如在對(duì)話(huà)系統(tǒng)和信息檢索系統(tǒng)等問(wèn)題中,如何衡量語(yǔ)素或句子之間的相關(guān)性,就成了問(wèn)題所在。文本相似度的評(píng)估方法有基于關(guān)鍵詞匹配的傳統(tǒng)方法,如N-gram相似度[3,4]、文本映射到向量空間,再利用余弦相似度等方法。還有深度學(xué)習(xí)的方式[5,6],如:基于用戶(hù)點(diǎn)擊數(shù)據(jù)的深度學(xué)習(xí)語(yǔ)義匹配模型,基于卷積神經(jīng)網(wǎng)絡(luò)的ConvNet等。
本文將對(duì)基于向量空間的TF-IDF算法[7-9]進(jìn)行介紹,并引出對(duì)TF-IDF算法進(jìn)行改進(jìn)的基于概率模型的BM25算法[10-12]。TF-IDF是Term Frequency-Inverse Document Frequency的英文縮寫(xiě)。BM是Best Match最佳匹配的縮寫(xiě),25指的是第25次算法迭代。
(1)在使用TF-IDF算法的文章中詞語(yǔ)的重要性與詞語(yǔ)在文章中出現(xiàn)的位置不相關(guān)。
(2)對(duì)區(qū)別文檔最有意義的詞語(yǔ)應(yīng)該是那些在文檔中出現(xiàn)頻率高,而在整個(gè)文檔集合的其他文檔中出現(xiàn)頻率少。
(3)文檔中詞的出現(xiàn)是彼此獨(dú)立的,不存在依賴(lài)出現(xiàn)。
表1 符號(hào)說(shuō)明
文檔集合中所有文檔的數(shù)目n(qi) 文檔集合中包含語(yǔ)素qi的文檔數(shù)目D文檔集合d文檔集合中某一單個(gè)文檔Wi 對(duì)應(yīng)語(yǔ)素qi的相關(guān)權(quán)重fi 語(yǔ)素qi在某個(gè)文檔中出現(xiàn)的頻率k1, k2,b 參數(shù)dl 對(duì)應(yīng)文檔d的長(zhǎng)度avgdl 文檔集合中所有文檔的平均長(zhǎng)度N
TF-IDF算法是一種基于對(duì)查詢(xún)語(yǔ)句中語(yǔ)素的詞頻進(jìn)行統(tǒng)計(jì),并將結(jié)果用于評(píng)估該詞或語(yǔ)素對(duì)一個(gè)文檔集合中某個(gè)文檔的相關(guān)性的算法。他的思想在于隨著該詞或語(yǔ)素在某個(gè)文檔中出現(xiàn)的頻率的增加而提高權(quán)重(公式(2)),隨著它在詞庫(kù)中出現(xiàn)頻率的增加而減小權(quán)重(公式(3))。也即一個(gè)詞在詞庫(kù)中出現(xiàn)的次數(shù)越多,說(shuō)明這個(gè)詞語(yǔ)越普遍,因此它的區(qū)分度和作用就不大。比如:文檔庫(kù)中的文檔中都有“權(quán)重”一詞,那么以該詞為關(guān)鍵詞進(jìn)行相關(guān)性評(píng)分就不太合適了。而一個(gè)詞在單個(gè)文檔中出現(xiàn)的次數(shù)越多,說(shuō)明該詞是文章的關(guān)鍵詞的可能性越大,所以應(yīng)提高相應(yīng)的權(quán)重。
在公式(2)中,fi表示語(yǔ)素qi在某個(gè)文檔中出現(xiàn)的頻率,dl表示在該文檔中的總詞數(shù)。
IDF意為逆向文檔頻率,某一特定詞語(yǔ)的IDF,可以由文本庫(kù)中總的文件數(shù)目與包含該詞的文件數(shù)目相除,再將得到的商取對(duì)數(shù),它的作用是為語(yǔ)素加上相應(yīng)的權(quán)重,如公式(3)所示。若包含語(yǔ)素q 的文件數(shù)越少,那么IDF就越大,說(shuō)明了該語(yǔ)素的區(qū)分力度較大。所以當(dāng)某一個(gè)語(yǔ)素在少數(shù)文本中大量出現(xiàn)時(shí),它的權(quán)重會(huì)隨之變大。反之當(dāng)某一個(gè)語(yǔ)素在大量文本中出現(xiàn)時(shí)他的權(quán)重就下降。
在公式(3)中N為語(yǔ)料庫(kù)中文檔的數(shù)量,n (qi)表示包含該詞的文檔數(shù)目。此外TF與IDF之間,沒(méi)有必然聯(lián)系,因?yàn)門(mén)F表示語(yǔ)素對(duì)于單個(gè)文檔的評(píng)分,而IDF是基于整個(gè)文檔集合中的語(yǔ)素對(duì)其進(jìn)行加權(quán)。由于TF-IDF算法將詞頻作為一個(gè)重要的標(biāo)準(zhǔn),這就出現(xiàn)了一個(gè)問(wèn)題,即語(yǔ)素中的無(wú)關(guān)語(yǔ)素會(huì)對(duì)結(jié)果進(jìn)行干擾,比如助動(dòng)詞和介詞之類(lèi)的。因此,我們必須做停用詞的操作,將一些語(yǔ)素中的助詞和介詞去掉。此外還有詞頻飽和度問(wèn)題(詞頻沒(méi)有上限)也沒(méi)進(jìn)行解決,實(shí)際上當(dāng)一篇文章中的一個(gè)關(guān)鍵詞出現(xiàn)20次左右時(shí)他的評(píng)分應(yīng)該不再增長(zhǎng),否則詞頻得分的無(wú)限擴(kuò)張會(huì)影響評(píng)分的準(zhǔn)確性。
TTF-IDF算法作為傳統(tǒng)詞頻統(tǒng)計(jì)方法,它是一種簡(jiǎn)單,直接結(jié)果與實(shí)際情況相符的算法,能夠基本滿(mǎn)足使用。不足之處如下:
(1)該算法對(duì)于文檔集合中含有關(guān)鍵詞的文檔進(jìn)行評(píng)分時(shí)才能夠有精確的結(jié)果。例如在詩(shī)詞推薦中,由于存在大量抽象寫(xiě)意性描寫(xiě)和同義詞替換。如考慮太陽(yáng)與日的關(guān)系時(shí),TF-IDF往往是不盡人意的。
(2)僅以詞頻作為關(guān)鍵詞重要性的指示標(biāo)準(zhǔn),對(duì)于一些文檔而言可行,但對(duì)于文檔中關(guān)鍵詞出現(xiàn)次數(shù)較少的的文章,無(wú)法較好地得到合適的評(píng)分。按照傳統(tǒng)的TF-IDF算法,往往一些生僻詞的評(píng)分會(huì)比較高,因此生僻詞常常被作為關(guān)鍵詞而被賦予極大的權(quán)重。
(3)在計(jì)算詞頻得分時(shí),并未考慮到文章整體長(zhǎng)度對(duì)于詞頻的影響,比如長(zhǎng)篇文檔中出現(xiàn)一百個(gè)語(yǔ)素詞和短篇文檔中出現(xiàn)一百個(gè)語(yǔ)素詞是不一樣的。因此,算法對(duì)于長(zhǎng)文章而言并不友好。
(4)存在詞頻飽和度問(wèn)題。假設(shè)在兩份描述同一件事物的文檔中,關(guān)鍵詞也一樣,但是由于一份文檔中出現(xiàn)關(guān)鍵詞次數(shù)過(guò)多而導(dǎo)致兩份文檔的評(píng)分相差幾倍明顯是不合理的,詞頻的決定因素應(yīng)該被加以限制。
BM25算法(基于概率模型)也作為一種搜索相關(guān)性評(píng)分,并對(duì)相關(guān)性得分進(jìn)行加權(quán)求和的算法。他是在TF-IDF算法的基礎(chǔ)上,通過(guò)加入k1,k2,b等控制參數(shù)來(lái)解決詞頻飽和度問(wèn)題以及文本長(zhǎng)度歸一化的問(wèn)題。他需要對(duì)相關(guān)搜索語(yǔ)句進(jìn)行分詞處理,然后對(duì)每個(gè)分詞結(jié)果和文檔進(jìn)行相關(guān)性處理得到評(píng)分,然后將語(yǔ)素qi的相關(guān)性評(píng)分進(jìn)行加權(quán)求和。
從公式(6)中可以看出k1的作用在于提高詞頻在相關(guān)性評(píng)分中的作用,可以看出k1越大,那么詞頻的重要性越高,也就是說(shuō)它控制著詞頻飽和度的上升速度。k2為語(yǔ)素qi在搜索語(yǔ)句Q中出現(xiàn)的次數(shù),因?yàn)樵诮^大多數(shù)情況下語(yǔ)素qi在Q中只出現(xiàn)一次,所以公式可以簡(jiǎn)化為:
公式中dl表示文檔d的長(zhǎng)度,avgdl表示語(yǔ)料庫(kù)中的文檔的平均長(zhǎng)度。b的作用從公式中分析出是為了控制文章歸一化的程度,b 等于零時(shí)會(huì)禁用歸一化,參數(shù)b控制著文檔長(zhǎng)度對(duì)相關(guān)性影響的大小。b越大,文檔長(zhǎng)度對(duì)相關(guān)性評(píng)分的影響就越大,b 越小那么文檔長(zhǎng)度對(duì)于語(yǔ)素的評(píng)分影響就越小。因?yàn)槲臋n越長(zhǎng),那么含關(guān)鍵詞的可能性就越大,所以在文檔中語(yǔ)素qi出現(xiàn)同樣次數(shù)的情況下還應(yīng)考慮文本歸一化的程度。因此在使用中,應(yīng)多次通過(guò)對(duì)不同長(zhǎng)度的文檔進(jìn)行測(cè)驗(yàn),得到合適的參數(shù)大小。從公式的改進(jìn)可以看出BM25算法很好的解決了詞頻飽和的問(wèn)題和文檔歸一劃問(wèn)題。
最終的評(píng)分公式如下(9)所示:
然后觀察文檔長(zhǎng)度對(duì)于兩個(gè)算法精確度的影響。首先來(lái)看TF-IDF算法在文檔長(zhǎng)度歸一化方面的表現(xiàn),如圖1所示。隨著文檔的長(zhǎng)度越來(lái)越長(zhǎng),算法的評(píng)分波動(dòng)越來(lái)越大,說(shuō)明文檔的長(zhǎng)度對(duì)于算法的得分情況影響很大,文檔的長(zhǎng)度直接影響了文檔的相關(guān)性評(píng)分,這會(huì)導(dǎo)致算法在評(píng)估時(shí)的精確度下降,使得算法的表現(xiàn)很差。BM25算法的歸一化表現(xiàn),如圖2所示。文檔長(zhǎng)度在[500,1000]的區(qū)間內(nèi),文檔的長(zhǎng)度對(duì)于得分基本沒(méi)什么影響,所以文檔長(zhǎng)度對(duì)于BM25算法而言影響并不大,BM25算法的表現(xiàn)在實(shí)際情況中良好。
圖1 TF-IDF算法文檔長(zhǎng)度對(duì)評(píng)分的影響
圖2 BM25算法文檔長(zhǎng)度對(duì)評(píng)分的影響
關(guān)于詞頻飽和度問(wèn)題的比較,由于對(duì)文檔的得分評(píng)估中應(yīng)該設(shè)定文檔的詞頻上限,BM25在TF-IDF上增加了幾個(gè)可調(diào)節(jié)的參數(shù),使得它在應(yīng)用上更加靈活和強(qiáng)大,具有較高的實(shí)用性。詞頻對(duì)得分的影響可以控制在一定范圍內(nèi),而不是像TF-IDF那樣持續(xù)增大。如圖3和圖4之間的比較,可以得到對(duì)于TF-IDF算法而言,詞頻對(duì)于評(píng)分的影響是線性增長(zhǎng)的,詞頻會(huì)無(wú)限制的影響得分,而B(niǎo)M25算法中詞頻對(duì)得分的影響會(huì)收斂,所以詞頻到達(dá)一定程度后就不再對(duì)評(píng)分有過(guò)大的影響,也就解決了詞頻飽和度問(wèn)題,這是BM25算法較于TF算法精準(zhǔn)的原因。
圖3 TF-IDF算法詞頻對(duì)評(píng)分的影響
圖4 BM25算法詞頻對(duì)評(píng)分的影響
BM25算法在TF-IDF的基礎(chǔ)上提供了參數(shù)來(lái)控制詞頻飽和度和文章歸一化,從而使得算法在進(jìn)行相關(guān)性評(píng)分時(shí)更加合理。而且BM25算法由兩部分組成,分別是語(yǔ)素分析方法、語(yǔ)素權(quán)重判別法,還有語(yǔ)素和文檔的相關(guān)性判斷方法。他的方法組合并不是固定的,具有很好的靈活性。因此可以通過(guò)使用不同的搜索和評(píng)判相關(guān)性的方法進(jìn)行組合。在實(shí)際應(yīng)用中可以根據(jù)相應(yīng)的參數(shù)來(lái)靈活地調(diào)節(jié)算法。
由于BM25算法并不能理解語(yǔ)意,本質(zhì)上它只是一種基于關(guān)鍵詞匹配的相關(guān)性分析算法,所以目前對(duì)于BM25的算法應(yīng)用依賴(lài)于已有的特征項(xiàng),必須在所推薦的數(shù)據(jù)結(jié)構(gòu)對(duì)象上加入標(biāo)簽,或根據(jù)文本信息與標(biāo)簽的相似度分析來(lái)實(shí)現(xiàn)??梢愿鶕?jù)用戶(hù)點(diǎn)擊或收藏內(nèi)容的標(biāo)簽,結(jié)合他們被點(diǎn)擊或者搜索的次數(shù)加以分析,進(jìn)而達(dá)到智能化推薦。目前絕大多數(shù)具有內(nèi)容推送功能的應(yīng)用在早期的時(shí)候,比如淘寶、小紅書(shū)、抖音、微博等,將對(duì)用戶(hù)所瀏覽,收藏或多次點(diǎn)擊的商品或短視頻等元素進(jìn)行標(biāo)簽化,基于相關(guān)特征進(jìn)行提權(quán)結(jié)合,將標(biāo)簽作為該商品的內(nèi)容特征,同時(shí)對(duì)用戶(hù)購(gòu)買(mǎi)的商品也做特征提取。通過(guò)上述方式來(lái)為用戶(hù)推薦更多內(nèi)容。以上是基于內(nèi)容的歷史推薦,他可以推薦用戶(hù)感興趣的商品,但卻無(wú)法跳出標(biāo)簽的限制。也就是說(shuō),無(wú)法為用戶(hù)提供新的感興趣的產(chǎn)品,因此還需要與協(xié)同過(guò)濾的推薦系統(tǒng)相結(jié)合,通過(guò)相似用戶(hù)集群和相似的商品進(jìn)行推薦,或者利用word2vec這種已經(jīng)訓(xùn)練完善的開(kāi)源訓(xùn)練向量數(shù)據(jù)集,來(lái)進(jìn)行一些語(yǔ)義上的分析與擴(kuò)展,補(bǔ)足BM25局限于關(guān)鍵詞而在語(yǔ)義分析上不足的問(wèn)題,提高語(yǔ)義的泛化性進(jìn)而達(dá)到更完善的推薦。Word2vec的相似詞語(yǔ)的效果[13],如表2所示。
表2 Word2vec同義詞聯(lián)想
針對(duì)自然語(yǔ)言處理中文本相似度評(píng)估問(wèn)題,本文分析了TF-IDF算法和BM25算法,分別介紹了這兩種算法的基本原理。之后分析了TF-IDF算法的文檔歸一化問(wèn)題、詞頻飽和度問(wèn)題,并引出了他的改進(jìn)方法BM25算法。接著通過(guò)實(shí)驗(yàn)分析這兩種算法的實(shí)際表現(xiàn)效果,對(duì)于TF-IDF算法而言,詞頻對(duì)于評(píng)分的影響是線性增長(zhǎng)的,詞頻會(huì)無(wú)限制的影響得分;而B(niǎo)M25算法中詞頻對(duì)得分的影響會(huì)收斂,對(duì)于BM25算法而言文檔的長(zhǎng)度對(duì)于得分基本沒(méi)什么影響的結(jié)論。這些都說(shuō)明了BM25算法的優(yōu)越性。最后介紹了BM25算法在推薦系統(tǒng)中的應(yīng)用,并提出了通過(guò)Word2vec解決BM25算法語(yǔ)義泛化的問(wèn)題。