深度学习week5_2

版权申明:本文为原创文章,转载请注明原文出处

原文链接:http://example.com/post/e5dd1491.html

深度学习week5_2

词汇表征

将RNN GRU LSTM用于自然语言处理(NLP)

词嵌入:让算法自动的理解一些类似的词

我们上周的理解是这样的,(one-hot)将所有词都存在一个词表里面,但是这样就会导致词和词之间是独立的,比如如下图的情况,orange和apple本来是很相近的两个词,比如下面两个句子都应该学习到后面的一个词是果汁,因为苹果和橙子是相近的两个词,但是如果相互独立就很难这么学习到:

image-20230716085326082

现在变成特征化表达:image-20230716090208200

可以将多维的特征降维(t-SNE),有点像k聚类

image-20230716090359957

使用词嵌入

如果遇到一些不常见的词,而自己的训练样本又比较小,可以考虑迁移学习,用网上已经学习好的词嵌入模型

image-20230716090910001

当训练集越小时,词嵌入效果越好,词嵌入基本流程:

image-20230716091323600

和卷积网络所学到的比较两张人脸有一定相似性

image-20230716091741875

词嵌入的特性

词嵌入可以帮助实现类比推理

比如我们知道男人对应女人,怎么让机器推导出国王对应王后呢:比较它们的差

image-20230716092632787

将要求的单词设为e_w,求相似度:

image-20230716131131937

余弦相似度,感觉相当于一个向量是一个点:

image-20230716131332253

嵌入矩阵

当利用算法学习一个词嵌入的时候相当于是在学习一个嵌入矩阵

相当于总共有300个特征,每个单词都是一个特征,300维,把这个矩阵叫做嵌入矩阵E,每次我们要取某个单词的特征的时候,我们用特征 * one_hot的值,就可以得到一个300维该单词的特征

image-20230716132747851

学习词嵌入

神经网络结构:

E是嵌入矩阵,o是one_hot,算出e是该单词的300维的特征向量,然后输出,参数可以通过梯度函数调整,很好的学习两个特征值相近的词,可以规定只从前面几个词学习

image-20230716133405684

如果我们想训练出一个语言模型,只选择相邻几个单词学习是一种不错的选择,如果我们想学习其他嵌入算法,可以选择另外的单词学习

image-20230716133806764

Word2Vec

skip-grams(感觉像是训练两个邻近的单词的对应关系,上下文某个单词->目标单词):

image-20230716134123485

简单模型,输出是一个10000维的向量,和one_hot一样:

image-20230716134416765

强迫算法去做预测,算法只能根据词嵌入矩阵来预测,然后告诉算法你算错了,算法就自己去修改词嵌入矩阵了

但是直接这样计算softmax,由于维度已经10000了可能更高,算法效率低,可以考虑采用分级softmax分类器(二叉树),使用的树,常用词在顶部,不常用词在深度,方便查找,通常不是平衡的二叉树

image-20230716134911235

负采样

构造新的监督模型

先随机选择一个单词作为context,然后在近10个单词中选择word,设为正样本,然后再从词表中随机找k个单词,将这一组设为负样本,监督学习,最后的输入就行x,预测y,预测他是正样本还是负样本

image-20230716135912729

之前就需要算10000维的softmax,这里就不需要,将输入应用到10000个神经元,每次只更新k+1个,这里k是4,用得出来的正样本和负样本去进行迭代

image-20230716140423569

怎么进行负采样(怎么随机选择负采样的word,图下是比较常用的方法):

image-20230716141711423

GloVe词向量

Xij是一个能够获取单词i和单词j出现位置相近时或者彼此接近的频率的计数器

image-20230716143026674

本质是用词嵌入矩阵去构造一个网络去预测两个词同时出现的频率,但是我们并不需要这个网络,而仅仅通过网络来训练词嵌入矩阵

每一个可能的目标词有一个参数向量\(\theta_{t}\)和另一个参数向量\(e_{c}\)

image-20230716150111482

实际上最后通过网络的到这些向量特征不是简单的Gender这些特征

各轴之间可能有关联

image-20230716150405613

情绪分类

最大的挑战是标记的数据集不够多

用所有特征相加求平均值的方法(缺点:没考虑词序):

image-20230716150737836

解决方式(用RNN做):

image-20230716150930621

词嵌入除偏

存在偏见,如下图,下图是一个训练好的语言模型得到的结果

image-20230716151157772

第一步:判断出我们要减少什么偏见

第二步:对本来不应该有偏见的词,即中立的词出现偏见之后将他们往中和值靠近

第三步:把本身对立的,比如祖母和祖父移到靠近中和值差不多位置的地方

image-20230716151649161
Author

yyyyyyxnp

Posted on

2023-07-19

Updated on

2024-09-29

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.