斯坦福NLP名课带学详解 | CS224n 第2讲 - 词向量进阶(NLP通关指南·完结)

斯坦福NLP名课带学详解 | CS224n 第13讲 - 基于上下文的表征与NLP预训练模型(ELMo, transformer)(NLP通关指南·完结) NLP课程第13讲介绍了词向量 (word representations) 知识回顾、ELMo模型、ULMfit模型、Transformer结构和BERT等。 阅读详情

ShowMeAI研究中心


词向量进阶

ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!

GloVe及词向量的训练与评估

本讲内容的深度总结教程可以在这里 查看。视频和课件等资料的获取方式见文末。

引言

CS224n是顶级院校斯坦福出品的深度学习与自然语言处理方向专业课程。核心内容覆盖RNN、LSTM、CNN、transformer、bert、问答、摘要、文本生成、语言模型、阅读理解等前沿内容。

本篇是ShowMeAI对第2课的内容梳理,内容覆盖词嵌入/词向量,word vectors和word senses。

Word Vectors and Word Senses

本篇内容覆盖

  • word2vec与词向量回顾
  • 算法优化基础
  • 计数与共现矩阵
  • GloVe模型
  • 词向量评估
  • word senses

Word Vectors and Word Senses

1.word2vec与词向量回顾

1.1 复习:word2vec的主要思想

复习:word2vec的主要思想

我们来回顾一下ShowMeAI上一篇 1.NLP介绍与词向量初步 提到的word2vec模型核心知识

  • 模型会遍历整个语料库中的每个单词
  • 使用中心单词向量预测周围的单词(Skip-Gram)

