論文筆記 | Cache Method in n-gram

前言

本篇簡略介紹一下 (Kuhn, 1988)[1] 和 (Kuhn, De Mori, 1990)[2] 中的主要思想,即在 n-gram 基礎的馬爾科夫模型中引入 cache 機制的方法。作爲討論後續使用神經網絡方法引入連續 cache 的序列模型的鋪墊。

思想

爲序列模型引入 cache 是基於這樣的假設:近期使用的單詞,出現頻率比全局更高。這是一個受語言學啓發的假設。

原語言模型基於 n-gram ,論文中提出的模型爲其增加了 cache 部分。以 Part-of-Speech (POS) 作爲線索,改進語言模型。這是基於另一個假設:一個內容詞(a content word),比如特定的名詞或動詞,傾向於集中出現;而功能詞(function words),傾向於平均分佈。

模型的核心可以用以下公式概括:

P(W_i = W | g_i = g_j) \approx k_{M, j} \times f(W_i = W | g_i = g_j) + k_{C, j} \times C_j(W, i)

各項含義如下:

  • W_i = W 即第 i 個位置上的單詞是 W
  • g_i = g_j 即第 i 個位置上的 POS 是 g_j
  • k_{M, j} + k_{C, j} = 1 ,兩項分別代表全局 Markov 模型部分概率權重和 cache 部分概率權重。注意到不同的 POS 對應不同的權重分配。
  • f(W_i = W | g_i = g_j) 爲全局 Markov 模型,這裏使用的是 3g-gram 。
  • C_j(W, i) 爲從第 j 個 POS 對應的 cache 中所得到第 i 個位置單詞爲 W 的概率,代表了語境信息。

進行序列預測時,每個 POS 維護一個 LRU 的 cache 儲存一定量的單詞。對於第 i 個位置,預測其爲單詞 W 的概率由前兩個位置的 POS 產生各種 POS 的概率,乘以由上面公式計算出不同 POS 生成該單詞的概率得到。

以上部分,略去了 trigram 預測 POS 的模型以及對 out-of-vocabulary 單詞的處理。具體可見論文。

結果

實驗證明了 cache 的有效性,併爲內容詞與功能詞的語言學假設提供了實驗支持。實驗發現[2],功能詞全局部分比重較大,而內容詞 cache 部分與全局部分比重相當。

評論

對語境信息建模的方式很多,直接用 cache 儲存起來算是很直接的想法。這篇論文[3]將 Kuhn 兩篇中的思想改成了連續版本,依然保留了無需訓練的優點。也許有的時候模型偏置(model bias)不需要對處理的過程太過干預,能爲其提供獲得想要信息的方法就好。


  1. Kuhn, R. (1988). Speech recognition and the frequency of recently used words: A modified markov model for natural language. Proceedings of the 12th conference on Computational linguistics-Volume 1, Association for Computational Linguistics.

  2. Kuhn, R. and R. De Mori (1990). "A cache-based natural language model for speech recognition." IEEE transactions on pattern analysis and machine intelligence 12(6): 570-583.

  3. Grave, E., et al. (2016). "Improving neural language models with a continuous cache." arXiv preprint arXiv:1612.04426.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章