CNN
卷积神经网络的核心当然是卷积
存在着一个个填充着数字的小方格,他们被称之为卷积核
词向量模型
word2vec
自然语言处理-词向量模型
如何将文本向量化
看词频和总体的个数和整体的关系
- 改变顺序不应该改变词频
- 让计算机更好的认识文本
- 词相近应该再向量上的表达应该是相同的
学习顺序
- 先学习神经网络
- 再了解词向量模型
如何实现文本向量化
相近的词应该表达的是相同的含义
一些小点
- 在描述一个东西的时候应该要考虑多重的因素
- 应该从多方面进行研究,综合考虑多个指标
- 二维空间进行研究显然不合适,信息太少
- 词向量谷歌推荐使用300维的
向量和向量之间
- 做相似度计算
- 判断哪些词之间是相近的,是相反的
- 前提是构建不同的词向量
模型整体框架
词向量
无非就是一个值
- 向量的数值很难表达其含义
- 训练好一个词向量,并不难
- 相似的词在特征表达中是比较相似的!也就是说明词的特征是有实际意义的!
- 很多位置的颜色是相似的!
- 说明训练结果有效
- 男人和男孩这个词是相近的!
考虑?词向量模型中的输入和输出是?
- 神经网络是黑盒子
- 神经网络希望他学到说话的关系
输出
- 数据如何进行构建
- 词如何从神经网络输入
- 一个词用4个小格来表示
- 词先到词库中找到自己的向量embedding look up
- 库中的代表怎么来?
- 随机初始化的操作
- 随机构造初始化的策略
- 进行随机初始化
训练数据构建
数据从哪来?
语言是可以跨区域的
- 一切有正常含义的都可以当成训练数据
如何构建训练数据
滑动窗口
- 任务不需是一个必监督的数据集
- 拿窗口去扫描即可
- 构建数据集
有了训练数据就可以来训练模型了
不同模型的对比
CBOW
- 输入是上下文
- 输出是当前词
SKIP-GRAM模型
每一个窗口进行滑动
- 得到巨大的词
- 得到loss函数
- 反向传播
- 权重函数如何更新
- 对结果的影响程度
两步走
- 更新权重参数
- 更新输入数据
语料库太大,结果太多,最后一层相当于softmax,计算过程耗时耗力,如何解决?
通过A如何去预测B?
- A和B同时输入,预测可能性有多大?
- 希望target标签预测的结果是1
学起来,每天边哭边学
负采样方案(模型)
自己额外多做一件事
- 人为创建一些词
- 负样本:人为构造出来的
- 正样本:训练集中存在的东西
负采样模型使用5个参数比较好
初始化词向量训练矩阵
通过神经网络反向传播来更新,此时不光更新权重矩阵W,也会更新输入数据。
词汇表越更新越准
知道word2vec训练好,将数据传入神经网络,就可以得到最终的结果