P ( o ∣ c ) = exp ⁡ ( u o T v c ) ∑ w ∈ V exp ⁡ ( u w T v c ) P(o | c)=\frac{\exp \left(u_{o}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} P(o∣c)=∑w∈V​exp(uwT​vc​)exp(uoT​vc​)​

  • 更新向量(参数)以便更好地预测上下文

1.2 Word2vec参数和计算

Word2vec参数和计算

我们对word2vec的参数和训练细节等做一个补充讲解:

  • U U U 、 V V V 矩阵,每行代表一个单词的词向量,点乘后得到的分数通过softmax映射为概率分布。得到的概率分布是对于该中心词而言的上下文中单词的概率分布,该分布与上下文所在的具体位置无关,所以在每个位置的预测都是一样的。
  • the、and、that、of等停用词,是每个单词点乘后得到的较大概率的单词,去掉这一部分可以使词向量效果更好。

1.3 word2vec训练得到的词向量分布体现语义相似度

经过word2vec最大化目标函数后,通过可视化可以发现,相似的词汇在词向量空间里是比较接近的。

word2vec训练得到的词向量分布体现语义相似度

1.4 优化算法:梯度下降

ShowMeAI在上一篇 1.NLP介绍与词向量初步 讲解了需要最小化的代价函数 J ( θ ) J(\theta) J(θ) ,我们使用梯度下降算法最小化 J ( θ ) J(\theta) J(θ)

优化算法:梯度下降

遵循梯度下降的一般思路,我们计算 J ( θ ) J(\theta) J(θ) 对于参数 θ \theta θ 的梯度,然后朝着负梯度的方向迈进一小步,并不断重复这个过程,如图所示。

注意:我们实际的目标函数可能不是下图这样的凸函数

2.算法优化基础

2.1 梯度下降算法

梯度下降算法

  • 更新参数的公式(矩阵化写法)

θ n e w = θ o l d − α ∇ θ J ( θ ) \theta^{new}=\theta^{old}-\alpha \nabla_{\theta} J(\theta) θnew=θold−α∇θ​J(θ)

  • α \alpha α :步长,也叫学习率

  • 更新参数的公式(单个参数更新)

θ j n e w = θ j o l d − α ∂ ∂ θ j o l d J ( θ ) \theta_{j}^{new}=\theta_{j}^{old}-\alpha \frac{\partial}{\partial \theta_{j}^{old}} J(\theta) θjnew​=θjold​−α∂θjold​∂​J(θ)

2.2 词向量随机梯度下降法

梯度下降会一次性使用所有数据样本进行参数更新,对应到我们当前的词向量建模问题,就是 J ( θ ) J(\theta) J(θ) 的计算需要基于语料库所有的样本(窗口),数据规模非常大

  • 计算非常耗资源
  • 计算时间太长

梯度下降算法

处理方式是把优化算法调整为「随机梯度下降算法」,即在单个样本里计算和更新参数,并遍历所有样本。

但基于单个样本更新会表现为参数震荡很厉害,收敛过程并不平稳,所以很多时候我们会改为使用mini-batch gradient descent(具体可以参考ShowMeAI的深度学习教程中文章神经网络优化算法)

  • Mini-batch具有以下优点:通过batch平均,减少梯度估计的噪音;在GPU上并行化运算,加快运算速度。

2.3 词向量建模中的随机梯度下降

  • 应用随机梯度下降,在每个窗口计算和更新参数,遍历所有样本

  • 在每个窗口内,我们最多只有 2 m + 1 2m+1 2m+1 个词,因此 ∇ θ J t ( θ ) \nabla_{\theta} J_t(\theta) ∇θ​Jt​(θ) 是非常稀疏的

随机梯度向量

上面提到的稀疏性问题,一种解决方式是我们只更新实际出现的向量

  • 需要稀疏矩阵更新操作来只更新矩阵 U U U 和 V V V 中的特定行

  • 需要保留单词向量的哈希/散列

如果有数百万个单词向量,并且进行分布式计算,我们无需再传输巨大的更新信息(数据传输有成本)

随机梯度向量

2.4 Word2vec的更多细节

Word2vec的更多细节

word2vec有两个模型变体:

  • 1.Skip-grams (SG):输入中心词并预测上下文中的单词
  • 2.Continuous Bag of Words (CBOW):输入上下文中的单词并预测中心词

之前一直使用naive的softmax(简单但代价很高的训练方法),其实可以使用负采样方法加快训练速率

2.5 负例采样的skip-gram模型(作业2)

这个部分大家也可以参考ShowMeAI的深度学习教程中文章自然语言处理与词嵌入

负例采样的skip-gram模型(作业2)

softmax中用于归一化的分母的计算代价太高

P ( o ∣ c ) = exp ⁡ ( u o T v c ) ∑ w ∈ V exp ⁡ ( u w T v c ) P(o | c)=\frac{\exp \left(u_{o}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} P(o∣c)=∑w∈V​exp(uwT​vc​)exp(uoT​vc​)​

  • 我们将在作业2中实现使用 negative sampling/负例采样方法的 skip-gram 模型。
  • 使用一个 true pair (中心词及其上下文窗口中的词)与几个 noise pair (中心词与随机词搭配) 形成的样本,训练二元逻辑回归。

负例采样的skip-gram模型(作业2)

原文中的(最大化)目标函数是 J ( θ ) = 1 T ∑ t = 1 T J t ( θ ) J(\theta)=\frac{1}{T} \sum_{t=1}^{T} J_{t}(\theta) J(θ)=T1​∑t=1T​Jt​(θ)

J t ( θ ) = log ⁡ σ ( u o T v c ) + ∑ i = 1 k E j ∼ P ( w ) [ log ⁡ σ ( − u j T v c ) ] J_{t}(\theta)=\log \sigma\left(u_{o}^{T} v_{c}\right)+\sum_{i=1}^{k} \mathbb{E}_{j \sim P(w)}\left[\log \sigma\left(-u_{j}^{T} v_{c}\right)\right] Jt​(θ)=logσ(uoT​vc​)+i=1∑k​Ej∼P(w)​[logσ(−ujT​vc​)]

  • 左侧为sigmoid函数(大家会在后续的内容里经常见到它)
  • 我们要最大化2个词共现的概率

负例采样的skip-gram模型(作业2)

本课以及作业中的目标函数是

J n e g − s a m p l e ( o , v c , U ) = − log ⁡ ( σ ( u o ⊤ v c ) ) − ∑ k = 1 K log ⁡ ( σ ( − u k ⊤ v c ) ) J_{neg-sample}\left(\boldsymbol{o}, \boldsymbol{v}_{c}, \boldsymbol{U}\right)=-\log \left(\sigma\left(\boldsymbol{u}_{o}^{\top} \boldsymbol{v}_{c}\right)\right)-\sum_{k=1}^{K} \log \left(\sigma\left(-\boldsymbol{u}_{k}^{\top} \boldsymbol{v}_{c}\right)\right) Jneg−sample​(o,vc​,U)=−log(σ(uo⊤​vc​))−k=1∑K​log(σ(−uk⊤​vc​))

  • 我们取 k k k 个负例采样
  • 最大化窗口中包围「中心词」的这些词语出现的概率,而最小化其他没有出现的随机词的概率

P ( w ) = U ( w ) 3 / 4 / Z P(w)=U(w)^{3 / 4} / Z P(w)=U(w)3/4/Z

  • 我们用左侧的公式进行抽样,其中 U ( w ) U(w) U(w) 是 unigram 分布
  • 通过 3/4 次方,相对减少常见单词的频率,增大稀有词的概率
  • Z Z Z 用于生成概率分布

3.计数与共现矩阵

3.1 共现矩阵与词向量构建

在自然语言处理里另外一个构建词向量的思路是借助于共现矩阵(我们设其为 X X X ),我们有两种方式,可以基于窗口(window)或者全文档(full document)统计:

共现矩阵与词向量构建

  • Window :与word2vec类似,在每个单词周围都使用Window,包括语法(POS)和语义信息
  • Word-document 共现矩阵的基本假设是在同一篇文章中出现的单词更有可能相互关联。假设单词 i i i 出现在文章 j j j 中,则矩阵元素 X i j X_{ij} Xij​ 加一,当我们处理完数据库中的所有文章后,就得到了矩阵 X X X ,其大小为 ∣ V ∣ × M |V|\times M ∣V∣×M ,其中 ∣ V ∣ |V| ∣V∣ 为词汇量,而 M M M 为文章数。这一构建单词文章co-occurrence matrix的方法也是经典的Latent Semantic Analysis所采用的【语义分析】。

3.2 基于窗口的共现矩阵示例

利用某个定长窗口(通常取5-10)中单词与单词同时出现的次数,来产生基于窗口的共现矩阵。

基于窗口的共现矩阵示例

下面以窗口长度为1来举例,假设我们的数据包含以下几个句子:

  • I like deep learning.
  • I like NLP.
  • I enjoy flying.

我们可以得到如下的词词共现矩阵(word-word co-occurrence matrix)

基于窗口的共现矩阵示例

3.3 基于直接的共现矩阵构建词向量的问题

直接基于共现矩阵构建词向量,会有一些明显的问题,如下:

基于直接的共现矩阵构建词向量的问题

  • 使用共现次数衡量单词的相似性,但是会随着词汇量的增加而增大矩阵的大小。
  • 需要很多空间来存储这一高维矩阵。
  • 后续的分类模型也会由于矩阵的稀疏性而存在稀疏性问题,使得效果不佳。

3.4 解决方案:低维向量

解决方案:低维向量

针对上述问题,我们的一个处理方式是降维,获得低维稠密向量。

  • 通常降维到(25-1000)维,和word2vec类似

如何降维呢?

3.5 方法1:对X进行降维(作业1)

方法1:对X进行降维(作业1)

可以使用SVD方法将共现矩阵 X X X 分解为 U Σ V T U \Sigma V^T UΣVT ,其中:

  • Σ \Sigma Σ 是对角线矩阵,对角线上的值是矩阵的奇异值
  • U U U , V V V 是对应于行和列的正交基

为了减少尺度同时尽量保存有效信息,可保留对角矩阵的最大的 k k k 个值,并将矩阵 U U U , V V V 的相应的行列保留。

  • 这是经典的线性代数算法,对于大型矩阵而言,计算代价昂贵。

3.6 词向量SVD分解的python代码示例

python矩阵分解示例如下

词向量SVD分解的python代码示例

降维词向量可视化
词向量SVD分解的python代码示例

3.7 #论文讲解#

Hacks to X (several used in Rohde et al. 2005)

#论文讲解#Hacks to X (several used in Rohde et al. 2005)

按比例调整 counts 会很有效

  • 对高频词进行缩放(语法有太多的影响)
    • 使用log进行缩放
    • m i n ( X , t ) , t ≈ 100 min(X, t), t \approx 100 min(X,t),t≈100
    • 直接全部忽视
  • 在基于window的计数中,提高更加接近的单词的计数
  • 使用Person相关系数

3.8 词向量分布探究

词向量分布探究

如果对词向量进行空间分布,会发现同一个词汇的附近分布着它不同时态语态的单词:

  • d r i v e → d r i v e r drive \to driver drive→driver
  • s w i m → s w i m m e r swim \to swimmer swim→swimmer
  • t e a c h → t e a c h e r teach \to teacher teach→teacher

在向量中出现的有趣的句法模式:语义向量基本上是线性组件,虽然有一些摆动,但是基本是存在动词和动词实施者的方向。

3.9 基于计数 VS. 基于预估

基于计数 VS. 基于预估

我们来总结一下基于共现矩阵计数和基于预估模型两种得到词向量的方式

基于计数:使用整个矩阵的全局统计数据来直接估计

  • 优点:训练快速;统计数据高效利用
  • 缺点:主要用于捕捉单词相似性;对大量数据给予比例失调的重视

基于预估模型:定义概率分布并试图预测单词

  • 优点:提高其他任务的性能;能捕获除了单词相似性以外的复杂的模式
  • 缺点:随语料库增大会增大规模;统计数据的低效使用(采样是对统计数据的低效使用)

4.GloVe模型

4.1 #论文讲解#

1)Encoding meaning in vector differences

将两个流派的想法结合起来,在神经网络中使用计数矩阵。关于Glove的理论分析需要阅读原文,也可以阅读 NLP教程(2) | GloVe及词向量的训练与评估。

#论文讲解# Encoding meaning in vector differences

GloVe模型关键思想:共现概率的比值可以对meaning component进行编码。将两个流派的想法结合起来,在神经网络中使用计数矩阵。

补充讲解:

重点不是单一的概率大小,重点是他们之间的比值,其中蕴含着重要的信息成分。

  • 例如我们想区分热力学上两种不同状态ice冰与蒸汽steam,它们之间的关系可通过与不同的单词 x x x 的共现概率的比值来描述

  • 例如对于solid固态,虽然 P ( s o l i d ∣ i c e ) P(solid \mid ice) P(solid∣ice) 与 P ( s o l i d ∣ s t e a m ) P(solid \mid steam) P(solid∣steam) 本身很小,不能透露有效的信息,但是它们的比值 P ( s o l i d ∣ i c e ) P ( s o l i d ∣ s t e a m ) \frac{P(solid \mid ice)}{P(solid \mid steam)} P(solid∣steam)P(solid∣ice)​ 却较大,因为solid更常用来描述ice的状态而不是steam的状态,所以在ice的上下文中出现几率较大

  • 对于gas则恰恰相反,而对于water这种描述ice与steam均可或者fashion这种与两者都没什么联系的单词,则比值接近于 1 1 1 。所以相较于单纯的共现概率,实际上共现概率的相对比值更有意义

#论文讲解# Encoding meaning in vector differences

问题:

我们如何在词向量空间中以线性含义成分的形式捕获共现概率的比值?

解决方案:

  • log-bilinear 模型:

w i ⋅ w j = log ⁡ P ( i ∣ j ) w_{i} \cdot w_{j}=\log P(i \mid j) wi​⋅wj​=logP(i∣j)

  • 向量差异:

w x ⋅ ( w a − w b ) = log ⁡ P ( x ∣ a ) P ( x ∣ b ) w_{x} \cdot (w_a-w_b)=\log \frac{P(x \mid a)}{P(x \mid b)} wx​⋅(wa​−wb​)=logP(x∣b)P(x∣a)​

2)Combining the best of both worlds GloVe [Pennington et al., EMNLP 2014]

