4. 文本建模
我们日常生活中总是产生大量的文本,如果每一个文本存储为一篇文档,那每篇文档从人的观察来说就是有序的词的序列 $d=(w_1, w_2, \cdots, w_n)$。
包含$M$ 篇文档的语料库
统计文本建模的目的就是追问这些观察到语料库中的的词序列是如何生成的。统计学被人们描述为猜测上帝的游戏,人类产生的所有的语料文本我们都可以看成是一个伟大的上帝在天堂中抛掷骰子生成的,我们观察到的只是上帝玩这个游戏的结果 —— 词序列构成的语料,而上帝玩这个游戏的过程对我们是个黑盒子。所以在统计文本建模中,我们希望猜测出上帝是如何玩这个游戏的,具体一点,最核心的两个问题是
上帝都有什么样的骰子;
上帝是如何抛掷这些骰子的;
第一个问题就是表示模型中都有哪些参数,骰子的每一个面的概率都对应于模型中的参数;第二个问题就表示游戏规则是什么,上帝可能有各种不同类型的骰子,上帝可以按照一定的规则抛掷这些骰子从而产生词序列。
上帝掷骰子
4.1 Unigram Model
假设我们的词典中一共有 $V$ 个词 $v_1, v_2, \cdots v_V$,那么最简单的 Unigram Model 就是认为上帝是按照如下的游戏规则产生文本的。
上帝的这个唯一的骰子各个面的概率记为 $\overrightarrow{p} = (p_1, p_2, \cdots, p_V)$, 所以每次投掷骰子类似于一个抛钢镚时候的贝努利实验, 记为 $w\sim Mult(w|\overrightarrow{p}) $。
上帝投掷$V$ 个面的骰子
对于一篇文档$d=\overrightarrow{w}=(w_1, w_2, \cdots, w_n)$, 该文档被生成的概率就是
$$ p(\overrightarrow{w}) = p(w_1, w_2, \cdots, w_n) = p(w_1)p(w_2) \cdots p(w_n) $$
而文档和文档之间我们认为是独立的, 所以如果语料中有多篇文档 $\mathcal{W}=(\overrightarrow{w_1}, \overrightarrow{w_2},…,\overrightarrow{w_m})$,则该语料的概率是
$$p(\mathcal{W})= p(\overrightarrow{w_1})p(\overrightarrow{w_2})
\cdots p(\overrightarrow{w_m}) $$
在 Unigram Model 中, 我们假设了文档之间是独立可交换的,而文档中的词也是独立可交换的,所以一篇文档相当于一个袋子,里面装了一些