NLP笔记 CS224n (6) —— RNN 和 Language Model

传送门

笔者在总结时跳过了第3,4,5节课。其中第3,4节课分别介绍了神经网络和反向传播,笔者假定读者有着基本的机器学习和神经网络相关的知识,所以掠过了这两章内容。其中第5节课介绍了语法结构,但是因为与笔者目前方向不一致,故略去。

本节为第6节课,介绍了Language Model并且以此为契机引入了RNN模型。

Language Model 语言模型

天气预报说今天下雨,所以出门要________

语言模型要做的事情,就是给出一段文字,由模型生成其后的内容。语言模型是NLP领域内一个bench mark的问题。

n-gram Language Model

假设一段文字给出了前 n n n 个词 x ( 1 ) , x ( 2 ) , . . . , x ( n ) x^{(1)},x^{(2)},...,x^{(n)} x(1),x(2),...,x(n),要生成的词为 x ( n + 1 ) x^{(n+1)} x(n+1) 的概率为

P ( x ( n + 1 ) ∣ x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) P(x^{(n+1)}|x^{(1)},x^{(2)},...,x^{(n)}) P(x(n+1)x(1),x(2),...,x(n))

如果可以计算出这个分布,就可以得到一个已知上文生成下文的概率分布,从而通过选取概率最大的结果来实现生成操作。改变 n n n 的值,即可改变上文窗口的大小,对模型做出调整。那么可以直接暴力遍历整个语料库,并且计算概率,结果保存在一个巨大的概率矩阵中。

这种做法类似于一个马尔可夫模型,其中每个节点为n个前后相继的词,也就是说其状态空间为 ( ∣ X ∣ ) n (|X|)^{n} (X)n ,其中 ∣ X ∣ |X| X 为词汇集的大小。然后暴力枚举语料库,并且人工标注每个转移发生的概率,需要注意的是,可能发生的转移只有 { a , b , . . . , c } → { b , . . . , c , d } \{a,b,...,c\}\rightarrow\{b,...,c,d\} { a,b,...,c}{ b,...,c,d}

这种做法有着如下致命缺陷:

  1. 只能有几个上文与之相关,其余信息都被抛弃,如上文的例子,如果n过小的话则无法获取下雨的信息,则难以猜出这个词应该是伞。
  2. 存储容量巨大,上述的概率要完全存储需要存储 ( ∣ X ∣ ) n + 1 (|X|)^{n+1} (X
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值