自然语言处理——word2vec项目实战——从Word2Vec到FastText

从Word2Vec到FastText

Word2Vec在深度学习中的应⽤

  • ⽂本⽣成(Word2Vec + RNN/LSTM)
  • ⽂本分类(Word2Vec + CNN)

文本生成

神经网络:一堆公式组成的非线性回归模型

普通神经网络

在这里插入图片描述

带记忆神经⽹络

所以说,光直接feed不⾏,我们希望我们的分类器能够记得上下⽂前后⽂关系:

RNN的⽬的是让有sequential关系的信息得到考虑。

什么是sequential关系? 就是信息在时间上的前后关系。

RNN

在这里插入图片描述

每个时间点中的 S S S 计算:短期记忆
S t = f ( U x t + W s t − 1 ) S_t=f(U_{x_t}+W_{s_{t-1}}) St=f(Uxt+Wst1)
这个神经元最终的输出,基于最后一个 S S S
O t = s o f t m a x ( V S t ) O_t=softmax(V_{S_t}) Ot=softmax(VSt)
简单来说,对于t=5来说,其实就相当于把⼀个神经元拉伸成五个

换句话说,S就是我们所说的记忆(因为把t从1-5的信息都记录下来了)

LSTM

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

long short-term memory —— 长效短期记忆

在这里插入图片描述

LSTM中最重要的就是这个Cell State, 它⼀路向下,贯穿这个时间线, 代表了记忆的纽带。

它会被XOR和AND运算符搞⼀搞, 来更新记忆

⽽控制信息的增加和减少的, 就是靠这些阀⻔:Gate

在这里插入图片描述

1 代表,把这⼀趟的信息都记着

0 代表,这⼀趟的信息可以忘记了

  1. 忘记门

来决定我们该忘记什么信息

它把上⼀次的状态ht-1和这⼀次的输⼊xt相⽐较。通过gate输出⼀个0到1的值(就像是个activation function⼀样)

1 代表:给我记着! 0 代表:快快忘记!
在这里插入图片描述

f t = σ ( w f ⋅ [ h t − 1 , x t ] + b f ) f_t=\sigma(w_f\cdot[h_{t-1},x_t]+b_f) ft=σ(wf[ht1,xt]+bf)

  1. 记忆门

哪些该记住

这个门比较复杂,分两步:

第⼀步,用sigmoid决定什么信息需要被我们更新(忘记旧的)

第⼆步,用Tanh造⼀个新的Cell State(更新后的cell state)

在这里插入图片描述

i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) C t ~ = t a n h ( W C ⋅ [ h t − 1 , x t ] + b C ) i_t=\sigma(W_i\cdot[h_t-1,x_t]+b_i) \\\tilde{C_t}=tanh(W_C\cdot[h_{t-1},x_t]+b_C) it=σ(Wi[ht1,xt]+bi)Ct~=tanh(WC[ht1,xt]+bC)

  1. 更新门

把⽼cell state更新为新cell state

⽤XOR和AND这样的门来更新我们的cell state:

在这里插入图片描述

C t = f t ∗ C t − 1 + i t ∗ C t ~ C_t=f_t*C_{t-1}+i_t*\tilde{C_t} Ct=ftCt1+itCt~

  1. 输出门

由记忆来决定输出什么值

我们的Cell State已经被更新,

于是我们通过这个记忆纽带,来决定我们的输出:

(这⾥的Ot类似于我们刚刚RNN⾥直接⼀步跑出来的output)
在这里插入图片描述

O t = σ ( W σ [ h t − 1 , x t ] + b o ) h t = O t ∗ t a n h ( C t ) O_t=\sigma(W_{\sigma}[h_{t-1},x_t]+b_o) \\h_t=O_t*tanh(C_t) Ot=σ(Wσ[ht1,xt]+bo)ht=Ottanh(Ct)

文本分类

在这里插入图片描述

Baseline: BoW + SVM

Deep Learning: CNN for Text

CNN4Text

在这里插入图片描述

模糊 + 锐化

在这里插入图片描述

如何迁移到文字处理?

C i = f ( W T X i : i + h − 1 + b ) C_i=f(W^TX_{i:i+h-1}+b) Ci=f(WTXi:i+h1+b)

  1. 把文字表示成图片
    在这里插入图片描述

在这里插入图片描述

  1. 把 CNN 做成 1D

在这里插入图片描述

RNN生成文本 ——→ 逻辑严明,保证顺序

CNN文本分类 ——→ 可以容忍错误

边界处理:

Narrow vs Wide

在这里插入图片描述

Stride size:(几步扫一下)

在这里插入图片描述

Fast Text

word2vec:

在这里插入图片描述

Fast Text:

在这里插入图片描述

  1. Bow ——→ Bi-Gram
  2. Hashing Trick
  3. Hierachy Softmax

专注于文本分类、空间压缩时间提速

猜你喜欢

转载自blog.csdn.net/weixin_46489969/article/details/125070263