w i ⋅ w j = log ⁡ P ( i ∣ j ) w_{i} \cdot w_{j}=\log P(i \mid j) wi​⋅wj​=logP(i∣j)

J = ∑ i , j = 1 V f ( X i j ) ( w i T w ~ j + b i + b ~ j − log ⁡ X i j ) 2 J=\sum_{i, j=1}^{V} f(X_{ij})(w_{i}^{T} \tilde{w}_{j}+b_{i}+\tilde{b}_{j}-\log X_{i j})^{2} J=i,j=1∑V​f(Xij​)(wiT​w~j​+bi​+b~j​−logXij​)2

#论文讲解# Combining the best of both worlds GloVe [Pennington et al., EMNLP 2014]

补充讲解

  • 如果使向量点积等于共现概率的对数,那么向量差异变成了共现概率的比率
  • 使用平方误差促使点积尽可能得接近共现概率的对数
  • 使用 f ( x ) f(x) f(x) 对常见单词进行限制

优点

  • 训练快速
  • 可以扩展到大型语料库
  • 即使是小语料库和小向量,性能也很好

4.2 GloVe的一些结果展示

GloVe的一些结果展示

上图是一个GloVe词向量示例,我们通过GloVe得到的词向量,我们可以找到frog(青蛙)最接近的一些词汇,可以看出它们本身是很类似的动物。

