度語義特征表示之后利用K均值聚類方法進行短文本聚類。
[0056] 下面結(jié)合附圖對本發(fā)明實施例提供的基于深度語義特征學(xué)習(xí)的短文本聚類方法 進行詳細描述。
[0057] 圖1為作為本發(fā)明一個實施例的基于深度語義特征學(xué)習(xí)的短文本聚類方法的流 程圖。
[0058] 參照圖1,在步驟S101,選取訓(xùn)練文本,通過特征降維方法在局部信息保存約束下 對訓(xùn)練文本的原始特征進行降維,并對低維實值向量進行二值化生成低維二值碼。
[0059] 根據(jù)本發(fā)明的一個示例性實施例,所述將訓(xùn)練文本通過特征降維方法進行降維二 值化生成低維二值碼包括:
[0060] 在步驟S1011,根據(jù)所述訓(xùn)練文本的原始特征構(gòu)造相似度矩陣。
[0061] 在步驟S1012,通過所述相似度矩陣獲取拉普拉斯特征向量。
[0062] 在步驟S1013,通過所述拉普拉斯特征向量獲取中值向量。
[0063] 在步驟S1014,通過所述中值向量對所述拉普拉斯特征向量進行二值化,從而生成 所述低維二值碼。
[0064] 根據(jù)本發(fā)明的一個示例性實施例,所述根據(jù)所述訓(xùn)練文本構(gòu)造相似度矩陣包括:
[0065] 根據(jù)公式(1)計算相似度矩陣:
[0066]
[0067] 其中,Sij為所述相似度矩陣,NNk(X)為所述訓(xùn)練文本X的k近鄰集合,?為局部 縮放因子(默認(rèn)為1)。
[0068] 這里,訓(xùn)練文本用X表示,相似度矩陣用\表示,相似度度量方法包括夾角余弦、 歐式距離、高斯核和線性核。例如可以是,但不限于通過高斯核來構(gòu)建局部相似度矩陣。 [0069] 在步驟S1012,通過所述相似度矩陣獲取拉普拉斯特征向量,拉普拉斯特征向量用 β表示。
[0070] 為得到文Xi本集合的低維二值碼Β,采用拉普拉斯特征映射優(yōu)化目標(biāo)函數(shù)如公式 (2)所示:
[0071]
[0072] 其中,Sij是由公式⑴構(gòu)造的局部相似度矩陣,b屬文本的低維二值碼,I卜I I F 是F-范數(shù)。通過松弛二值碼離散化的約束條件Be 最優(yōu)的r維實值向量J可 以通過求解拉普拉斯特征映射問題解決,在此不再贅述。
[0073] 在步驟S1013,通過拉普拉斯特征向量獲取中值向量,其中,中值向量表示為 median(B) 0
[0074] 在步驟S102,從所述訓(xùn)練文本中獲取詞特征,根據(jù)所述詞特征通過查表分別獲取 詞特征對應(yīng)的詞向量,以此作為卷積神經(jīng)網(wǎng)絡(luò)的輸入特征學(xué)習(xí)深度語義表示特征;
[0075] 這里,通過從詞特征的分布式向量化表示中進行查表E(w,) elR*4,得到詞向量。 同時,詞向量化在模型中做為參數(shù)進行更新。
[0076] 根據(jù)本發(fā)明的一個示例性實施例,所述將所述詞向量作為卷積神經(jīng)網(wǎng)絡(luò)的輸入特 征學(xué)習(xí)深度語義表示特征包括:
[0077] 在步驟S1021,將所述詞向量進行一維卷積,獲取卷積后的特征矩陣。
[0078] 在步驟S1022,所述特征矩陣通過折疊和采樣操作進行特征壓縮。所述兩種操作方 式如下:
[0079] 折疊操作:對卷積層相鄰兩行神經(jīng)元特征按對應(yīng)所在列進行簡單求和,則給定一 個dw行的卷積層,通過折疊操作可以得到dw/2行特征;
[0080] 采用操作:本發(fā)明采用一種根據(jù)輸入文本長度的動態(tài)K最大神經(jīng)單元采樣方法。 給定一個頂層采樣的參數(shù)Kttjp,則第1層的采樣參數(shù)K可根據(jù)如下公式計算得到:
[0081]
[0082] 其中,L是本發(fā)明選用的卷積神經(jīng)網(wǎng)絡(luò)的層數(shù),f為短文本的長度。
[0083] 在步驟S1023,所述壓縮后神經(jīng)元特征根據(jù)正切激活函數(shù)得到所述訓(xùn)練文本的隱 式語義特征。
[0084] 在步驟S103,所述卷積神經(jīng)網(wǎng)絡(luò)的輸出節(jié)點通過多個邏輯斯特回歸擬合降維得到 的二值碼。
[0085] 為了擬合二值碼B,在輸出層特征0上應(yīng)用q個邏輯斯特回歸:
[0086]
[0087] 在步驟S104,將所述低維二值碼進行訓(xùn)練得到更新的卷積神經(jīng)網(wǎng)絡(luò)模型。
[0088] 根據(jù)本發(fā)明的一個示例性實施例,所述將所述低維二值碼進行訓(xùn)練得到更新的卷 積神經(jīng)網(wǎng)絡(luò)模型包括:
[0089] 在步驟S1041,將訓(xùn)練文本的隱式語義特征輸入所述卷積神經(jīng)網(wǎng)絡(luò)模型的輸出 層;
[0090] 在步驟S1042,將所述低維二值碼同輸出特征的殘差進行誤差反向傳播得到更新 的卷積神經(jīng)網(wǎng)絡(luò)模型的參數(shù)。
[0091] 這里,在步驟S1041中,訓(xùn)練文本的深層語義特征用h表示,并進行線性變換,具體 由公式(5)可知:
[0092] 0 = Wh (5)
[0093] 其中,e 為輸出向量,fT e IRip"為線性變換矩陣。
[0094] 為進行二值化,得到哈希碼,在輸出層特征0使用q個邏輯斯特回歸,具體如公式 (4)所示。
[0095] 這里,在步驟S1042中,模型采用交叉熵作為優(yōu)化目標(biāo)函數(shù),并利用基于梯度下降 的Adagrad更新規(guī)則。
[0096] 在步驟S105,利用更新后卷積神經(jīng)網(wǎng)絡(luò)模型對訓(xùn)練文本進行深度語義特征映射, 然后利用K均值算法得到短文本的最終聚類結(jié)果。
[0097] 圖2為作為本發(fā)明一個實施例的基于深度語義特征學(xué)習(xí)的短文本聚類方法的框 架示意圖。
[0098] 參照圖2,基于深度語義特征學(xué)習(xí)的短文本聚類方法中深度特征學(xué)習(xí)包括兩個階 段,第一階段是特征降維二值化階段;第二階段是卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練及深度特征學(xué)習(xí) 階段。
[0099] 第一階段:通過傳統(tǒng)的特征降維在局部信息保存的約束下對原始特征進行降維表 示。并對得到的低維實值向量進行二值化。
[0100] 第二階段:所述降維后的二值向量作為卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的監(jiān)督信息進行誤差反 向傳播訓(xùn)練模型;本方法采用外部大規(guī)模語料無監(jiān)督訓(xùn)練詞向量,并對文本中每個詞按詞 序進行向量化表示,做為卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的初始化輸入特征學(xué)習(xí)文本的隱式語義特征。 [0101] 得到文本的深度語義特征表示之后,本發(fā)明采用傳統(tǒng)的K均值算法對短文本進行 聚類。
[0102] 為了準(zhǔn)確評估本發(fā)明方法的聚類性能,本發(fā)明通過對比文本的聚類結(jié)果和類別標(biāo) 簽得到兩個性能指標(biāo):精度(ACC)和標(biāo)準(zhǔn)化互信息(NMI)。給一個樣本Xi,分別標(biāo)注它們的 聚類標(biāo)簽為Ci,及類別標(biāo)簽為yi。則精度的定義如下:
[0103]
[0104] 其中,η是所有的文本數(shù),δ (x,y)是指示函數(shù),當(dāng)X = y時指示函數(shù)為1,當(dāng)X辛y 時指示函數(shù)為〇。而Hiap(Ci)是一個排列映射函數(shù),借助于匈牙利算法可以將聚類標(biāo)簽(^映 射到對應(yīng)的類別標(biāo)簽上。而類別標(biāo)簽集合Y和聚類集合C之間的標(biāo)準(zhǔn)化互信息是另外一種 比較流行的評測指標(biāo),定義如下:
[0105]
[0106] 其中,A'//(F.,C)是Y和C之間的互信息,而H( ·)是熵信息。
[0107] 本發(fā)明試驗中采用兩種公開短文本數(shù)據(jù)集:
[0108] SearchSnippets:該數(shù)據(jù)集搜集了網(wǎng)絡(luò)檢索引擎的結(jié)果片段,按照事先預(yù)定的領(lǐng) 域范圍檢索詞將檢索結(jié)果劃分為8個類別。
[0109] StackOverflow:該數(shù)據(jù)集包含了從2012年7月31日至2012年8月14日的3百 多萬條問題。本發(fā)明進行的實驗中從其中20個不同類別標(biāo)簽下隨機抽取了 2萬條文本。
[0110] 針對這些短文本數(shù)據(jù)集,本發(fā)明不做任何處理(包括去停用詞和詞干還原等操 作),數(shù)據(jù)集的統(tǒng)計信息如表1所示:
[0111] 表 1
[0112]
[0113] 本發(fā)明采用公開的word2VeC工具在大規(guī)模語料庫中無監(jiān)督訓(xùn)練詞向量。其 中,應(yīng)用于SearchSnippets數(shù)據(jù)集的詞向量在Wikipedia語料中進行訓(xùn)練,而應(yīng)用于 StackOverflow數(shù)據(jù)集的詞向量則在上面描述到的StackOverflow全語料(包括所有問題 標(biāo)題和問題內(nèi)容)上進行訓(xùn)練。無監(jiān)督訓(xùn)練得到的詞向量在兩個數(shù)據(jù)集上的覆蓋度統(tǒng)計信 息如表2所示,其中未訓(xùn)練詞在神經(jīng)網(wǎng)絡(luò)模型輸入時則直接隨機初始化。
[0114] 具體參照如表2所示的GloVe和Senna詞向量的覆蓋度統(tǒng)計信