介绍
本文分享几个好玩的知识点:
- 前馈神经网络
- bag of words(词袋)
- 使用ffnn获取词向量
前馈神经网络
什么叫前馈神经网络呢,emmm,自个去看百度百科定义前馈神经网络。简单来说,就是两个linear加一个激活函数,简单结构如下:
1 | class FFNN(nn.Module): |
其中大名鼎鼎的transformer中也用到了FFNN,所以要认真对待每一种结构哦。
bag of words(词袋)
啥叫词袋呢,emmmm,这个咋解释呢?就是从一堆词取context_size大小的词回来。它没有顺序,所以叫做词袋。比如unigram, bigram, trigram,ngram,都是属于词袋。
而大名鼎鼎的word2vec也是属于词袋这种的哦!这里画重点。
使用ffnn获取词向量
这里就不难理解了,就是换一种方式来实现词向量的获取方式。我在这两采用了两种方式,第一种是以前面两个词为准,获取当前词,这叫做用过去的词来预测未来的词。嘿嘿,如果脑洞大开点的话,是不是有种transformer encoder的感觉😂😂😂。
1. 使用过去词预测当前词
1 | # Defined in Section 5.3.1.2 |
2. 使用过去和未来的词预测当前词
是不是像cbow~
1 |
|
总结
这两者之间就以下几点不同:
- NGramDataset那里在获取context_size的词时不一样
- 训练时linear1的in_feature大小变了。
其余都一样哦,可以自己跑一跑呢。