5.词向量评估

5.1 如何评估词向量?

如何评估词向量?

我们如何评估词向量呢,有内在和外在两种方式:

  • 内在评估方式

    • 对特定/中间子任务进行评估
    • 计算速度快
    • 有助于理解这个系统
    • 不清楚是否真的有用,除非与实际任务建立了相关性
  • 外部任务方式

    • 对真实任务(如下游NLP任务)的评估
    • 计算精确度可能需要很长时间
    • 不清楚子系统问题所在,是交互还是其他子系统问题
    • 如果用另一个子系统替换一个子系统可以提高精确度

5.2 内在词向量评估

内在词向量评估

一种内在词向量评估方式是「词向量类比」:对于具备某种关系的词对a,b,在给定词c的情况下,找到具备类似关系的词d

a : b : : c : ? → d = arg ⁡ max ⁡ i ( x b − x a + x c ) T x i ∥ x b − x a + x c ∥ a: b::c:? \to d=\arg \max _{i} \frac{(x_b-x_a+x_c)^{T} x_i}{\left \| x_b-x_a+x_c \right \| } a:b::c:?→d=argimax​∥xb​−xa​+xc​∥(xb​−xa​+xc​)Txi​​

  • 通过加法后的余弦距离是否能很好地捕捉到直观的语义和句法类比问题来评估单词向量
  • 从搜索中丢弃输入的单词
  • 问题:如果有信息但不是线性的怎么办?

