李宏毅:deep learning for language modeling
1、language modeling
2、n-gram
3、neural network based language model
4、RNN-based LM
与NN不一样的是:NN是只看当前的input来得出output,RNN是根据之前所有的input来看当前的output。
eg:RNN中,要得到“知道”,它就要知道之前的所有的词汇来决定当前的output。
5、n-gram的缺陷以及改进方案
n-gram不好的原因是因为database太小了(data sparsity),它的概率才会变成0,其实它的概率是有可能发生的。
解决方法:加一个平滑(smoothing)
6、Matrix Factorization
Matrix Factorization是和smoothing不一样的,它可以知道history里的词之间的联系,smoothing是不知道的
将h和v进行inner product(内积),h与每一个vocabulary做一次inner product,输出一共有|V|个节点,每个节点 yi表示下一个词为i的未归一化log概率,最后使用softmax**函数将输出值y归一化成概率。