三种平滑方法
為了理解《LETOR: A benchmark collection for research on learning to rank for information retrieval》中提出的數(shù)據(jù)特征中的三個:LMIR.ABS、LMIR.DIR、LMIR.JM的計算方法,我查閱了很多資料。前面一篇博客是理解。這一篇也是。這篇博客的內(nèi)容來自《A Study of Smoothing Methods for Language Models Applied to Ad Hoc Information Retrieval》。一作翟成祥,我曾經(jīng)學過老師的文本檢索課程。這篇文章主要寫下自己的感受和學習到的。
1 論文目的
這篇論文的目的是研究平滑方法在信息檢索中的作用。信息檢索方法很多,這里評估的是使用語言模型建立query和文檔相似度計算實現(xiàn)排序的信息檢索方法。基于語言模型計算相似度的排序算法對平滑算法有多敏感?平滑算法的參數(shù)又該怎么選擇?
2 語言建模方法
2.1 基礎
我們假設一個query是根據(jù)一個語言模型基于document 生成的。
我們的目的是評估estimate p(d∣q)p(d|q)p(d∣q)的大小。p(d∣q)p(d|q)p(d∣q)解釋為d產(chǎn)生觀測q的概率。
根據(jù)貝葉斯公式:p(d∣q)∝p(q∣d)p(d)p(d|q)\propto p(q|d)p(d)p(d∣q)∝p(q∣d)p(d)
假設p(d)服從均勻分布,對結(jié)果不產(chǎn)生影響,所以p(d∣q)∝p(q∣d)p(d|q)\propto p(q|d)p(d∣q)∝p(q∣d)
當然p(d)也可以用一些非文本特征,例如文檔長度、鏈接數(shù)量作為文檔特征參與排序。在當前文檔中認為是均勻分布。
2.2 可見詞與不可見詞
進一步p(q∣d)=∏ip(qi∣d)p(q|d) = \prod_ip(q_i|d)p(q∣d)=∏i?p(qi?∣d),在本文檔中使用一元語言模型(unigram language model )建模。對于二元、三元語言模型建模方法參考:[10]D. H. Miller, T. Leek, and R. Schwartz (1999). "A hidden Markov model information retrieval system,In Proceedings of the 1999 ACM SIGIR Conference on Research and Development in Information Retrieval^ pp. 214-221. [20]F. Song and B. Croft (1999). “A general language model for information retrieval,” in Proceedings of the 1999 ACM SIGIR Conference on Research and Development in Information Retrieval^ pp. 279-280.
語言模型評估可能性的方式與TD-IDF是不同的,但有趣的是通過平滑方法可以在兩者之間建立一種相似性。
一般平滑方法都會分成2個分布:ps(w∣d)p_s(w|d)ps?(w∣d)表示可見詞的分布,pu(w∣d)p_u(w|d)pu?(w∣d)表示不可見詞的分布。公式改寫為如下:
logp(q∣d)=∑ilogp(qi∣d)=∑i;c(qi;d)>0logps(qi∣d)+∑i;c(qi;d)=0logpu(qi∣d)=∑i;c(qi;d)>0logps(qi∣d)pu(qi∣d)+∑ilogpu(qi∣d)logp(q|d)=\sum_ilogp(q_i|d)\\ =\sum_{i;c(q_i;d)>0}logp_s(q_i|d)+\sum_{i;c(q_i;d)=0}logp_u(q_i|d)\\ =\sum_{i;c(q_i;d)>0}log\dfrac{p_s(q_i|d)}{p_u(q_i|d)} +\sum_ilogp_u(q_i|d)logp(q∣d)=∑i?logp(qi?∣d)=∑i;c(qi?;d)>0?logps?(qi?∣d)+∑i;c(qi?;d)=0?logpu?(qi?∣d)=∑i;c(qi?;d)>0?logpu?(qi?∣d)ps?(qi?∣d)?+∑i?logpu?(qi?∣d)
在這里有個注意的點。不可見詞指的是在當前文檔中不存在的詞。例如query=“計算機 散熱”,當前文檔中沒有“散熱”這個詞,但是整體的語料庫中是有"散熱"這個詞的。這樣“散熱”就是不可見單詞。如果整個訓練語料中都沒有“散熱”這個詞,那這個詞就不參與計算。
最后兩部的等價過程是這樣的:倒數(shù)第一步:第一部分是所有可見詞的可見概率對數(shù)加和,第二部分是所有不可見詞的不可見概率對數(shù)加和。
最后一步的第二部分是:所有詞的不可見概率對數(shù)和。對加了可見詞的不可見概率對數(shù)和,需要在第一部分減去,就是∑i;c(qi;d)>0logps(qi∣d)pu(qi∣d)\sum_{i;c(q_i;d)>0}log\dfrac{p_s(q_i|d)}{p_u(q_i|d)}∑i;c(qi?;d)>0?logpu?(qi?∣d)ps?(qi?∣d)?了。
2.3 引入常量
我們再進一步假設pu(qi∣d)=αdp(qi∣C)p_u(q_i|d)=\alpha_dp(q_i|C)pu?(qi?∣d)=αd?p(qi?∣C)。αd\alpha_dαd?是一個與文檔相關(guān)的常數(shù)。p(qi∣C)p(q_i|C)p(qi?∣C)是一個集合語言模型(collection language model)。這里的C應該是整個訓練語料庫中的詞總數(shù)。到此,我們有:
logp(q∣d)=∑i;c(qi;d)>0logps(qi∣d)αdp(qi∣C)+nlogαd+∑ilogp(qi∣C)logp(q|d)=\sum_{i;c(q_i;d)>0}log\dfrac{p_s(q_i|d)}{\alpha_dp(q_i|C)} +nlog\alpha_d+\sum_ilogp(q_i|C)logp(q∣d)=∑i;c(qi?;d)>0?logαd?p(qi?∣C)ps?(qi?∣d)?+nlogαd?+∑i?logp(qi?∣C)
n:查詢的長度(query中詞的個數(shù))
現(xiàn)在這個公式分成兩個部分。第一部分是權(quán)重,衡量每個詞在query-document之間的權(quán)重。第二部分是只涉及到當前文檔的常數(shù),它與有多少概率分配給不可見詞相關(guān)。qiq_iqi?的參數(shù)ps(qi∣d)αdp(qi∣C)\dfrac{p_s(q_i|d)}{\alpha_dp(q_i|C)}αd?p(qi?∣C)ps?(qi?∣d)?與詞頻成正比,與語料庫中的詞頻成反比。p(qi∣C)p(q_i|C)p(qi?∣C)起到了類似于IDF的作用。第二部分我們可以認為它起到了類似于文檔長度正則化的作用。
3 平滑方法
pml(w∣d)=c(w;d)∑wc(w;d)p_{ml}(w|d)=\dfrac{c(w;d)}{\sum_wc(w;d)}pml?(w∣d)=∑w?c(w;d)c(w;d)?c(w;d)是指w在d中的出現(xiàn)次數(shù)
基于復雜度以及有效性,作者選擇了三種平滑方法:Jelinek-Merce、Dirichlet、Absolute discount。根據(jù)這三種計算得到的語言模型也是我需要的三個特征。
3.1 Jelinek-Merce
ps(w∣d)=(1?λ)pml(w∣d)+λp(w∣C)p_s(w|d)=(1-\lambda)p_{ml}(w|d)+\lambda p(w|C)ps?(w∣d)=(1?λ)pml?(w∣d)+λp(w∣C)
αd=λ\alpha_d=\lambdaαd?=λ
3.2 Dirichlet
ps(w∣d)=c(w;d)+μp(w∣C)∑wc(w;d)+μp_s(w|d)=\dfrac{c(w;d)+\mu p(w|C)}{\sum_wc(w;d)+\mu}ps?(w∣d)=∑w?c(w;d)+μc(w;d)+μp(w∣C)?
αd=μ∑wc(w;d)+μ\alpha_d=\dfrac{\mu}{\sum_wc(w;d)+\mu}αd?=∑w?c(w;d)+μμ?
3.3 Absolute discount
ps(w∣d)=max(c(w;d)?δ,0)∑wc(w;d)+δ∣d∣u∣d∣p(w∣C)p_s(w|d)=\dfrac{max(c(w;d)-\delta,0)}{\sum_wc(w;d)}+\dfrac{\delta|d|_u}{|d|}p(w|C)ps?(w∣d)=∑w?c(w;d)max(c(w;d)?δ,0)?+∣d∣δ∣d∣u??p(w∣C)
αd=δ∣d∣u∣d∣\alpha_d=\dfrac{\delta|d|_u}{|d|}αd?=∣d∣δ∣d∣u??
∣d∣|d|∣d∣表示文檔中的詞的總量。
∣d∣u|d|_u∣d∣u?表示文檔中不同詞的個數(shù)。
4 試驗以及結(jié)果
作者測試了不同長度的搜索詞,在不同平滑方法上的效果。得到如下結(jié)論:
1 搜索效果對平滑敏感
2 Jelinek-Mercer表現(xiàn)相對來說會好一些,但是僅對于長的,詳細的查詢。對于長query,lambda可以等于0.7;對于短query,lambda等于0.1
3 Dirichlet prior 在短查詢上來說表現(xiàn)比較好 μ的值一般在2000。 query越長,μ值越大。
4 Absolute discount在短查詢上表現(xiàn)比較好,在長的詳細的查詢上表現(xiàn)不好。δ\deltaδ的值一般在0.7左右。
5 插值平滑策略效果要比backoff策略好。
平滑方法在語言相似度模型中可能有2個作用。一個是提高模型的準確率;第二個是降低非信息詞的重要性。Dirichlet prior 在第一個作用中表現(xiàn)的很好,Jelinek-Mercer在第二個作用中表現(xiàn)很好。
總結(jié)
- 上一篇: 「期末」微机原理复习速成(上)
- 下一篇: eclipse3.4 SVN插件安装