# 關於 WSM "Language Model for IR (II)" 問題的回應: 由於需要打數學式,所以用 Markdown 回應,以下照著順序講解。 ## 出自上週(3/31)投影片第 28 頁: $$ \begin{equation} p(w|d)= \begin{cases} p_{Seen}(w|d), & \text{if}\ w \text{ is seen in } d\\ \alpha_{d}p(w|C), & \text{otherwise} \end{cases} \end{equation} \text{ where }\alpha_{d} = \frac{1-\sum_{w\text{ is seen}}^{} p_{Seen}(w|d)}{\sum_{w\text{ is unseen}}^{} p_{Seen}(w|C)}$$ ### 同學疑問(1): 為什麼 $p(w|d)$ 跟 $\alpha_d$ 需要這樣訂。 首先當然要從「為什麼有這個數學式」開始,往上翻會發現這是為了做 smoothing,那 smoothing 在這邊是要幹嘛呢? 再往前翻會發現 smoothing 出自投影片第 13 頁,還舉了一個很棒的例子: ### For example, for query "Michael Jackson top hits" a document about “top songs” (but not using the word “hits”) would have $P(t|Md) = 0$. – That’s bad. 我們知道 top hits 跟 top song 一樣,都代表很紅很紅的歌,可是如果依照一般的做法, 如果一篇文章沒有出現 "hits",那它的與 "top hits" 這類 query 的相關性就很低, 我們不希望這件事發生,所以要怎麼辦呢? ### We need to smooth the estimates to avoid zeros. 好的,原來 smooth 的目的,是要幹掉 0。 當然幹掉 0 的方法有很多種,這裏要用的方法則寫在投影片第 27 頁 ### Most use a reference model (collection language model) to discriminate unseen words 某一篇文章 $d$ 裏面如果沒有 query 裏的某個字,我們就去看看 collection (corpus 中的所有文章) 吧! 所以才會有上面那個 otherwise: 不做處理的話那邊會變成 0,但我不想,所以決定用「它會不會出現在別的文章」來評估/假裝是它的機率。 繞了一大圈,現在要回來講為什麼 $\alpha_d$ 要這樣訂,先看看它的列式: (順帶一提,這邊的「每一個w」都是來自 query,不然會很奇怪) 分子是把「有出現在文章裏的 w 」都收集起來,再去算這些 w,在文章 d 裏面被看到的機率。 回到上面的例子來看,假設 "Michael Jackson" "top" 都有出現在文章 d 裏,這就是這兩個字出現在文章裏的機率和。 全部加起來之後還用 1 來減,這樣就變成「 "Michael Jackson" "top" 以外的,文章 d 中的字的出現機率」了。 ### 嗯,分子看起來是「query 在文章 d 裏的字越多, $\alpha_d$ 越小」。 分母呢? 「所有在 query 裏卻沒出現在文章 d 裏」的字出現在 corpus/collection 裏的機率和。 ### 分母代表「 query 裏的字越多,或是這些字在其它文章出現得越頻繁, $\alpha_d$ 越小」。 當然這時候 $\alpha_d$ 的目的還是很不明確,但可以首先看的是,這邊 $\alpha_d$ 的大小,其實跟你前面的 $p(w|d)$ (某個字 w 出現在文章 d 裏的機率) 裏的 w ,一,點,關,係,都,沒,有。 雖然式子裏都有 w,但此 w 非彼 w,前面的 w 指的是你想要找出機率的某個字,後面的 w 則只是拿來代稱所有符合它條件的字而已,課本細緻一點應該要分開,但這邊我們先原諒它。 不知道某個變數代表什麼的時候,除了往前翻,往後看也很好。 $p(w|C)$ 很明確,指的是這個字 w 出現在所有文章 (corpus) 裏的機率,那 $\alpha_d$ 到底是什麼呢? 其實可以把它當成是調整 $p(w|C)$ 的權重。也就是說,雖然我們設計了一個方法來去掉 0,但直接拿 $p(w|C)$ 還是毛毛的(畢竟重點應該還是在文章 d),所以找個權重平衡它一下。 那根據上面對分子分母的解釋,權重這樣訂的理由是,如果 query 裏的字多半不在文章 d 裏,因為資訊少,所以我們要稍微重視這些沒看過得字的出現;而如果 query 落落長,或是這些字在其他文章裏更常出現,那我們基本上就可以忽略這些沒看過的字。 所以為什麼這樣訂,跟機率本身好像也沒什麼關係(其實這個分子分母的關係,還蠻有條件機率的味道的),純粹是提出的研究者覺得這樣比較合理,實驗結果也不錯。 雖然同學針對這部分,還有一些零星的問題,但我想應該都回在上面了。 至於不太知道或不能想像 p 是怎麼算的同學,可以參考投影片第 18 頁。 ## 出自上週(3/31)投影片第 29 頁:  ### 同學疑問(2): $c(w|q)$ 的出現理由。 首先這個證明本身蠻精彩的,同學們可以花點時間細細看懂一下。 它的目標其實是要算出最左邊的 $\log p(q|d)$,也就是 「整個 query 出現在文章 d 的機率」(順便再取個 log)(取 log 是因為乘除可以變加減,非常方便) 這邊同學應該是誤解了 $c(w|q)$ 的意思,這是「字 w 出現在 query 裏的次數(count) 」噢。 至於為什麼是這樣,可以看一下證明第二行。 根據上面的做法,我們大概可以猜測這個證明是要討論「有出現在文章 d 的 w」跟 「沒有出現在文章 d 的 w」兩種情況 (w 是 query 裏的字) ,把這些情況的機率都加起來後,就可以得到整個 query 的機率了。然後偷瞄一下下標,看起來最像的就是 c(w, d) 了,所以猜測 c 是 count,w 是字,d是文章。 那算 d 就好了,算 q 的理由是什麼呢? 第一,這樣可以便利地排除掉所有不在 query 裏的字,我覺得是證明 state 上的一個巧思,第二,其實通常一個字 w 在 query 裏也只會出現一次,所以也就乘 1 而已,那如果好巧不巧出現了很多 w 在 query 裏,是不是也代表這個字特別重要呢? ## 出自上週(3/31)投影片第 30 頁:  ### 同學疑問(3): 這些變數為什麼要這樣解釋。 首先,這頁是剛剛前一頁巧妙的證明/移項之後的成果。 我們先假設這整條公式的出現都是合理推演好嗎?(當然也真的是) 左邊那項的分子是指 w 出現在文章 d 的機率,偷瞄 18 頁 p 的算法之後,發現真的很像 TF 欸! 左邊項的分母請你回頭參考我們前面的解釋,在 $\alpha_d$ 固定的情況下(理由請參考問題(1)), $p(w|C)$ 越大(代表這個字在整個文件集裏越常見),整個分數的數值就越小,其實就很像在算 idf (字稀有->數字大)。 中間那項其實不難。講得隨便一點,它就是證明過程中多出來的一項,而剛好因為長文章比較容易出現 query 裏的字,長文章的 $\alpha_d$ 就會比短文章小,短文章就會在這一項比較佔優勢。 這種打擊文章長度的作法,我們一般就稱為 (Doc) Length Normalisation。 詳情可以參考: 1. http://ir.dcs.gla.ac.uk/wiki/Length_Normalisation 2. https://zh-tw.coursera.org/lecture/text-retrieval/lesson-2-3-doc-length-normalization-RnXhr 至於最右邊那一項,因為跟文章 d 沒有關係,其實在針對不同文章做討論的時候,可以視為常數。因此,在進行不同的文章排序的時候,不影響結果,所以可以不管。 ## 出自上週(3/31)投影片第 31 頁: ### 同學疑問(4): Absolute discounting 的做法為什麼可以平滑化。 首先我們合併考慮兩個情況,w 在 d 裏,跟 w 不在 d 裏。 w 在 d 裏的話 c(w, d) 就會大於等於1,而 w 不在 d 裏會等於 0。而首先它先用 $\delta$ 讓這個距離小於原本的差距了,這樣已經算有 smooth 到;右邊則是額外考量 w 在其他文章裏的出現情況,雖然兩種 w 都會被計算到,但這樣對於不在 d 裏的 w 就不是完全沒有的情況,整個差距其實也縮小了,也通常不會是 0 (是 0 代表 w 完全不在文件集裏,那也就算了吧XD)。 而右邊之所以乘上 d 的絕對值,是因為右邊這項跟 d 其實沒關係,下面多除了,乘一個補給它。 ## 出自上週(3/31)投影片第 39 頁: ### 同學疑問(5): 這邊關於 Assumption 的評論是什麼意思。 ### 1. Queries and documents are objects of same type. 這個字面上的意思,就是我們把 query 跟 document 當成同一種東西,用一樣的方法處理。 比如我們在 Vector Space Model (如 tf-idf),不管 query 跟 doc,我們取向量的方法都一樣,把 query 當成比較短的 document。 但實際上 query 跟 document 因為來源跟形成的目的不同,應該有些不同的搞法,實際上也有些語言模型是這樣做的。 ### 2. Simplifying assumption: Terms are conditionally independent. 這個假設是說每個字彼此會獨立出現,所以前面的機率我們都用獨立事件來算每一個 w。那當然聽起來就怪怪的,比如 "Mathematics" 就常常跟 "tragedy" 還有 "painful" 一起出現嘛,用獨立事件其實怪怪的。 我們在進行數學上的討論和證明的時候,為了讓過程變得好算,通常會引進一些「沒有那麼符合現實情況的假設」,這些假設有強有弱,強的通常代表「現實世界中不太容易發生的情況」。最後一段也就是在說,因為 Vector Space Model 的假設太強了,而這周介紹的基於機率的 Language Model 沒有引進那麼多強假設,所以比 Vector Space Model 乾淨XD
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up