本發(fā)明涉及文本信息檢索領(lǐng)域與深度學(xué)習(xí)領(lǐng)域,更具體地,涉及一種基于深度學(xué)習(xí)的非對(duì)稱(chēng)文本哈希方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,各類(lèi)網(wǎng)站層出不窮。搜索引擎作為通用的文本檢索工具成為了鏈接用戶(hù)和網(wǎng)站的重要入口。在傳統(tǒng)搜索引擎中,用戶(hù)需要輸入一些關(guān)鍵詞,搜索引擎根據(jù)這些關(guān)鍵詞使用索引技術(shù)檢索出與用戶(hù)請(qǐng)求相關(guān)度較高的文章。近幾年來(lái),隨著自然語(yǔ)言處理技術(shù)的進(jìn)步,和社交網(wǎng)絡(luò)以及多媒體技術(shù)的發(fā)展,出現(xiàn)了更加豐富的文本檢索的需求,例如:?jiǎn)柎鹣到y(tǒng)、語(yǔ)音助手、推薦系統(tǒng)等。這些需求使得基于關(guān)鍵字匹配的文本檢索方法開(kāi)始遇到瓶頸。
語(yǔ)義哈希學(xué)習(xí)辦法是解決海量文本數(shù)據(jù)的快速相似查詢(xún)問(wèn)題的一類(lèi)有效的辦法。這些辦法可以從訓(xùn)練文本數(shù)據(jù)學(xué)習(xí),得到將文本特征映射到二進(jìn)制編碼的哈希函數(shù)。該二進(jìn)制編碼具有相似信息保存性,即是二進(jìn)制編碼相似的文本語(yǔ)義相似,二進(jìn)制編碼不相似的文本語(yǔ)義不相似。我們能夠使用文本計(jì)算出的二進(jìn)制編碼快速檢索語(yǔ)義相近的其他文本。
文本特征的表示方法有TF-IDF、主題模型等。近幾年來(lái),以深度學(xué)習(xí)為代表的機(jī)器學(xué)習(xí)方法在文本分類(lèi)、語(yǔ)言模型、語(yǔ)法解析等領(lǐng)域都有突破性的成果。相比于傳統(tǒng)的文本特征的模型,深度學(xué)習(xí)有著強(qiáng)大的學(xué)習(xí)能力和靈活的表示能力,能夠很好地處理各種文本建模任務(wù),成為自然語(yǔ)言處理領(lǐng)域的研究熱點(diǎn)。
一般來(lái)說(shuō),文本哈希學(xué)習(xí)有以下幾個(gè)主要部分構(gòu)成:
將文本映射成為二進(jìn)制編碼的哈希函數(shù)。哈希函數(shù)能夠從文本序列中提取出語(yǔ)義信息并將語(yǔ)義信息表示成合適的二進(jìn)制哈希編碼。
優(yōu)化哈希函數(shù)的學(xué)習(xí)過(guò)程。將哈希函數(shù)的學(xué)習(xí)轉(zhuǎn)化為哈希編碼的相似度和語(yǔ)義相似度之間的優(yōu)化問(wèn)題進(jìn)行求解,得到適合特定文本檢索任務(wù)的哈希函數(shù)。
然而目前文本哈希學(xué)習(xí)方法只使用單一哈希函數(shù)同時(shí)對(duì)檢索和被檢索的文本進(jìn)行建模,然而,往往現(xiàn)實(shí)應(yīng)用中,檢索的文本和被檢索的文本的表述方式有著很大的不同。這導(dǎo)致了這些哈希辦法不能準(zhǔn)確地檢索出有效信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種提高文本哈希學(xué)習(xí)的效率的基于深度學(xué)習(xí)的非對(duì)稱(chēng)文本哈希方法。
為了達(dá)到上述技術(shù)效果,本發(fā)明的技術(shù)方案如下:
一種基于深度學(xué)習(xí)的非對(duì)稱(chēng)文本哈希方法,包括以下步驟:
S1:提取訓(xùn)練集文本語(yǔ)義標(biāo)簽,計(jì)算樣本之間的語(yǔ)義相似度;
S2:根據(jù)訓(xùn)練集樣本語(yǔ)義標(biāo)簽和語(yǔ)義相似度計(jì)算訓(xùn)練集文本的二進(jìn)制哈希編碼,該二進(jìn)制哈希編碼具有保證保持在訓(xùn)練集上有最佳的語(yǔ)義保持的性能,即期望哈希編碼;
S3:將訓(xùn)練集文本輸入到神經(jīng)網(wǎng)絡(luò)中,計(jì)算出文本對(duì)應(yīng)的哈希編碼;
S4:計(jì)算神經(jīng)網(wǎng)絡(luò)輸出的哈希編碼和S2中得到的期望哈希編碼的偏差,并通過(guò)反向傳播算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)參數(shù)。
進(jìn)一步地,所述步驟S1中計(jì)算計(jì)算樣本之間的語(yǔ)義相似度的過(guò)程如下:
根據(jù)訓(xùn)練文本中的文檔分類(lèi)類(lèi)別,如果文檔類(lèi)別相同,那么語(yǔ)義相似度為1,如果文檔類(lèi)別不同,那么語(yǔ)義相似度為-1。
進(jìn)一步地,所述步驟S2的過(guò)程如下:
隨機(jī)化初始化訓(xùn)練集文本中各個(gè)樣本的哈希編碼,計(jì)算哈希編碼的相似度和語(yǔ)義相似度的差值,使用梯度下降的方法,優(yōu)化哈希值各個(gè)比特位的取值,最終收斂到穩(wěn)定的哈希編碼值。
進(jìn)一步地,所述步驟S3的過(guò)程如下:
對(duì)于訓(xùn)練集文本,文本先經(jīng)過(guò)分詞和去停詞轉(zhuǎn)化為詞語(yǔ)序列,通過(guò)查表的方法,查詢(xún)各個(gè)詞語(yǔ)的向量值,將檢索文本和被檢索文本輸入到不同神經(jīng)網(wǎng)絡(luò),分別得到對(duì)應(yīng)的固定長(zhǎng)度為L(zhǎng)在[-1,1]區(qū)間的哈希值向量。
進(jìn)一步地,所述步驟S4的過(guò)程如下:
以S3中得到的哈希值和期望哈希值的差值來(lái)計(jì)算所產(chǎn)生的損失,利用反向傳播算法更新對(duì)應(yīng)神經(jīng)網(wǎng)絡(luò)的參數(shù)。
與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案的有益效果是:
本發(fā)明方法使用了最小化文本之間語(yǔ)義相似度和二進(jìn)制哈希編碼相似度之間的差值保持哈希編碼的語(yǔ)義一致性,使得二進(jìn)制編碼具有相似信息保存性;采用異構(gòu)的神經(jīng)網(wǎng)絡(luò)分別對(duì)檢索文本和被檢索文本進(jìn)行哈希學(xué)習(xí),能夠提高文本哈希學(xué)習(xí)的效率。
附圖說(shuō)明
圖1為本發(fā)明方法流程圖。
具體實(shí)施方式
附圖僅用于示例性說(shuō)明,不能理解為對(duì)本專(zhuān)利的限制;
為了更好說(shuō)明本實(shí)施例,附圖某些部件會(huì)有省略、放大或縮小,并不代表實(shí)際產(chǎn)品的尺寸;
對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),附圖中某些公知結(jié)構(gòu)及其說(shuō)明可能省略是可以理解的。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的說(shuō)明。
實(shí)施例1
如圖1所示,一種基于深度學(xué)習(xí)的非對(duì)稱(chēng)文本哈希方法,包括以下步驟
A、預(yù)處理:提取訓(xùn)練集文本語(yǔ)義標(biāo)簽,計(jì)算樣本之間的語(yǔ)義相似度;
B、計(jì)算期望哈希編碼:根據(jù)訓(xùn)練集樣本語(yǔ)義標(biāo)簽,計(jì)算訓(xùn)練集樣本的二進(jìn)制哈希編碼,該二進(jìn)制編碼保證保持在訓(xùn)練集上有最佳的語(yǔ)義保持的性能;
C、計(jì)算文本哈希編碼:將文本輸入到對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)中,計(jì)算出文本對(duì)應(yīng)的哈希編碼;
D、優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù):計(jì)算神經(jīng)網(wǎng)絡(luò)輸出的哈希編碼和期望哈希編碼的偏差,并通過(guò)反向傳播算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)參數(shù)。
上述步驟具體為:
步驟A:提取訓(xùn)練集文本語(yǔ)義標(biāo)簽,計(jì)算樣本之間的語(yǔ)義相似度。假設(shè)訓(xùn)練文本存在K中不同的語(yǔ)義標(biāo)簽類(lèi)別,所有的文本都被歸類(lèi)為其中一種分類(lèi)。實(shí)際情況下,訓(xùn)練文本集合中的樣本可以達(dá)到百萬(wàn)量級(jí),因此在確定的硬件條件下無(wú)法載入所有樣本之間的語(yǔ)義相似度。在本實(shí)施例中,將使用批處理的方式優(yōu)化哈希編碼,具體方式如下:每次隨機(jī)抽取N個(gè)檢索文本樣本和M個(gè)被檢索文本樣本,計(jì)算樣本之間的相似度矩陣S。利用這樣的方式,可以在有限的硬件條件下分批訓(xùn)練。但相似度矩陣的計(jì)算不局限于此。
步驟B:計(jì)算期望哈希編碼。期望哈希編碼是用于作為神經(jīng)網(wǎng)絡(luò)的監(jiān)督信號(hào)的中間結(jié)果。本實(shí)施方案能夠最終實(shí)現(xiàn)的將任意文本作為輸入,通過(guò)神經(jīng)網(wǎng)絡(luò)最終輸出與具有語(yǔ)義保持性的二進(jìn)制哈希編碼。本實(shí)施例中,將使用梯度下降的方式來(lái)求解期望哈希編碼,具體方式如下:每個(gè)樣本預(yù)先隨機(jī)初始化長(zhǎng)度為L(zhǎng)取值在[-1,1]之間的隨機(jī)向量。對(duì)于檢索樣本的哈希編碼組成的矩陣X和被檢索樣本組成的矩陣Y,其實(shí)際哈希編碼的相似度矩陣為XYT,損失函數(shù)為||S-XYT||2。通過(guò)梯度下降的算法最小化損失函數(shù)。當(dāng)損失函數(shù)收斂后,將各個(gè)維度的取值根據(jù)最近原則映射到-1或1取值上。
步驟C:在本實(shí)施方案中,神經(jīng)網(wǎng)絡(luò)的輸入為文本詞語(yǔ)向量矩陣,輸出為文本的二進(jìn)制哈希編碼。對(duì)于輸入數(shù)據(jù),文本先經(jīng)過(guò)分詞和去停詞轉(zhuǎn)化為詞語(yǔ)序列,通過(guò)查表的方法,查詢(xún)各個(gè)詞語(yǔ)的向量值。將檢索文本和被檢索文本輸入到不同神經(jīng)網(wǎng)絡(luò),分別得到對(duì)應(yīng)的固定長(zhǎng)度為L(zhǎng)在[-1,1]區(qū)間的哈希值向量。
步驟D:在本實(shí)施方案中,每次輸入一批文本,都會(huì)產(chǎn)生輸出值和預(yù)期值之間的差值。通過(guò)后向傳播(back propagation)算法,將差值傳播到神經(jīng)網(wǎng)絡(luò)的每一個(gè)層中,即可實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
相同或相似的標(biāo)號(hào)對(duì)應(yīng)相同或相似的部件;
附圖中描述位置關(guān)系的用于僅用于示例性說(shuō)明,不能理解為對(duì)本專(zhuān)利的限制;
顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說(shuō)明本發(fā)明所作的舉例,而并非是對(duì)本發(fā)明的實(shí)施方式的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在上述說(shuō)明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無(wú)需也無(wú)法對(duì)所有的實(shí)施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。