本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及人工智能技術(shù)領(lǐng)域,尤其涉及用于壓縮主題模型的方法和裝置。
背景技術(shù):
人工智能(artificialintelligence),英文縮寫為ai。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語言識(shí)別、圖像識(shí)別、自然語言處理和專家系統(tǒng)等。
主題模型(topicmodeling)是一種常見的機(jī)器學(xué)習(xí)應(yīng)用,主要用于對(duì)文本進(jìn)行分類?!半[含狄利克雷分布”(latentdirichletallocation,lda)模型和“概率隱語義分析”(probabilisticlatentsemanticanalysis,plsa)模型等重要的主題模型,廣泛應(yīng)用于文本搜索,廣告推薦等領(lǐng)域。隨著互聯(lián)網(wǎng)的普及,主題模型的訓(xùn)練數(shù)據(jù)也從過去小規(guī)模的文檔集,遷移到現(xiàn)今大規(guī)模的網(wǎng)絡(luò)語料庫。因此訓(xùn)練數(shù)據(jù)變得更加復(fù)雜,詞表中單詞數(shù)量大幅增加,導(dǎo)致需要更大容量的主題模型,設(shè)置更多的隱含主題來抓起長尾的語義信息。但隨著主題數(shù)量的增加,也帶來了一些問題:1.不同主題之間存在較大的重復(fù),這種冗余讓單個(gè)主題的可解釋性變差,以及整體模型的使用效率降低;2.訓(xùn)練出來的模型參數(shù)過多,不僅帶來存儲(chǔ)上的困難,還使得主題模型的后續(xù)計(jì)算負(fù)擔(dān)過于沉重。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的目的在于提出一種改進(jìn)的用于壓縮主題模型的方法和裝置,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請(qǐng)實(shí)施例提供了一種用于壓縮主題模型的方法,該方法包括:獲取待壓縮的主題模型,其中,主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布;將主題模型進(jìn)行格式轉(zhuǎn)換得到第一主題模型,其中,第一主題模型的每一行代表一個(gè)主題在各個(gè)單詞上的分布,并且每一個(gè)主題上的單詞按照單詞在該主題上的數(shù)量由大到小的順序排序;從第一主題模型中選取任意兩個(gè)主題組成主題對(duì),并將至少一個(gè)主題對(duì)組成主題對(duì)集合,并確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度;將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型;將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型,其中,壓縮后的主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。
在一些實(shí)施例中,確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度,包括:確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間的杰卡德相似度。
在一些實(shí)施例中,確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度,包括:根據(jù)主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間重復(fù)的單詞的概率確定相似度。
在一些實(shí)施例中,將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型,包括:通過并查集算法確定非連接的主題集合;將非連接的主題集合內(nèi)的主題進(jìn)行合并生成第二主題模型。
在一些實(shí)施例中,在將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型之前,該方法還包括:對(duì)于第二主題模型中的每個(gè)主題,確定每個(gè)單詞在該主題下的概率分布;從第二主題模型中刪除概率分布小于預(yù)定的概率閾值的單詞。
第二方面,本申請(qǐng)實(shí)施例提供了一種用于壓縮主題模型的裝置,該裝置包括:獲取單元,用于獲取待壓縮的主題模型,其中,主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布;第一轉(zhuǎn)換單元,用于將主題模型進(jìn)行格式轉(zhuǎn)換得到第一主題模型,其中,第一主題模型的每一行代表一個(gè)主題在各個(gè)單詞上的分布,并且每一個(gè)主題上的單詞按照單詞在該主題上的數(shù)量由大到小的順序排序;相似度確定單元,用于從第一主題模型中選取任意兩個(gè)主題組成主題對(duì),并將至少一個(gè)主題對(duì)組成主題對(duì)集合,并確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度;合并單元,用于將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型;第二轉(zhuǎn)換單元,用于將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型,其中,壓縮后的主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。
在一些實(shí)施例中,相似度確定單元進(jìn)一步用于:確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間的杰卡德相似度。
在一些實(shí)施例中,相似度確定單元進(jìn)一步用于:根據(jù)主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間重復(fù)的單詞的概率確定相似度。
在一些實(shí)施例中,合并單元進(jìn)一步用于:通過并查集算法確定非連接的主題集合;將非連接的主題集合內(nèi)的主題進(jìn)行合并生成第二主題模型。
在一些實(shí)施例中,該裝置還包括刪除單元,用于:在將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型之前,對(duì)于第二主題模型中的每個(gè)主題,確定每個(gè)單詞在該主題下的概率分布;從第二主題模型中刪除概率分布小于預(yù)定的概率閾值的單詞。
第三方面,本申請(qǐng)實(shí)施例提供了一種設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)如第一方面中任一所述的方法。
第四方面,本申請(qǐng)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如第一方面中任一所述的方法。
本申請(qǐng)實(shí)施例提供的用于壓縮主題模型的方法和裝置,通過將主題模型進(jìn)行格式轉(zhuǎn)換后,根據(jù)各主題之間的相似度將相似度大于相似度閾值的主題進(jìn)行合并,再將合并后的主題模型轉(zhuǎn)換成初始格式,生成了壓縮后的主題模型。從而便于主題模型的存儲(chǔ)并提高后續(xù)使用主題模型進(jìn)行文檔應(yīng)用時(shí)的計(jì)算效率。
附圖說明
通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
圖2是根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的一個(gè)實(shí)施例的流程圖;
圖3a是根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的待壓縮的主題模型的樣例;
圖3b是根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的一個(gè)實(shí)施例應(yīng)用效果圖;
圖4是根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的又一個(gè)實(shí)施例的流程圖;
圖5a、5b是根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的又一個(gè)實(shí)施例應(yīng)用效果圖;
圖6是根據(jù)本申請(qǐng)的用于壓縮主題模型的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖7是適于用來實(shí)現(xiàn)本申請(qǐng)實(shí)施例的服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請(qǐng)。
圖1示出了可以應(yīng)用本申請(qǐng)的用于壓縮主題模型的方法或用于壓縮主題模型的裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。
如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104和服務(wù)器105。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶可以使用終端設(shè)備101、102、103通過網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊客戶端應(yīng)用,例如網(wǎng)頁瀏覽器應(yīng)用、購物類應(yīng)用、搜索類應(yīng)用、即時(shí)通信工具、郵箱客戶端、社交平臺(tái)軟件等。
終端設(shè)備101、102、103可以是具有顯示屏并且支持網(wǎng)頁瀏覽的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、電子書閱讀器、mp3播放器(movingpictureexpertsgroupaudiolayeriii,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、mp4(movingpictureexpertsgroupaudiolayeriv,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。
服務(wù)器105可以是提供各種服務(wù)的服務(wù)器,例如對(duì)終端設(shè)備101、102、103上顯示的網(wǎng)頁提供支持的后臺(tái)推薦服務(wù)器。后臺(tái)推薦服務(wù)器可以對(duì)接收到的樣本數(shù)據(jù)進(jìn)行分析等處理生成主題模型,并可接收終端設(shè)置發(fā)送的關(guān)鍵詞查詢請(qǐng)求,并將處理結(jié)果(例如用戶所偏好的與關(guān)鍵詞有關(guān)的文章)反饋給終端設(shè)備。
需要說明的是,本申請(qǐng)實(shí)施例所提供的用于壓縮主題模型的方法一般由服務(wù)器105執(zhí)行,相應(yīng)地,用于壓縮主題模型的裝置一般設(shè)置于服務(wù)器105中。
應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。也可以不需要終端設(shè)備,直接由服務(wù)器根據(jù)預(yù)存的主題模型進(jìn)行壓縮處理。
繼續(xù)參考圖2,示出了根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的一個(gè)實(shí)施例的流程200。該用于壓縮主題模型的方法,包括以下步驟:
步驟201,獲取待壓縮的主題模型。
在本實(shí)施例中,用于壓縮主題模型的方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器)可以通過第三方服務(wù)器獲取已經(jīng)訓(xùn)練好的待壓縮的主題模型,也可以接收終端發(fā)送的樣本數(shù)據(jù)訓(xùn)練出主題模型。該主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。作為示例,一個(gè)訓(xùn)練好的主題模型,格式可以是{word_idtopic_id:counttopic_id:count...},每一行代表一個(gè)單詞在各主題上的分布。word_id表示單詞的序號(hào),topic_id表示主題的序號(hào),count是該單詞在相應(yīng)主題下的數(shù)量。該主題模型的樣例如圖3a所示,方框301中的數(shù)值(1,2,3)是行號(hào),僅為顯示方便。方框302中為word_id(即,單詞的序號(hào)),方框303為topic_id:count(即,主題的序號(hào):該單詞在相應(yīng)主題下的數(shù)量)。可選的,一個(gè)單詞在各個(gè)主題上的分布還可以是一個(gè)單詞在各個(gè)主題上的出現(xiàn)的概率。
步驟202,將主題模型進(jìn)行格式轉(zhuǎn)換得到第一主題模型。
在本實(shí)施例中,第一主題模型的每一行代表一個(gè)主題在各個(gè)單詞上的分布,并且每一個(gè)主題上的單詞按照單詞在該主題上的數(shù)量由大到小的順序排序。即將初始的單詞-主題格式的主題模型轉(zhuǎn)換為主題-單詞格式。具體的主題-單詞格式為{(word_id,topic_count),(word_id,topic_count),...},即每一行代表一個(gè)主題在各個(gè)單詞上的分布,word_id表示單詞的序號(hào),topic_count表示相應(yīng)的單詞在該主題上的數(shù)量,并按topic_count降序排列。
步驟203,從第一主題模型中選取任意兩個(gè)主題組成主題對(duì),并將至少一個(gè)主題對(duì)組成主題對(duì)集合,并確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度。
在本實(shí)施例中,主題模型進(jìn)行的是無監(jiān)督的訓(xùn)練,在主題數(shù)量設(shè)置過大或者過小的情況下,都會(huì)出現(xiàn)多個(gè)主題間嚴(yán)重的冗余。對(duì)于任意兩個(gè)主題,需要考慮其前k個(gè)單詞(即,按單詞在該主題上的數(shù)量由大到小的順序取k個(gè)單詞,k是預(yù)設(shè)的自然數(shù),例如30)的分布,可通過杰卡德相似度(jaccardsimilarity)或加權(quán)杰卡德相似度(weightedjaccardsimilarity)確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度,包括:確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間的杰卡德相似度。對(duì)于任意兩個(gè)主題,計(jì)算它們前k個(gè)單詞的jaccardsimilarity,定義為:
j(a,b)=(|a∩b|)/(|a∪b|)=(|a∩b|)/(|a|+|b|-|a∩b|)(公式1)
進(jìn)行計(jì)算的主題模型是主題-單詞格式{(word_id,topic_count),(word_id,topic_count),...},其中,j(a,b)為兩個(gè)主題的相似度,a=(a1,a2,…,ak)和b=(b1,b2,…,bk)分別是兩個(gè)主題提取前k個(gè)word_id組成的向量。分子上|a∩b|的物理含義為,重復(fù)出現(xiàn)在兩個(gè)主題前k個(gè)單詞中的單詞數(shù)量;分母上|a∪b|的物理含義為兩個(gè)主題前k個(gè)單詞中所總共涵蓋的單詞數(shù)量。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度,包括:根據(jù)主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間重復(fù)的單詞的概率確定相似度。對(duì)于任意兩個(gè)主題,計(jì)算它們前k個(gè)單詞的weightedjaccardsimilarity,定義為:
進(jìn)行計(jì)算的主題模型是主題-單詞格式{(word_id,topic_count),(word_id,topic_count),...},為了進(jìn)一步得到每個(gè)單詞的概率分布,對(duì)每個(gè)主題下的單詞topic_count進(jìn)行統(tǒng)計(jì),得到該主題下單詞的總計(jì)數(shù)topic_sum,進(jìn)行計(jì)算的主題模型的概率形式為{(word_id,topic_count/topic_sum),(word_id,topic_count/topic_sum),...}。在weightedjaccardsimilarity計(jì)算中,,j(x,y)為兩個(gè)主題的相似度,x=(x1,x2,…,xm,xm+1,…,xk)和y=(y1,y2,…,ym,ym+1,…,yk)分別是兩個(gè)主題提取前k個(gè)單詞對(duì)應(yīng)的概率topic_count/topic_sum組成的向量。其中,0≤m≤k表示重復(fù)出現(xiàn)在兩個(gè)主題前k個(gè)單詞中的單詞數(shù)量,即xi與yi在1≤i≤m范圍內(nèi)對(duì)應(yīng)的單詞word_id是一樣的。分子上
步驟204,將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型。
在本實(shí)施例中,對(duì)主題模型中任意兩個(gè)主題ti和tj(1≤i,j≤n,n是總共的主題數(shù)量)都會(huì)進(jìn)行相似性估計(jì)。如果它們的相似性≥用戶設(shè)定的相似度閾值,即認(rèn)定這兩個(gè)主題之間存在較大的冗余,對(duì)冗余的主題對(duì)(ti,tj)進(jìn)行記錄。所有冗余的主題對(duì){(ti,tj),…}被記錄下來,進(jìn)行冗余主題的合并,并去除所有的空行,得到去重后的主題-單詞格式的第二主題模型。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型,包括:通過并查集算法確定非連接的主題集合;將非連接的主題集合內(nèi)的主題進(jìn)行合并生成第二主題模型。并查集(unionfind)是一種樹型的數(shù)據(jù)結(jié)構(gòu),用于處理一些非連接集合(disjointsets)的合并及查詢問題。常常在使用中以森林來表示。集就是讓每個(gè)元素構(gòu)成一個(gè)單元素的集合,也就是按一定順序?qū)儆谕唤M的元素所在的集合合并。
并查集算法的輸入是冗余的主題對(duì),為了更好的解釋并查集算法,我們使用一個(gè)簡(jiǎn)單的例子進(jìn)行說明。假設(shè)當(dāng)前輸入為{(1,2),(2,3),(4,5),(6,7),(1,7)},其中(1,2)表示主題1和主題2之間存在較大的冗余,(2,3)表示主題2和主題3之間存在較大的冗余,以此類推。并查集算法首先需要計(jì)算索引映射表(indicesmap),即列出每個(gè)主題所在的輸入主題對(duì)中的索引,得到的indicesmap為{1:[0,4],2:[0,1],3:[1],4:[2],5:[2],6:[3],7:[3,4]},其中1:[0,4]表示主題1映射到輸入的冗余主題對(duì)的第0和4個(gè)索引上。接著需要計(jì)算索引的非連接集合的非連接索引(disjointindices),每個(gè)集合代表其內(nèi)部所索引的主題對(duì)是冗余的,得到的非連接冗余主題對(duì)的索引集合disjointindices為{set(0,1,3,4),set(2)},其中set(0,1,3,4)表示冗余主題對(duì)中的第0、1、3和4個(gè)索引上的主題對(duì)連接性冗余。最后基于disjointindices,可從索引得到主題的集合,得到的非連接的主題集合disjointset為{set(1,2,3,6,7),set(4,5)},其中set(1,2,3,6,7)表示主題1、2、3、6和7連接性冗余。
經(jīng)并查集算法得到的非連接的主題集合,在主題-單詞格式的主題模型基礎(chǔ)上,對(duì)于每一個(gè)集合,選取集合內(nèi)第一個(gè)主題作為根主題,把集合內(nèi)剩余主題合并到該根主題上,并在主題-單詞格式的模型上刪除該集合內(nèi)剩余主題。繼續(xù)使用以上的簡(jiǎn)單例子進(jìn)行說明,經(jīng)并查集算法得到的disjointset為{set(1,2,3,6,7),set(4,5)},其中set(1,2,3,6,7)表示主題1、2、3、6和7存在連接性冗余,選取主題1作為根主題,把主題2、3、6和7合并到主題1上,在主題-單詞格式的模型上刪除主題2、3、6和7所在行的內(nèi)容,set(4,5)表示主題4和5存在連接性冗余,選取主題4作為根主題,把主題5合并到主題4上,在主題-單詞格式的模型上刪除主題5所在行的內(nèi)容。對(duì)所有的非連接的主題集合進(jìn)行合并后,去除所有的空行,得到去重后的主題-單詞格式的主題模型。
步驟205,將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型,其中,壓縮后的主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。
在本實(shí)施例中,合并后的主題模型是主題-單詞格式,值得注意的是在主題融合過程中,冗余主題之間進(jìn)行了合并,主題的總數(shù)量變少,且部分主題的序號(hào)也已經(jīng)改變。因主題的序號(hào)并無具體的物理含義,只是為了區(qū)分主題,這種序號(hào)上的改變是可以接受的。考慮到初始輸入的主題模型是單詞-主題格式,為了與輸入保持一致,經(jīng)過格式轉(zhuǎn)換把合并后的主題模型轉(zhuǎn)換為單詞-主題格式,進(jìn)行輸出。
繼續(xù)參見圖3b,圖3b是根據(jù)本申請(qǐng)的用于壓縮主題模型的方法的一個(gè)實(shí)施例應(yīng)用效果圖。預(yù)先基于2016年的新聞數(shù)據(jù)構(gòu)造了一份新聞標(biāo)簽推斷的數(shù)據(jù)庫,對(duì)本申請(qǐng)?zhí)岢龅闹黝}模型壓縮技術(shù)進(jìn)行驗(yàn)證。輸入的模型是一個(gè)在海量網(wǎng)絡(luò)語料上訓(xùn)練出來的主題模型,總共有5000個(gè)主題,分別使用jaccardsimilarity和weightedjaccardsimilarity兩種策略對(duì)主題之間的冗余性進(jìn)行評(píng)估,k和相似度閾值分別設(shè)為30和0.4,得到了兩個(gè)合并壓縮后的主題模型,實(shí)驗(yàn)結(jié)果如圖3b所示。初始的主題模型,有5000個(gè)主題,新聞標(biāo)簽推斷的準(zhǔn)確率為89.24%;使用jaccardsimilarity策略合并壓縮后的主題模型有4798個(gè)主題,新聞標(biāo)簽推斷的準(zhǔn)確率為89.30%;使用weightedjaccardsimilarity方法合并壓縮后的主題模型有4537個(gè)主題,新聞標(biāo)簽推斷的準(zhǔn)確率為89.74%,相比初始模型準(zhǔn)確率提升了0.50%。這些實(shí)驗(yàn)結(jié)果表明,使用主題模型合并壓縮技術(shù),不僅可以降低主題之間的冗余度,還可以進(jìn)一步提升主題模型在一些任務(wù)上的性能。
本申請(qǐng)的上述實(shí)施例提供的方法通過將主題模型中相似度大于相似度閾值的主題進(jìn)行合并,得到壓縮后的主題模型,能夠降低存儲(chǔ)空間并提高了后續(xù)應(yīng)用時(shí)的推斷準(zhǔn)確率。
進(jìn)一步參考圖4,其示出了用于壓縮主題模型的方法的又一個(gè)實(shí)施例的流程400。該用于壓縮主題模型的方法的流程400,包括以下步驟:
步驟401,獲取待壓縮的主題模型。
步驟402,將主題模型進(jìn)行格式轉(zhuǎn)換得到第一主題模型。
步驟403,從第一主題模型中選取任意兩個(gè)主題組成主題對(duì),并將至少一個(gè)主題對(duì)組成主題對(duì)集合,并確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度。
步驟404,將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型。
步驟401-404與步驟201-204基本相同,因此不再贅述。
步驟405,對(duì)于第二主題模型中的每個(gè)主題,確定每個(gè)單詞在該主題下的概率分布。
在本實(shí)施例中,步驟404中的相似度閾值可以為100%,即,不使用合并壓縮而直接用初始訓(xùn)練好的主題模型采用步驟406進(jìn)行壓縮。也可以在使用合并壓縮后再采用步驟406進(jìn)行進(jìn)一步壓縮。在步驟402中把初始的單詞-主題格式的模型轉(zhuǎn)換為主題-單詞格式。作為示例,具體的主題-單詞格式可以為{(word_id,topic_count),(word_id,topic_count),...},word_id表示單詞的序號(hào),topic_count表示相應(yīng)的單詞在該主題的數(shù)量,即每一行代表一個(gè)主題在單詞上的分布,并按topic_count降序排列。主題模型是主題-單詞格式{(word_id,topic_count),(word_id,topic_count),...},考慮到每個(gè)主題所包含的單詞數(shù)以及每個(gè)單詞的計(jì)數(shù)都不一樣,為此對(duì)每個(gè)主題下的單詞topic_count進(jìn)行統(tǒng)計(jì),得到該主題下單詞的總計(jì)數(shù)topic_sum。可進(jìn)一步得到每個(gè)單詞在該主題下的概率分布{(word_id,topic_count/topic_sum),(word_id,topic_count/topic_sum),...}。
步驟406,從第二主題模型中刪除概率分布小于預(yù)定的概率閾值的單詞。
在本實(shí)施例中,因?yàn)槌跏嫉闹黝}-單詞格式中每個(gè)主題的分布已按topic_count降序排列,所以該主題的概率分布依然是按topic_count/topic_sum降序排列。因每個(gè)主題原則上在整個(gè)詞表上的都有分布,在海量訓(xùn)練數(shù)據(jù)的情況下,主題中會(huì)包含很多低頻單詞,而這些低頻詞對(duì)整個(gè)主題表達(dá)的影響很小。為了存儲(chǔ)和計(jì)算效率,需要從模型中刪除這些影響力很小的低頻詞條目,對(duì)模型進(jìn)行壓縮。對(duì)每個(gè)主題,從末尾考慮每個(gè)單詞的概率,如果所占比例小于預(yù)定的概率閾值,即刪去該(word_id,topic_count)條目,按著從后(低頻)往前(高頻)的順序,完成模型的壓縮。
步驟407,將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型,其中,壓縮后的主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。
步驟407與步驟205基本相同,因此不再贅述。
為了驗(yàn)證主題模型的壓縮技術(shù),也對(duì)初始的主題模型(有5000個(gè)主題),以及去重后的主題模型(使用默認(rèn)的weightedjaccardsimilarity方法,有4537個(gè)主題),在新聞標(biāo)簽推斷數(shù)據(jù)集上進(jìn)行了測(cè)試。概率閾值設(shè)為了0(即無壓縮),1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,實(shí)驗(yàn)結(jié)果如圖5a及圖5b所示。
圖5a及圖5b中顯示了隨著概率閾值的改變,壓縮后主題模型中剩余的總條目相比初始模型的比例(柱狀圖),以及相應(yīng)的新聞標(biāo)簽推斷的準(zhǔn)確率(曲線)。實(shí)驗(yàn)結(jié)果顯示,在僅剩余4%條目的情況下,壓縮后的主題模型依然可以取得與原始模型相似的新聞標(biāo)簽推斷準(zhǔn)確率。
從圖4中可以看出,與圖2對(duì)應(yīng)的實(shí)施例相比,本實(shí)施例中的用于壓縮主題模型的方法的流程400突出了對(duì)低頻詞進(jìn)行刪除的步驟。由此,本實(shí)施例描述的方案不僅可以提升主題模型的存儲(chǔ)效率,還可以在保證主題模型性能的前提下,進(jìn)一步提升主題模型的后續(xù)計(jì)算效率。
進(jìn)一步參考圖6,作為對(duì)上述各圖所示方法的實(shí)現(xiàn),本申請(qǐng)?zhí)峁┝艘环N用于壓縮主題模型的裝置的一個(gè)實(shí)施例,該裝置實(shí)施例與圖2所示的方法實(shí)施例相對(duì)應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖6所示,本實(shí)施例的用于壓縮主題模型的裝置600包括:獲取單元601、第一轉(zhuǎn)換單元602、相似度確定單元603、合并單元604和第二轉(zhuǎn)換單元605。其中,獲取單元601用于獲取待壓縮的主題模型,其中,主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布;第一轉(zhuǎn)換單元602用于將主題模型進(jìn)行格式轉(zhuǎn)換得到第一主題模型,其中,第一主題模型的每一行代表一個(gè)主題在各個(gè)單詞上的分布,并且每一個(gè)主題上的單詞按照單詞在該主題上的數(shù)量由大到小的順序排序;相似度確定單元603用于從第一主題模型中選取任意兩個(gè)主題組成主題對(duì),并將至少一個(gè)主題對(duì)組成主題對(duì)集合,并確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度;合并單元604用于將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型;第二轉(zhuǎn)換單元605用于將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型,其中,壓縮后的主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。
在本實(shí)施例中,用于壓縮主題模型的裝置600的獲取單元601、第一轉(zhuǎn)換單元602、相似度確定單元603、合并單元604和第二轉(zhuǎn)換單元605的具體處理可以參考圖2對(duì)應(yīng)實(shí)施例中的步驟201、步驟202、步驟203、步驟204和步驟205。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,相似度確定單元603進(jìn)一步用于:確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間的杰卡德相似度。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,相似度確定單元603進(jìn)一步用于:根據(jù)主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題上的單詞之間重復(fù)的單詞的概率確定相似度。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,合并單元604進(jìn)一步用于:通過并查集算法確定非連接的主題集合;將非連接的主題集合內(nèi)的主題進(jìn)行合并生成第二主題模型。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,裝置600還包括刪除單元,用于:在將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型之前,對(duì)于第二主題模型中的每個(gè)主題,確定每個(gè)單詞在該主題下的概率分布;從第二主題模型中刪除概率分布小于預(yù)定的概率閾值的單詞。
在本實(shí)施例中,下面參考圖7,其示出了適于用來實(shí)現(xiàn)本申請(qǐng)實(shí)施例的服務(wù)器的計(jì)算機(jī)系統(tǒng)700的結(jié)構(gòu)示意圖。圖7示出的服務(wù)器僅僅是一個(gè)示例,不應(yīng)對(duì)本申請(qǐng)實(shí)施例的功能和使用范圍帶來任何限制。
如圖7所示,計(jì)算機(jī)系統(tǒng)700包括中央處理單元(cpu)701,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)702中的程序或者從存儲(chǔ)部分708加載到隨機(jī)訪問存儲(chǔ)器(ram)703中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。在ram703中,還存儲(chǔ)有系統(tǒng)700操作所需的各種程序和數(shù)據(jù)。cpu701、rom702以及ram703通過總線704彼此相連。輸入/輸出(i/o)接口705也連接至總線704。
以下部件連接至i/o接口705:包括鍵盤、鼠標(biāo)等的輸入部分706;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚(yáng)聲器等的輸出部分707;包括硬盤等的存儲(chǔ)部分708;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分709。通信部分709經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器710也根據(jù)需要連接至i/o接口705。可拆卸介質(zhì)711,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器710上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分708。
特別地,根據(jù)本公開的實(shí)施例,上文參考流程圖描述的過程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本公開的實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括承載在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過通信部分709從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)711被安裝。在該計(jì)算機(jī)程序被中央處理單元(cpu)701執(zhí)行時(shí),執(zhí)行本申請(qǐng)的方法中限定的上述功能。需要說明的是,本申請(qǐng)所述的計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或者是上述兩者的任意組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子可以包括但不限于:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)訪問存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本申請(qǐng)中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。而在本申請(qǐng)中,計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括但不限于電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于:無線、電線、光纜、rf等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
描述于本申請(qǐng)實(shí)施例中所涉及到的單元可以通過軟件的方式實(shí)現(xiàn),也可以通過硬件的方式來實(shí)現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括獲取單元、第一轉(zhuǎn)換單元、相似度確定單元、合并單元和第二轉(zhuǎn)換單元。其中,這些單元的名稱在某種情況下并不構(gòu)成對(duì)該單元本身的限定,例如,獲取單元還可以被描述為“獲取待壓縮的主題模型的單元”。
作為另一方面,本申請(qǐng)還提供了一種計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以是上述實(shí)施例中描述的裝置中所包含的;也可以是單獨(dú)存在,而未裝配入該裝置中。上述計(jì)算機(jī)可讀介質(zhì)承載有一個(gè)或者多個(gè)程序,當(dāng)上述一個(gè)或者多個(gè)程序被該裝置執(zhí)行時(shí),使得該裝置:獲取待壓縮的主題模型,其中,主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布;將主題模型進(jìn)行格式轉(zhuǎn)換得到第一主題模型,其中,第一主題模型的每一行代表一個(gè)主題在各個(gè)單詞上的分布,并且每一個(gè)主題上的單詞按照單詞在該主題上的數(shù)量由大到小的順序排序;從第一主題模型中選取任意兩個(gè)主題組成主題對(duì),并將至少一個(gè)主題對(duì)組成主題對(duì)集合,并確定主題對(duì)集合中每個(gè)主題對(duì)的兩個(gè)主題之間的相似度;將相似度大于相似度閾值的主題對(duì)進(jìn)行合并生成第二主題模型;將第二主題模型進(jìn)行格式轉(zhuǎn)換得到壓縮后的主題模型,其中,壓縮后的主題模型的每一行代表一個(gè)單詞在各個(gè)主題上的分布。
以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。