本發(fā)明涉及文本建模領(lǐng)域,更具體的,涉及一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法。
背景技術(shù):
使用貝葉斯方法進(jìn)行無結(jié)構(gòu)文本建模的主要技術(shù)是主題模型。傳統(tǒng)主題模型的方法體系是建立在詞袋模型的假設(shè)下,將文本定義為隱含主題空間上的向量分布,而隱含主題又定義為詞典上的向量分布。當(dāng)使用主題模型時,可以將文檔映射到隱含主題空間,使用主題分布作為文檔向量,從而進(jìn)行文本檢索、聚類、分類等數(shù)據(jù)挖掘任務(wù)。主題模型通常假設(shè)文本中的單詞是無序的,即詞袋模型假設(shè),這一假設(shè)能夠幫助大規(guī)模的文本進(jìn)行快速有效的建模。然而,文本是基于詞語,句子,甚至段落的序列數(shù)據(jù),這些序列特征構(gòu)成了文本本身復(fù)雜的語義和機(jī)構(gòu)信息。有些方法利用了詞語的有序性對文本進(jìn)行建模,例如基于n-gram的貝葉斯技術(shù),以及基于循環(huán)神經(jīng)網(wǎng)絡(luò)的文本建模技術(shù)。
然而上述現(xiàn)有技術(shù)存在以下缺點:盡管主題模型被廣泛應(yīng)用于文本建模,但是句子之間的連貫一致性,即句子層面的序列信息,卻被忽略。句子間的連貫性,是文本數(shù)據(jù)中天然存在的結(jié)構(gòu)化信息,能夠很好地反映文本中的語義信息。這種現(xiàn)象可以理解為句子之間的語義連貫性,體現(xiàn)在當(dāng)前某個句子的主題是依賴于它前面的某幾個句子。而且,這種主題層面的依賴并不是等同的,是存在一定的權(quán)重大小的:即當(dāng)前句子的主題分布,是加權(quán)依賴它前面的若干句子。這就必須提出一套能夠同時考慮句子之間這種語義連貫性和其加權(quán)依賴性的方法,以確保能夠充分利用句子之間豐富的序列信息,從而更加有效計算文本語義向量。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。
為此,本發(fā)明的目的在于,提供一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法,通過提供一種能夠同時利用文檔中單詞信息,以及句子之間的序列信息,對文檔進(jìn)行有效建模;并利用聚焦機(jī)制對句子語義連貫性進(jìn)行權(quán)重學(xué)習(xí),可充分利用句子間主題的加權(quán)依賴性,從而學(xué)習(xí)到更加有效的文本向量。
為實現(xiàn)上述目的,本發(fā)明提供了一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法,包括:
步驟一,對于文檔di,設(shè)置C值,所述C表示當(dāng)前句子受多少之前句子的影響值;
步驟二,設(shè)定文檔di的主題分布為θd,文檔di在主題空間上的每一維含量為ρk,令θd為RABP(G0,π)中的基礎(chǔ)分布G0;
步驟三,遍歷文檔di中的每一個句子
步驟四,遍歷文檔中的每一個句子與句子中的單詞,計算文檔di在主題空間上的每一維含量為ρk;
步驟五,歸一化ρ,從而得到文檔di的主題分布θd。
更具體的,在步驟一之前還包括:
(1)針對每一個主題k,采樣βk~Dir(π),βk為主題k在詞典上的分布;
(2)對于每一個文檔di,首先采樣得到該文檔的主題分布θ~Dir(α),其中α為超參數(shù),θ作為基礎(chǔ)分布GC;
(3)針對文檔di中的每一個句子使用RABP(G0,π)采樣得到當(dāng)前句子的主題分布
(4)針對句子中的每一個單詞w,使用采樣得到當(dāng)前句子中的每一個單詞;
D={d1,...,dM}表示為一個具有M篇文檔的文檔集合,其中di表示第i篇文檔;對于每一篇文檔di,其中表示文檔中的一個句子,r表示句子的個數(shù)。對于每一個句子其中表示一個單詞,n為句子中單詞的個數(shù)。
更具體的,所述步驟三具體為:
求出所對應(yīng)的聚焦向量∈j中G0所對應(yīng)的權(quán)重分量求出句子中每一個單詞wn所賦予的主題標(biāo)號。
更具體的,所述求出句子中每一個單詞wn所賦予的主題標(biāo)具體為:通過以下公式,求出句子中每一個單詞wn所賦予的主題標(biāo)號:
更具體的,所述步驟四具體為:通過下面的公式計算文檔di在主題空間上的每一維含量為ρk:
更具體的,所述RABP(G0,π)過程為:
從時刻t=1開始,從G0中采樣出樣本θ1;
對于當(dāng)前時刻t>1,首先從Dir(π)中采樣出樣本∈,這里Dir(π)表示狄雷克雷分布,樣本∈=(∈1,∈2,...,∈C)T;
對于∈i,i∈(1,...,C-1),我們獲得t-C+1時刻到t-1時刻的前序分布,令當(dāng)前時刻的分布為
對于∈C,令當(dāng)前時刻的分布為θt=∈C·G0;
其中,C為過去時間點的時間窗口,即過去時間點的個數(shù),設(shè)定多少過去的時間點會影響當(dāng)前時間點;∈為當(dāng)前時間點的聚焦向量,用來表示過去時間點的權(quán)重信息;在此步驟后,當(dāng)前時刻t的分布可以表示為:
此循環(huán)聚焦貝葉斯過程為RABP(G0,π),其中G0是一個基礎(chǔ)分布,π是聚焦超參數(shù)。
通過本發(fā)明提供的一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法,通過提供一種能夠同時利用文檔中單詞信息,以及句子之間的序列信息,對文檔進(jìn)行有效建模;并利用聚焦機(jī)制對句子語義連貫性進(jìn)行權(quán)重學(xué)習(xí),可充分利用句子間主題的加權(quán)依賴性,從而學(xué)習(xí)到更加有效的文本向量。與現(xiàn)有技術(shù)相比,本發(fā)明提出的技術(shù)方案中,建立了句子間主題分布的連貫性關(guān)系,通過句子層面的主題建模,從而彌補傳統(tǒng)主題模型無法利用句子序列信息的弱點,從而獲得更有效的文檔向量模型。
附圖說明
圖1示出了本發(fā)明一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法的流程圖;
圖2示出了本發(fā)明一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法的計算流程圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的方式來實施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實施例的限制。
圖1示出了本發(fā)明一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法的流程圖。
首先,循環(huán)聚焦貝葉斯過程是不同于傳統(tǒng)貝葉斯過程的數(shù)學(xué)模型,例如循環(huán)狄雷克雷過程和狄雷克雷-霍克斯過程。循環(huán)聚焦貝葉斯過程是用來分析時序信息的一種數(shù)學(xué)模型,它利用動態(tài)聚焦機(jī)制,充分考慮過去的時間點對當(dāng)前時間點的影響,從而獲得當(dāng)前時間點的時序積累信息。這個過程我們定義為RABP(G0,π),其中G0是一個基礎(chǔ)分布,π是聚焦超參數(shù)。本過程的步驟如下:
(1)從時刻t=1開始,從G0中采樣出樣本θ1
(2)對于當(dāng)前時刻t>1,首先從Dir(π)中采樣出樣本∈,這里Dir(π)表示狄雷克雷分布,樣本∈=(∈1,∈2,...,∈C)T。
(3)對于∈i,i∈(1,...,C-1),我們獲得t-C+1時刻到t-1時刻的前序分布,令當(dāng)前時刻的分布為
(4)對于∈C,令當(dāng)前時刻的分布為θt=∈C·G0。
上述步驟中,C為過去時間點的時間窗口,即過去時間點的個數(shù),設(shè)定多少過去的時間點會影響當(dāng)前時間點?!蕿楫?dāng)前時間點的聚焦向量,用來表示過去時間點的權(quán)重信息。
在此步驟后,當(dāng)前時刻t的分布可以表示為
此循環(huán)聚焦貝葉斯過程我們稱之為RABP(G0,π),它主要考慮以往時間點對當(dāng)前時間點的影響,這個過程可以用于對文檔句子的建模。
在本發(fā)明的技術(shù)方案中,我們定義如下的數(shù)學(xué)描述方式:D={d1,...,dM}表示為一個具有M篇文檔的文檔集合,其中di表示第i篇文檔。對于每一篇文檔di,其中表示文檔中的一個句子,r表示句子的個數(shù)。對于每一個句子其中表示一個單詞,n為句子中單詞的個數(shù)。
在文檔中,一個句子的主題分布往往與它之前的句子關(guān)系十分相近,這在語言學(xué)里面被稱之為語義一致性或連貫性。我們把文檔d看成許多句子的序列,本發(fā)明旨在捕捉前面一些句子對當(dāng)前句子主題分布的影響。當(dāng)然,當(dāng)前句子(我們記為)的主題分布也受整篇文檔d的影響。我們令θ表示句子的主題分布,G0表示一個K維的狄雷克雷分布,K為隱含主題的個數(shù)。
如圖1所示,本發(fā)明提供了一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法,包括:
步驟一,對于文檔di,設(shè)置C值,所述C表示當(dāng)前句子受多少之前句子的影響值;
步驟二,設(shè)定文檔di的主題分布為θd,文檔di在主題空間上的每一維含量為ρk,令θd為RABP(G0,π)中的基礎(chǔ)分布G0;
步驟三,遍歷文檔di中的每一個句子
步驟四,遍歷文檔中的每一個句子與句子中的單詞,計算文檔di在主題空間上的每一維含量為ρk;
步驟五,歸一化ρ,從而得到文檔di的主題分布θd。
更具體的,在步驟一之前,每一篇文檔的生產(chǎn)步驟如下:
(1)針對每一個主題k,采樣βk~Dir(π),βk為主題k在詞典上的分布;
(2)對于每一個文檔di,首先采樣得到該文檔的主題分布θ~Dir(α),其中α為超參數(shù),θ作為基礎(chǔ)分布GC;
(3)針對文檔di中的每一個句子使用RABP(G0,π)采樣得到當(dāng)前句子的主題分布
(4)針對句子中的每一個單詞w,使用采樣得到當(dāng)前句子中的每一個單詞。
在這個生成過程中,聚焦向量隱含在RABP(G0,π)中,表示每一個句子的主題分布都受到之前若干句子的加權(quán)影響。
圖2示出了本發(fā)明一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法的計算流程圖。其具體呈現(xiàn)了通過某些參數(shù)得到具體的參數(shù)定義。
針對圖1所示的一種基于循環(huán)聚焦機(jī)制進(jìn)行文檔主題建模的方法的流程圖,更具體的,本發(fā)明中的模型求解過程,可以通過最大后驗估計,使用變分推理進(jìn)行參數(shù)求解。求解出參數(shù)α,β,π后,針對某一文檔di,文檔的主題分布可以通過以下過程獲得:
步驟一,對于文檔di,設(shè)置C值,即當(dāng)前句子受多少之前句子的影響。
步驟二,設(shè)定文檔di的主題分布為θd,文檔di在主題空間上的每一維含量為ρk。令θd為RABP(G0,π)中的基礎(chǔ)分布G0。
步驟三,遍歷文檔di中的每一個句子那么
(1)求出所對應(yīng)的聚焦向量∈j中G0所對應(yīng)的權(quán)重分量
(2)通過以下公式,求出句子中每一個單詞wn所賦予的主題標(biāo)號:
步驟四,遍歷文檔中的每一個句子與句子中的單詞,通過下面的公式計算文檔di在主題空間上的每一維含量為ρk:
步驟五,歸一化ρ,從而得到文檔di的主題分布θd。
本發(fā)明通過利用文檔中句子序列的主題連貫性,對文檔進(jìn)行整體建模,使得在求解文檔主題分布的時候,充分考慮文檔中句子之間的主題一致性和連貫性,從而獲得更加準(zhǔn)確的文檔主題分布。
句子間的主題是連貫的,并且同時通過加權(quán)平均的方式影響后續(xù)句子的主題分布。因此,本發(fā)明的另一關(guān)鍵點是,通過對句子間的聚焦向量的學(xué)習(xí),讓模型能夠獲得文檔句子中的主題加權(quán)特性,從而提升文檔主題的學(xué)習(xí)效果。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。