1.复习word2vec

P(o∣c)=exp(uoTvc)∑w∈Vexp(uwTvc)P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{{w}\in{V}}exp(u_w^Tv_c)}P(o∣c)=∑w∈V​exp(uwT​vc​)exp(uoT​vc​)​

*更新词向量*

2.梯度下降法


梯度下降法
θnew=θold−α∇θJ(θ)\theta^{new}=\theta^{old}-\alpha\nabla_{\theta}J(\theta)θnew=θold−α∇θ​J(θ)

while True:theta_grad = evaluate_gradient(J, corpus, theta)theta = theta - alpha * theta_grad

混合梯度下降法

while True:window = sample_window(corpus)theta_grad = evaluate_gradient(J, corpus, theta)theta = theta - alpha * theta_grad

∇θJt(θ)=[0⋮∇vlike⋮0∇uI⋮∇ulearning⋮]∈R2dV\nabla_{\theta}J_t(\theta)=\begin{bmatrix} 0 \\ \vdots \\ \nabla_{v_{like}} \\ \vdots \\ 0 \\ \nabla_{u_I} \\ \vdots \\ \nabla_{u_learning} \\ \vdots \end{bmatrix}\in{\mathbb R}^{2dV}∇θ​Jt​(θ)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​0⋮∇vlike​​⋮0∇uI​​⋮∇ul​earning​⋮​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​∈R2dV

SG和CBOW
SG=Skip-grams
CBOW=Continuous Bag of Words
如果说SG是通过一个词汇揣测上下文的话,那么CBOW就是完型填空。教授推荐使用SG来训练词向量。

SG和负采样
主动制造一些干扰(negative samples)来扩大数据集,增强词向量的鲁棒性。这个就像CV里的数据增强相似。
J(θ)=1T∑t=1TJt(θ)J(\theta)=\frac{1}{T}\sum_{t=1}^TJ_t(\theta)J(θ)=T1​t=1∑T​Jt​(θ)
Jt(θ)=log⁡σ(uoTvc)+∑i=1kEj∼P(w)[log⁡σ(−ujTvc)]J_t(\theta)=\log\sigma(u_o^Tv_c)+\sum_{i=1}^k{\mathbb E}_{j \sim P(w)}[\log\sigma(-u_j^Tv_c)]Jt​(θ)=logσ(uoT​vc​)+i=1∑k​Ej∼P(w)​[logσ(−ujT​vc​)]

Jneg−sample(o,vc,U)=−log⁡(σ(uTvc))−∑k=1Klog⁡(σ(−ukTvc))J_{neg-sample}({\bf o,v_c,U})=-\log(\sigma({\bf u^Tv_c}))-\sum_{k=1}^K\log(\sigma(-{\bf u_k^Tv_c}))Jneg−sample​(o,vc​,U)=−log(σ(uTvc​))−k=1∑K​log(σ(−ukT​vc​))

3.为什么不直接使用共现矩阵(co-occurrence matrix)

NLP使用共现矩阵的问题:①稀疏②维度爆炸
解决方案:降低维度
如果是方阵,可以使用特征值进行降维;如果是更一般的矩阵,就使用SVD

python代码示例:
例如,语料是“I like deep learning. I like NLP. I enjoy flying.”

import numpy as np
la = np.linalg
words = ["I", "like", "enjoy", "deep", "learing", "NLP", "flying", "."]
X = np.array([[0,2,1,0,0,0,0,0],[2,0,0,1,0,1,0,0],[1,0,0,0,0,0,1,0],[0,1,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,1,0,0,0,0,0,1],[0,0,1,0,0,0,0,1],[0,0,0,0,1,1,1,0]])
U, s, Vh = la.svd(X, full_matrices=False)