5.3 Glove可视化效果

Glove可视化效果

上述为GloVe得到的词向量空间分布,我们对词向量进行减法计算,可以发现类比的词对有相似的距离。

brother – sister, man – woman, king - queen

下图为“公司与CEO词汇”分布

Glove可视化效果

下图为“词汇比较级与最高级”分布

Glove可视化效果

5.4 内在词向量评估的细节

内在词向量评估的细节

内在词向量评估的细节

5.5 类比任务评估与超参数

类比任务评估与超参数

下图是对于类比评估和超参数的一些实验和经验

  • 300是一个很好的词向量维度
  • 不对称上下文(只使用单侧的单词)不是很好,不过这点在下游任务中不一定完全正确
  • window size 设为 8 对 Glove向量来说比较好

类比任务评估与超参数

补充分析

  • window size设为2的时候实际上有效的,并且对于句法分析是更好的,因为句法效果非常局部

5.6 #论文讲解#

1)On the Dimensionality of Word Embedding

#论文讲解# On the Dimensionality of Word Embedding

利用矩阵摄动理论,揭示了词嵌入维数选择的基本的偏差与方法的权衡

补充说明:当持续增大词向量维度的时候,词向量的效果不会一直变差并且会保持平稳。

5.7 类比任务评估与超参数

类比任务评估与超参数

  • 训练时间长一些会对结果有帮助

类比任务评估与超参数

  • 数据集越大越好,并且维基百科数据集比新闻文本数据集要好

补充分析

  • 因为维基百科就是在解释概念以及他们之间的相互关联,更多的说明性文本显示了事物之间的所有联系
  • 而新闻并不去解释,而只是去阐述一些事件

5.8 另一个内在词向量评估

另一个内在词向量评估

  • 使用 cosine similarity 衡量词向量之间的相似程度
  • 并与人类评估比照

5.9 最接近Sweden的一些单词

最接近Sweden的一些单词

5.10 相关性评估

相关性评估

  • 使用 cosine similarity 衡量词向量之间的相似程度
  • 并与人类评估比照

6.word senses

6.1 词义与词义歧义

word senses,词义与词义歧义

大多数单词都是多义的

  • 特别是常见单词
  • 特别是存在已久的单词

例如:pike

那么,词向量是总体捕捉了所有这些信息,还是杂乱在一起了呢?

6.2 pike的不同含义示例

pike的不同含义示例

补充说明:可以想一想“苹果”的例子,既可以是水果,也可以是电子设备品牌。

6.3 #论文讲解#

1)Improving Word Representations Via Global Context And Multiple Word Prototypes (Huang et al. 2012)

#论文讲解# Improving Word Representations Via Global Context And Multiple Word Prototypes (Huang et al. 2012)

将常用词的所有上下文进行聚类,通过该词得到一些清晰的簇,从而将这个常用词分解为多个单词,例如 b a n k 1 bank_1 bank1​ 、 b a n k 2 bank_2 bank2​ 、 b a n k 3 bank_3 bank3​ 。

