前言
本篇簡略介紹一下 (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),傾向於平均分佈。
模型的核心可以用以下公式概括:
各項含義如下:
- 即第 個位置上的單詞是
- 即第 個位置上的 POS 是
- ,兩項分別代表全局 Markov 模型部分概率權重和 cache 部分概率權重。注意到不同的 POS 對應不同的權重分配。
- 爲全局 Markov 模型,這裏使用的是 3g-gram 。
- 爲從第 個 POS 對應的 cache 中所得到第 個位置單詞爲 的概率,代表了語境信息。
進行序列預測時,每個 POS 維護一個 LRU 的 cache 儲存一定量的單詞。對於第 個位置,預測其爲單詞 的概率由前兩個位置的 POS 產生各種 POS 的概率,乘以由上面公式計算出不同 POS 生成該單詞的概率得到。
以上部分,略去了 trigram 預測 POS 的模型以及對 out-of-vocabulary 單詞的處理。具體可見論文。
結果
實驗證明了 cache 的有效性,併爲內容詞與功能詞的語言學假設提供了實驗支持。實驗發現[2],功能詞全局部分比重較大,而內容詞 cache 部分與全局部分比重相當。
評論
對語境信息建模的方式很多,直接用 cache 儲存起來算是很直接的想法。這篇論文[3]將 Kuhn 兩篇中的思想改成了連續版本,依然保留了無需訓練的優點。也許有的時候模型偏置(model bias)不需要對處理的過程太過干預,能爲其提供獲得想要信息的方法就好。
-
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. ↩
-
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. ↩ ↩
-
Grave, E., et al. (2016). "Improving neural language models with a continuous cache." arXiv preprint arXiv:1612.04426. ↩