張振梅 劉 明 畢 利 高玉琢*
1(銀川市第二中學信息技術(shù)中心 寧夏 銀川 750004) 2(北京航空航天大學計算機學院 北京 100191) 3(寧夏大學信息工程學院 寧夏 銀川 750021)
信息檢索技術(shù)是現(xiàn)代社會學習、生產(chǎn)中的一項關(guān)鍵技術(shù),而信息檢索的過程既需要高效組織信息又要能理解用戶意圖[1-2]。經(jīng)典的信息檢索方法[3]將用戶的查詢和文檔轉(zhuǎn)化成向量空間中的向量,用向量之間的余弦相似度度量文本之間的相似度。這種方法基于詞條表層形態(tài)和詞頻統(tǒng)計對文本相似性進行度量[3],被稱為向量空間模型VSM(Vector Space Model)。其認為文本中含有相同形態(tài)的詞條越多則越相似,但是在VSM中,詞條被視為沒有語義涵義的字符,無法真正理解詞條的語義涵義,因此這種方法對于歧義詞等語義問題無法有效處理。查詢擴展技術(shù)一定程度上解決了檢索系統(tǒng)對詞條語義的理解問題。查詢擴展技術(shù)先利用本體等知識資源獲取與檢索詞最相關(guān)的幾個詞條,擴展原始檢索詞;然后利用擴展后的檢索詞進行信息檢索,明顯提升了檢索結(jié)果的覆蓋范圍和命中用戶意圖的幾率。擴展詞的相關(guān)程度決定了信息檢索的質(zhì)量,查詢擴展的相關(guān)研究大多集中在檢索詞的擴展上,查詢擴展一般利用本體、關(guān)聯(lián)規(guī)則[5]或者語料統(tǒng)計方法[6-7]獲取相似的詞條作為擴展詞。例如,徐博等提出了一種基于語料的查詢擴展方法,其首先檢索獲取可信文本,然后從可信文本中選取詞語作為查詢擴展詞進行二次檢索獲取檢索結(jié)果[8]。馬斌等針對以上問題,利用外部本體中承載的詞條語義關(guān)系對基于關(guān)鍵詞的信息檢索方法進行了擴展[9]。Rekha利用偽相關(guān)反饋技術(shù)量化文檔中的詞語權(quán)重并擴展查詢詞[10]。黃承慧等基于外部知識詞典度量詞語之間的語義相關(guān)性進行查詢擴展;結(jié)合詞語相似度以及文本語義相似度計算文檔之間的相似度[11]。然而上述方法都基于詞袋模型假設(shè)。詞袋模型將文檔視為是詞條的無序集合,其獨立性假設(shè)忽略了文檔詞條的次序關(guān)系和文檔的篇章結(jié)構(gòu),而語序在文本語義表示中有著重要作用。例如:“老師借給我一本書”和“我借給老師一本書”有著相同的詞條,在傳統(tǒng)的詞袋模型中這兩個本文是等價的,然而其實際表達的語義是截然相反的。據(jù)我們所知,目前幾乎沒有研究工作在查詢擴展中考慮到詞語的重要性和詞語分布因素。
針對信息檢索中詞語詞序分布和詞語語義建模的難題,本文基于查詢擴展檢索技術(shù),利用中文詞義知識庫HowNet對檢索詞進行了語義概念擴展。在文本檢索過程中考慮了詞序、詞條分布和詞語語義關(guān)系等因素,設(shè)計了文本詞條順序和分布表達方式,同時區(qū)分表達了不同重要程度的詞語。實驗表明,我們的方法既考慮了詞條語義,又考慮了詞條順序,取得了良好的檢索效果。
向量空間模型中,每一篇文檔和用戶查詢的信息都被看作空間中的向量,文本被定義為:
V(dj)=((t1,w1j),…,(ti,wij),…,(tn,wnj))i=1,2,…,n
(1)
式中:ti代表文本中的特征詞,wij是ti在文本dj中的權(quán)重。兩個文本的相似性可以利用向量之間的余弦相似性獲得,如圖1所示。
圖1 向量空間模型
目前信息檢索方法是Lucene[13]在VSM基礎(chǔ)上形成的相似度計算方法。特征量化方法如公式:
lengthNorm(t)}
(2)
式中:tf因子不再是傳統(tǒng)的特征詞頻率,而是特征詞真實頻率的平方根值;Idf因子取傳統(tǒng)反文檔頻率的對數(shù);t.getBoost是針對每個索引域的激勵因子;lengthNorm是長度因子,與字段內(nèi)的特征詞個數(shù)有關(guān),一個字段內(nèi)的特征詞個數(shù)越多,其長度因子越小。
在信息檢索時,Lucene計算用戶查詢q與文檔d的相似度,并按照相似程度將將文檔呈現(xiàn)給用戶,如公式:
Score(q,d)=Coord(q,d)×queryNorm(q)×
W(t,d)
(3)
利用式(2)代入即得:
Score(q,d)=Coord(q,d)×queryNorm(q)×
t.getBoost()×lengthNorm(t,d)}
(4)
式中:q代表query,d代表document,t代表term。Coord(q,d)的值表示文檔d中包含q的數(shù)目。t.getBoost()是針對每個索引域的激勵因子。tf(tind)所搜項t在文檔d中出現(xiàn)的頻率,queryNorm(q)是q的歸一化因子,保證不同檢索結(jié)果評分是有可比性的。
本體承載了概念的語義關(guān)系,可用于對的檢索詞進行擴展。例如,當用戶輸入的檢索詞“計算機”,可以被擴展為“PC,電腦,筆記本電腦”;利用語義本體獲得與查詢詞最相關(guān)的詞語作為擴展詞,利用擴展詞對搜索引擎進行檢索會返回包含更多信息的頁面,命中用戶意圖的概率也會更高。而概念之間的相似度可由圖2所示的義原層次樹獲得。對于不同的義原,義原節(jié)點在樹中的最短距離越長,其相似度越低[14]??梢允褂檬?5)獲取與檢索詞最相近的一組概念。
(5)
式中:dis(Oi,Oj)是義原Oi和Oj在義原層次樹中的最短路徑長度,a是可調(diào)參數(shù),通常取1。我們對檢索展詞的選取采用排序與閾值結(jié)合的方式,將用戶輸入的每個檢索詞輸入HowNet,獲取跟輸入檢索詞語義相似度排序前3,并且語義相識度大于0.5的詞語作為該檢索詞的擴展詞,完成語義相似度的擴展。圖3展示了查詢擴展檢索與傳統(tǒng)檢索的區(qū)別。
圖2 義原層次樹
圖3 查詢擴展檢索原理圖
目前的查詢擴展研究都集中在利用知識庫、用戶日志或者統(tǒng)計方法獲取檢索擴展詞,再將擴展詞輸入到搜索引擎獲取的檢索結(jié)果,目前檢索方法存在以下問題:
(1) 無法反映檢索詞語的重要程度,原始輸入詞語和查詢擴展詞語在重要程度和語義上存在一定的差別,傳統(tǒng)的方法無法體現(xiàn)這種差別。
(2) 沒有考慮檢索詞的分布情況,不同信息在文檔中占據(jù)的比例不同,而用戶感興趣的內(nèi)容應該是文檔的主要內(nèi)容。如果用戶檢索詞分布在文檔中僅僅占據(jù)很少比例,這樣的文檔不應該是首選的文檔。
(3) 沒有考慮詞序、詞距等因素。當用戶輸入的查詢詞包含多個詞條時,不同的詞語序列會導致完全不同的文檔含義,傳統(tǒng)方法忽略了詞語的序列信息。
通常情況下,擴展詞對文檔的相似性貢獻往往低于用戶輸入的原始檢索詞對文檔的相似性貢獻,因此擴展詞的權(quán)重也應該較初始檢索詞的權(quán)重低?;谶@樣的直覺,本文在計算相似性過程中引入了擴展詞權(quán)重衰減因子來解決這個問題。我們初始檢索詞權(quán)重保持不變,針對擴展詞進行了權(quán)重衰減,具體計算方式如公式:
distance(q)×decrease×lengthNorm(t,d)}
(6)
式中:TF-IDF因子是通過式(2)計算出的結(jié)果,保留了TF-IDF權(quán)重對特征詞分布、特征詞權(quán)重以及特征詞數(shù)量比重的依賴。decrease是我們引入的擴展詞的權(quán)重衰減因子,衰減因子的大小是初始檢索詞與擴展詞在WordNet中的語義相似度。如果是t用戶輸入的初始檢索詞,則權(quán)重為1;如果是擴展檢索詞,則設(shè)定為0.5。LengthNorm是我們引入的詞語分布因子度量因子。
詞袋模型無法衡量文本的詞語順序,詞語順序的不同也會導致文本語義的不同。用戶輸入檢索詞的順序反映了用戶的檢索意圖,當用戶輸入多個檢索詞時,多個檢索詞的順序也可以作為一項重要檢索特征。檢索詞在文檔中出現(xiàn)的次序與用戶輸入的檢索次序越一致,則文檔越契合用戶意圖。因此我們設(shè)計了檢索序列向量表示用戶查詢序列,構(gòu)造了最長檢索一致向量表示文檔的詞語序列的一致性,兩者共同構(gòu)成詞語序列因子來衡量文檔和檢索的序列相關(guān)性:
(7)
式中:Nq是用戶輸入的查詢詞的個數(shù),V(Qterms)是用戶輸入的查詢詞向量,該向量里面每一維代表一個檢索詞,其順序按照用戶輸入的順序,數(shù)值均為1。V(Dterms)表示文檔中出現(xiàn)的檢索詞的最大查詢一致序列,其每一維度代表的含義與V(Qterms)相同??紤]到查詢詞在文檔中可以多次出現(xiàn),我們利用查詢詞在文檔中首次出現(xiàn)位置來標定文檔中的檢索詞序列。文檔中出現(xiàn)的檢索詞會形成許多與檢索序列一致的候選檢索詞序列,V(Dterms)則是用來表示文檔中出現(xiàn)的候選檢索詞序列中最長的一致檢索詞序列。對于V(Dterms)中的每一維度,若文檔的最長一致檢索詞序列包含該詞條,則該維度特征值為1;反之,不包含的檢索詞條對應維度特征值為0。
例如,初始檢索Q為四個檢索詞“計算機”、“輔助”、“設(shè)計”、“圖片”,用戶輸入順序為:
“計算機—輔助—設(shè)計—圖片”
V(Qterms)={1,1,1,1},V(Qterms)中的四個維度依次代表“計算機”、“輔助”、“設(shè)計”、“圖片”四個檢索詞。文檔A中順序出現(xiàn)了“輔助”、“設(shè)計”兩個檢索詞,則V(Dterms)={0,1,1,0}。文檔B中順序出現(xiàn)了“設(shè)計”、“輔助”兩個檢索詞。則其V(Dterms)={0,0,1,0}。文檔C中順序出現(xiàn)了“設(shè)計”、“計算機”、“輔助”、“圖片”四個檢索詞,則文檔C中產(chǎn)生了如下三個的檢索一致序列:
“設(shè)計—圖片”
“計算機—輔助—圖片”
“輔助—圖片”
我們?nèi)∑渥铋L的序列組合“計算機—輔助—圖片”構(gòu)建V(Bterms)={1,1,0,1}。通過order(q,d)因子我們可以計算得出用戶檢索Q與文檔A的序列因子為1/2,用戶檢索Q與文檔B的序列因子為1/4,用戶檢索Q與文檔C的序列因子為3/4,可以保證檢索詞語序列與文檔中分布的詞語序列越一致,詞序因子越大。
用戶輸入或者查詢擴展的多個檢索詞是緊密相關(guān)的。我們假定多個檢索詞在文章中分布的篇幅越廣,文檔將用戶檢索相關(guān)的信息作為主要內(nèi)容的概率越大,從而越契合用戶的檢索意圖。檢索詞占據(jù)整篇文章的篇幅比例可以作為衡量檢索詞分布的一個標準,因此我們定義如下詞語距離因子來衡量:
(8)
式中:Qterm.last表示檢索詞在文檔最后出現(xiàn)的位置,Qterm.first表示檢索詞首次出現(xiàn)的位置。
綜上所述,基于Lucene中用戶查詢與文檔相似度的改進計算方式改進后計算方式如下:
Score(q,d)=Coord(q,d)×queryNorm(q)×
order(q,d)×w(t,d)
(9)
展開即:
Score(q,d)=Coord(q,d)×queryNorm(q)×
idf2(t)×t.getBoost×distance(q)×
decrease×lengthNorm(t,d)}
(10)
本文方法用Java語言實現(xiàn),實驗采用DELL Optiplex 990型號的機器,內(nèi)存8 GB,操作系統(tǒng)是Windows7專業(yè)版,JDK1.7版本。本實驗中共50類科技文獻,其核心元數(shù)據(jù)總數(shù)目達593 425條。為了能夠全面、準確、有效地反映系統(tǒng)的性能。考慮到用戶最關(guān)心的往往是前5頁的內(nèi)容,因此,本實驗統(tǒng)計了每次檢索的前50條返回結(jié)果。
實驗由兩部分組成,第一部分比較了我們的方法在檢索詞擴展與不進行檢索詞擴展的檢索結(jié)果;第二部分比較我們的方法與傳統(tǒng)檢索方法查詢擴展的比較。
從表1和圖4中,我們可以看出,通過對檢索詞進行擴展查詢,系統(tǒng)的查全率顯著提高,查準率也略有提高。為了確定衰減因子decrease的最優(yōu)值,我們設(shè)置其值由0.1逐步增加至1.0,隨著decrease值的增加,檢索系統(tǒng)的性能也逐步提高,當decrease=0.5時,系統(tǒng)性能達到最高。隨后系統(tǒng)的性能逐步降低,我們確定0.5作為擴展詞權(quán)重因子。
表1 擴展查詢和不擴展查詢比較
圖4 擴展查詢和不擴展查詢結(jié)果比較
為了準確地對比文中方法與傳統(tǒng)方法的性能,我們用30組檢索詞分別對50類資源進行了檢索,實驗先后利用HowNet對檢索詞進行擴展,并使用TF-IDF和Lucene的兩種算法對擴展的檢索詞進行檢索實驗。
此外,文獻[8]和文獻[10]中的方法被選基線對比方法,這兩種方法可以從語料中獲取擴展詞語,相比基于知識庫進行檢索詞擴展的方法,提高了檢索詞的覆蓋范圍。文獻[8]中首先檢索獲取可信文本,然后從可信文本中選取詞語作為查詢擴展詞進行二次檢索獲取檢索結(jié)果,本實驗中我們將該方法命名為Rank_Method。 文獻[10]利用偽相關(guān)反饋技術(shù)量化文檔中的詞語權(quán)重并擴展查詢詞,我們將其命名為Rekha_Method??紤]到檢索結(jié)果的返回數(shù)量較多,并且用戶最關(guān)心的往往是前5頁的內(nèi)容,實驗統(tǒng)計了每次檢索的前50條返回頁面來衡量檢索結(jié)果,平均實驗結(jié)果如表2和圖5所示。
表2 檢索方法性能對比
圖5 查詢擴展的性能對比
由表2和圖5可以看出,我們提出的考慮了詞語序列和擴展詞衰減的方法具有明顯的優(yōu)越性,能夠提高檢索系統(tǒng)的查全率和召回率,同時整體性能也有了明顯提升,能更好地命中用戶的查詢意圖。
針對傳統(tǒng)的查詢擴展方法存在的問題,本文將多個檢索詞之間的詞序、詞距、擴展詞權(quán)重變化等因素納入詞語權(quán)重計算過程進行了更細致的檢索,主要工作有:1) 提出了一種改進的文本檢索方法,本文在查詢擴展過程中,設(shè)計擴展詞衰減因子以區(qū)分不同檢索詞語的重要程度;2) 針對詞袋模型中的詞語無序性問題,構(gòu)建了詞序一致因子表征文本中詞序的序列關(guān)系,有效提升了文檔的語義一致性;3) 在檢索過程中,引入了詞語距離因子,一定程度上表達了用戶需求信息在目標文本中的信息重要程度。實驗證明,相比現(xiàn)有方法,我們方法能夠提高檢索系統(tǒng)的查全率和查準率。將來的工作中,我們將考慮利用資源數(shù)量分布、檢索詞條和用戶點擊數(shù)據(jù)對其中的衰減因子的自動學習進行研究,同時我們考慮根據(jù)用戶偏好來解決多類別文本檢索結(jié)果的合并排序問題。
[1] Eickhoff C,Collins-Thompson K,Bennett P N,et al.Personalizing atypical web search sessions[C]//ACM International Conference on Web Search and Data Mining.ACM,2013:285-294.
[2] 胡妙,戴牡紅,陳浩.一種基于用戶配置文件的個性化檢索方法[J].計算機應用研究,2016,33(2):417-420.
[3] Salton G,Wong A,Yang C S.A vector space model for automatic indexing[J].Communications of the Acm,1974,18(11):613-620.
[4] Landauer T K,Foltz P W,Laham D.An introduction to latent semantic analysis[J].Discourse Processes,1998,25(2-3):259-284.
[5] Carpineto C,Romano G.A survey of automatic query expansion in information retrieval[J].ACM Computing Surveys (CSUR),2012,44(1):1-50.
[6] Blei D M,Ng A Y,Jordan M I.Latent dirichlet allocation[J].Journal of Machine Learning Research,2003,3:993-1022.
[7] Goldberg Y,Levy O.word2vec Explained:deriving Mikolov et al.’s negative-sampling word-embedding method[J].arXiv preprint arXiv:1402.3722,2014.
[8] 徐博,林鴻飛,林原,等.一種基于排序?qū)W習方法的查詢擴展技術(shù)[J].中文信息學報,2015,29(3):155-161.
[9] 馬斌,王金虹,閆娟娟,等.基于本體的智能語義檢索模型設(shè)計與研究[J].情報科學,2015(2):46-49,71.
[10] Vaidyanathan R,Das S,Srivastava N.Query Expansion Strategy based on Pseudo Relevance Feedback and Term Weight Scheme for Monolingual Retrieval[J].International Journal of Computer Applications,2015,105(8):1-6.
[11] 黃承慧,印鑒,侯昉.一種結(jié)合詞項語義信息和TF-IDF方法的文本相似度量方法[J].計算機學報,2011,34(5):856-864.
[12] Niu S,Guo J,Lan Y,et al.Top-k learning to rank:labeling,ranking and evaluation[C]//International ACM SIGIR Conference on Research and Development in Information Retrieval.ACM,2012:751-760.
[13] Apache Lucene.Lucenejava5.3.0[EB/OL].[2011-11-18].http://lucene.apache.org/.
[14] 劉群,李素建.基于《知網(wǎng)》 的詞匯語義相似度計算[J].中文計算語言學,2002.