补充说明:虽然这很粗糙,并且有时sensors之间的划分也不是很明确,甚至相互重叠。

2)Linear Algebraic Structure of Word Senses, with Applications to Polysemy

  • 单词在标准单词嵌入(如word2vec)中的不同含义以线性叠加(加权和)的形式存在

v p i k e = α 1 v p i k e 1 + α 2 v p i k e 2 + α 3 v p i k e 3 v_{{pike }}=\alpha_1 v_{{pike}_1}+\alpha_2 v_{{pike}_2}+\alpha_3 v_{{pike}_3} vpike​=α1​vpike1​​+α2​vpike2​​+α3​vpike3​​

  • 其中, α 1 = f 1 f 1 + f 2 + f 3 \alpha_1=\frac{f_1}{f_1+f_2+f_3} α1​=f1​+f2​+f3​f1​​

#论文讲解# Linear Algebraic Structure of Word Senses, with Applications to Polysemy

令人惊讶的结果:

  • 只是加权平均值就已经可以获得很好的效果
  • 由于从稀疏编码中得到的概念,你实际上可以将感官分离出来(前提是它们相对比较常见)

补充讲解:可以理解为由于单词存在于高维的向量空间之中,不同的纬度所包含的含义是不同的,所以加权平均值并不会损害单词在不同含义所属的纬度上存储的信息。

6.4 外向词向量评估

外向词向量评估

  • 单词向量的外部评估:词向量可以应用于NLP的很多下游任务
  • 一个例子是在命名实体识别任务中,寻找人名、机构名、地理位置名,词向量非常有帮助

7.视频教程

可以点击 B站 查看视频的【双语字幕】版本

【双语字幕+资料下载】斯坦福CS224n | 深度学习与自然语言处理(2019·全20讲)

8.参考资料

ShowMeAI 深度学习与自然语言处理教程(完整版)

ShowMeAI 斯坦福NLP名课 CS224n带学详解(20讲·完整版)

ShowMeAI系列教程精选推荐

斯坦福CS224n 2019自然语言处理课程精华笔记 自然语言处理是人工智能领域的重要研究方向。它的主要目标是设计能够理解和生成人类语言的算法和模型,包括但不限于语音识别、情感分析、机器翻译等。Seq2Seq模型在机器翻译任务中尤为有用,因为它能够将一种语言的整个句子映射到另一种语言的句子。在实际应用中,为了提高翻译质量,通常会采用注意力机制来增强模型对长句子中不同部分的注意力。文本摘要任务与机器翻译类似,不过其目标是从输入文本中生成一个概括性的摘要,而不必关注语言之间的转换。 阅读详情

相关推荐

Ubuntu18.04 SoftRoCE安装教程

目标:创建两台Ubuntu18.04虚拟机,安装SoftRoCE环境,一台作为Server,一台作为Client,模拟RDMA通信环境,熟悉RDMA的通信方式。

GGGYL111的博客 1551

深度学习与自然语言处理 | 斯坦福CS224n · 课程带学与全套笔记解读(NLP通关指南·完结)

本系列是ShowMeAI组织的斯坦福CS224n《自然语言处理与深度学习》的学习笔记,包含一整套【NLP深度教程】 和【20章课件注释】,是非常TOP的完整学习资料~

ShowMeAI研究中心 1万+

【SAP】ABAP——ALV显示后选择数据操作

在ALV显示后,可全选、全不选或者选择几条数据进行发邮件、更新、下单等等操作。 在user_command中的实现方式如下: 方式一: FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. DATA: lr_grid TYPE REF TO cl_gui_alv_grid. DATA: lt_rows TYPE lvc_t_row WITH

Mona_1220的博客 4092

斯坦福CS224n NLP课程【一】——NLP和深度学习入门

NLP和深度学习入门 什么是NLP? 该课程主要讲述了句法分析以及语义理解 稍微涉及音素分析 NLP的应用:机器翻译、对话机器人、回答问题 人类语言的特殊性 连续、符号形式、不基于逻辑或者ai 变换形式多样 但是我们需要去探索出一个有关想法的连续编码模式,但是机器学习会产生一个问题就是-sparsity 稀疏性 所以需要使用深度学习 什么是深度学习? 梳理下机器学习与深度学习的关系 深度学习是机器学习的子领域 之前的机器学习基于人观察出来的特征做数值优化最后进行判断并...

桐原因的博客 514

电商数据分析19——数据分析在电商平台价格弹性研究中的应用