GloVe
wi.wj=log⁡P(i∣j)w_i.w_j=\log P(i|j)wi​.wj​=logP(i∣j)
J=∑i,j=1Vf(Xij(wiTw~j+bi+b~j−log⁡Xij)2J=\sum_{i,j=1}^{V}f(X_{ij}(w_i^T\tilde w_j+b_i+\tilde b_j-\log X_{ij})^2J=i,j=1∑V​f(Xij​(wiT​w~j​+bi​+b~j​−logXij​)2

Glove的优点:
①训练快
②可以训练超大规模的语料库
③即使语料库很小,词向量很小,也有不错的性能

Datawhale 零基础⼊⻔NLP-Task2 Word Vectors and Word Senses相关推荐

  1. Datawhale 零基础入门数据挖掘-Task2 数据分析

    数据探索在机器学习中我们一般称为EDA(Exploratory Data Analysis):是指对已有的数据(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索,通过作图.制表.方程拟合. ...

  2. Task 2: Word Vectors and Word Senses (附代码)(Stanford CS224N NLP with Deep Learning Winter 2019)

    Task 2: Word Vectors and Word Senses 目录 Task 2: Word Vectors and Word Senses 一.词向量计算方法 1 回顾word2vec的 ...

  3. Datawhale零基础入门数据挖掘-Task5模型融合

    Datawhale零基础入门数据挖掘-Task5模型融合 五.模型融合 5.1 模型融合目标 5.2 内容介绍 5.3 Stacking相关理论介绍 5.4 代码示例 5.4.1 回归\分类概率-融合 ...

  4. Task 3 特征工程 Datawhale零基础入门数据挖掘- 二手车交易价格预测

    Task 3 特征工程 Datawhale零基础入门数据挖掘- 二手车交易价格预测 Tips:此部分为零基础入门数据挖掘的Task3特征工程部分,主要包含各种特征工程以及分析方法 赛题:零基础入没人能 ...

  5. Datawhale零基础入门NLP赛事 - Task5 基于深度学习的文本分类2

    在上一章节,我们通过FastText快速实现了基于深度学习的文本分类模型,但是这个模型并不是最优的.在本章我们将继续深入. 基于深度学习的文本分类 本章将继续学习基于深度学习的文本分类. 学习目标 学 ...

  6. Datawhale零基础入门NLP day5/Task5基于深度学习的文本分类2

    基于深度学习的文本分类 本章将继续学习基于深度学习的文本分类. 学习目标 学习Word2Vec的使用和基础原理 学习使用TextCNN.TextRNN进行文本表示 学习使用HAN网络结构完成文本分类 ...

  7. Datawhale零基础入门金融风控 Task2/4 数据分析

    Task2 数据分析 此部分为零基础入门金融风控的 Task2 数据分析部分,带你来了解数据,熟悉数据,为后续的特征工程做准备,欢迎大家后续多多交流. 赛题:零基础入门数据挖掘 - 零基础入门金融风控 ...

  8. Datawhale 零基础入门数据挖掘心跳信号分类学习反馈02

    Detail 零基础入门数据挖掘 (心跳信号分类) 学习反馈TASK2 使用语言:python Tas1 – Task5 Task2_数据探索性分析 涉及函数:总览+判断数据缺失和异常+分布 data ...

  9. Datawhale 零基础入门数据挖掘心跳信号分类学习反馈

    Detail 零基础入门数据挖掘 (心跳信号分类) 学习反馈TASK1 使用语言:python Tas1 – Task5 Task1 赛题理解: 根据给定的数据集,建立模型,预测不同的心跳信号(以预测 ...

  10. 【组队学习】【23期】Datawhale零基础入门数据挖掘(心跳信号分类)

    零基础入门数据挖掘(心跳信号分类) 开源内容:https://github.com/datawhalechina/team-learning-data-mining/tree/master/Heart ...

最新文章

  1. PyCharm开启或关闭科学模式
  2. 《深入浅出Ext JS》改版意见有奖征集活动!
  3. 排序算法(二)--堆排序(JAVA)
  4. Spark实战电影点评系统(一)
  5. 计算机cf编程,警察牧马人宏自定义编程计算机游戏鼠标有线大声笑/ cf英雄联盟光速质量保证....
  6. 段落分页与换行、让段落不在二页上
  7. Java将指定文件/文件夹压缩成zip、rar压缩文件--解決中文乱码
  8. 基于JS实现购物车图片局部放大预览效果
  9. 【读书笔记】《写给大家看的设计书》
  10. 第十届网络文化节活动和流程
  11. 简单的一个学生管理系统的实现(源码)
  12. CISP-PTE靶机练习(me-and-my-girlfriend)
  13. 一文看完澜舟科技被EMNLP'22录用的三篇论文
  14. [VB.NET]单元四 窗体编程
  15. 一年换12次女朋友,绝了
  16. Joomla远程代码执行漏洞分析小白版(小宇特详解)
  17. Abandoned connection cleanup thread failed to stop
  18. 阿里面试官:高并发大流量秒杀系统如何正确的解决库存超卖问题?(建议收藏)
  19. idea自动下载gradle失败解决方案
  20. java用正则表达式判断一个字符串是否是车牌号

热门文章

  1. java组件 下载失败_jenkins 下载插件失败 有效的处理办法(亲测)
  2. python获取东京奥运会金牌排行榜及获奖人员并部署云函数每天邮件发送
  3. 校园小情书小程序源码-开源表白墙告白墙小程序源码+后端+手动部署方式
  4. python必须用电脑吗_Python 初学者请注意!别这样直接运行 Python 命令,否则电脑等于“裸奔”...
  5. Unable to load weights from pytorch checkpoint file
  6. 统信UOS 飞腾平台 单机搭建ETCD 无Leader节点
  7. JavaSE基础知识(五)--面向对象代码实现初步(实现一个简单的类类型代码)
  8. 关于python基础错误UnicodeDecodeError、TypeError
  9. 官宣 ! 52abp_Pro版本低调上线
  10. 在阿里云服务器windows server 2008r2上面搭建FTP服务器