价格弹性是一个衡量产品价格变化对销量影响的经济学指标,对于电商平台而言,深入理解和有效运用价格弹性,对于制定竞争策略、优化产品定价具有重要意义。随着大数据时代的到来,通过数据分析研究产品的价格弹性,成为了电商企业制定价格策略、调整市场定位、优化促销活动的重要依据。

theskylife的博客 2836

轻量级NAS的隐秘战场:比特米盒CumeBox2与CasaOS的生态融合实践

本文探讨了比特米盒CumeBox2轻量级NAS设备与CasaOS操作系统的生态融合实践。通过硬件选型、系统部署、性能优化和应用场景分析,展示了如何将CumeBox2与CasaOS深度整合,打造经济实用的家庭数据管理中心,特别适合入门级用户和小型办公环境。

rl6adventurer的博客 895

Github项目:斯坦福大学CS-224n课程中深度NLP模型的PyTorch实现

该 Github 项目是斯坦福大学 cs-224n 课程中各种深度 NLP 模型的 PyTorch 实现。 项目地址:https://github.com/DSKSD/DeepNLP-models-Pytorch 该实现项目并不是面向 PyTorch 初学者,如果你还未用过 PyTorch,建议以下教程: https://github.com/DSKSD/DeepNL

机器之心 2766

从 Classic ABAP 到 ABAP Cloud:一份面向开发者的 SAP 学习路线图与实战指南

ABAP技术演进路线:从语法到架构思维 本文系统梳理了现代ABAP开发者的能力成长路径。在S/4HANA与云时代,ABAP已从传统过程式语言转变为支持面向对象、测试驱动和云原生开发的现代技术栈。学习路线应围绕四大核心维度展开:1) 语言基础(ABAP OO/Modern ABAP);2) 工程化实践(ABAP Unit/ATC/Clean ABAP);3) 数据建模(CDS/AMDP);4) 服务化架构(Gateway/OData/Fiori)。文章强调以交付形态倒推技术栈,通过真实案例展示了如何将零散技术

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 363

[NLP]CS224n学习笔记一:NLP介绍

1.什么是自然语言处理?自然语言处理是做什么的?自然语言处理难在哪里?语言是表达人的想法以及人与人之间交流的工具,而自然语言处理则是让计算机拥有处理人类语言的能力,从而让计算机能够使用和理解人类的语言。如今,自然语言处理在生活中应用已经很广泛,尤其是苹果的siri,谷歌的Google Assistant和alex,微软的Cortana和小冰。国内也有很多语音相关的应用,尤其是笔者所在的机器人行业,各

Forgive Me 2302

【如何学习CAN总线测试】——Python+Robot Framework框架实现UDS诊断自动化

由于项目需要进行UDS诊断测试,所以对这方面进行了研究学习,网上很少能查询到相关资料,故记录一下UDS自动化测试开发过程,由于保密原则,案例都是Demo,希望能帮到感兴趣的朋友。

测试领域技术分享 7472

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2822

斯坦福CS224n课程作业

斯坦福CS224n作业一 softmax 作业要求如下: 解析:题目要求我们证明\(softmax\)函数具有常数不变性。 解答:对于\(x+c\)的每一维来说,有如下等式成立: \[softmax(x+c)_{i}=\frac{e^{x_{i}+c}}{\sum_{j}e^{x_{j}+c}}=\frac{e^{x_{i}}*e^{c}}{\sum_{j}(e^{x_{j}}*e^{c})}=...

weixin_30861459的博客 572

FAST-LIVO2 源码精读(十八):实时性优化、漂移排查与工程落地

FAST-LIVO2 的工程价值,不在于某一个孤立的技巧,而在于它把"激光的几何精度、惯性的高频预测、视觉的纹理与色彩"用一套简洁的滤波框架紧紧拧在一起,又在实时性、鲁棒性、可扩展性之间取得了难得的平衡。先用内建计时表定位瓶颈,再按降采样、并行、滑窗、编译优化、双频输出逐项加速;遇到漂移先看现象、循诊断树定位根因、回到对应章节取解法。十八篇至此收束。

PX4-SLAM-PNC 218

cs224n课后作业

推荐: cs224n_exercise 1. 作业1 [NLP] cs224n-2019 Assignment 1 Exploring Word Vectors 2019-CS224n-Assignment1

dev_zyx的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

斯坦福NLP名课带学详解 | CS224n 第1讲 - NLP介绍与词向量初步(NLP通关指南·完结)

NLP课程第1讲直接切入语言和词向量,讲解自然语言处理的基本概念、文本表征的方法和演进、包括word2vec等核心方法,词向量的应用等。

ShowMeAI研究中心 9953

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1

本文为斯坦福大学CS224d课程的中文版内容笔记,已得到斯坦福大学课程@Richard Socher教授的授权翻译与发表

龙心尘 3万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

《斯坦福CS224n NLP》 学习大纲&资料&笔记

每周具体学习时间划分为4个部分: 1部分安排周一到周二 2部分安排在周四到周五 3部分安排在周日 4部分作业是本周任何时候空余时间

夏普通 2501

斯坦福NLP名课带学详解 | CS224n 第3讲 - 神经网络知识回顾(NLP通关指南·完结)

NLP课程第3讲主要内容是回顾神经网络知识,并基于NLP场景讲解命名实体识别、基于窗口数据的预测、基于pytorch实现的分类器等。

ShowMeAI研究中心 9265

CS224N WINTER 2022(一)词向量(附Assignment1答案)

伊始

梦想破三的奔三狗 1万+

Word2Vec——斯坦福CS224N(NLP)作业2

假设我们有句子:如果我们设定 context window size = 2(窗口大小 = 左右各 2 个词),那么: 当中心词是:“system”则它的上下文词就是它左右各两个词:我们就得到了 4 个训练样本,每个样本都是一个中心词 + 一个上下文词:这样每一对 (c,o)(c,o)(c,o)就是一个训练样本为什么要有两个向量?我们从一个训练样本开始:然后我们用 Softmax 模型来预测 “在中心词 的上下文中,词 出现的概率”:y^w=P(w∣c)=euw⊤vc∑w′∈Vocabeuw′⊤vc\h

m0_51704901的博客 1314

Word2Vec——斯坦福CS224N(NLP)作业2下

比如:一个训练步骤中负样本是 [“cat”,“dog”,“cat”,“bird”,“cat”][“cat”, “dog”, “cat”, “bird”, “cat”][“cat”,“dog”,“cat”,“bird”,“cat”],你可以看到“cat”出现了 3 次。naive-softmax 损失对每个 outside 词向量的梯度,是模型预测概率和真实标签差值乘以中心词向量 (误差*输入)朴素采样需要对整个词表做 softmax,负采样只对正样本和有限数目的负样本计算sigmoid。

m0_51704901的博客 1549

【NLP】cs224n课程笔记

作业1 一、前言自然语言是人类智慧的结晶,自然语言处理是人工智能中最为困难的问题之一,而对自然语言处理的研究也是充满魅力和挑战的。 通过经典的斯坦福cs224n教程,让我们一起和自然语言处理共舞!也希望大家能够在NLP领域有所成就!二、先修知识(学习的过程中可以遇到问题后再复习)了解python基础知识了解高等数学、概率论、线性代数知识了解基础机器学习算法:梯度下降、线性回归、逻辑回归、Softm...

Jack_Kuo的博客 1万+

斯坦福CS224N自然语言处理课程完整指南:从词向量到Transformer的深度学习之路

想要系统学习自然语言处理技术吗?🎯 ML-Course-Notes项目中的CS224N课程笔记为你提供了最全面的自然语言处理学习资源。这个开源项目汇集了斯坦福大学CS224N: Natural Language Processing with Deep Learning课程的精华内容,是初学者入门NLP的最佳选择。 ## 📚 课程核心内容概览 CS224N自然语言处理课程由斯坦福大学Chr

gitblog_00630的博客 576

人在斯坦福,刚上CS224n

文 | Jazon大家好,我是Jazon,现在是Stanford计算机硕士项目的一只学生,非常荣幸加入小夕的大家庭!请各路大神多多指教呀。2021年1月12日,又一季Stanford CS...

夕小瑶科技说 1382

Manning、陈丹琦讲座,2021 斯坦福 CS224N 即将开课

点击上方,选择星标或置顶,每天给你送干货!转自 | 机器之心作者 | 杜伟、小舟斯坦福大学 CS224N 深度学习自然语言处理 2021 冬季课程即将开课!自然语言处理(NLP)或者计算...

zenRRan的博客 483
上一篇: 深度学习与自然语言处理教程(2) - GloVe及词向量的训练与评估(NLP通关指南·完结)
下一篇: 深度学习与自然语言处理教程(3) - 神经网络与反向传播(NLP通关指南·完结)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值