20240330-1-词嵌入模型w2v+tf-idf

Word2Vector

1.什么是词嵌入模型?

把词映射为实数域向量的技术也叫词嵌⼊

2.介绍一下Word2Vec

谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,分别是连续词袋(CBOW)和跳字(Skip-Gram)模型。

3.介绍CBOW

CBOW,全称Continuous Bag-of-Word,中文叫做连续词袋模型:以上下文来预测当前词 w t w_t wt 。CBOW模型的目的是预测 $P(w_t| w_{t-k}, \cdots, w_{t-1}, w_{t+1}, \cdots, w_{t+k}) $

img

前向传播过程
  • 输入层: 输入C个单词 x x x: $x_{1k}, \cdots, x_{Ck} $,并且每个 x x x 都是用 One-hot 编码表示,每一个 x x x 的维度为 V(词表长度)。

  • 输入层到隐层

    • 首先,共享矩阵为 W V × N W_{V \times N} WV×NV表示词表长度,W的每一行表示的就是一个N维的向量(训练结束后,W的每一行就表示一个词的词向量)。
    • 然后,我们把所有输入的词转 x x x化为对应词向量,然后取平均值,这样我们就得到了隐层输出值 ( 注意,隐层中无激活函数,也就是说这里是线性组合)。 其中,隐层输出 h h h 是一个N维的向量 。

    h = 1 C W T ( x 1 + x 2 + ⋯ + x c ) h = \frac{1}{C} W^T(x_1 + x_2 + \cdots + x_c) h=C1WT(x1+x2++xc)

  • 隐层到输出层:隐层的输出为N维向量 h h h , 隐层到输出层的权重矩阵为 W N × V ′ W'_{N \times V} WN×V 。然后,通过矩阵运算我们得到一个 $V \times 1 $ 维向量
    u = W ′ T ∗ h u = W'^{T} * h u=WTh

其中,向量 u u u 的第 i i i 行表示词汇表中第 i i i 个词的可能性,然后我们的目的就是取可能性最高的那个词。因此,在最后的输出层是一个softmax 层获取分数最高的词,那么就有我们的最终输出:
P ( w j ∣ c o n t e x t ) = y i = e x p ( u j ) ∑ k ∈ V e x p ( u k ) P(w_j| context) =y_i = \frac{exp({u_j})}{\sum_{k \in V} exp({u_k})} P(wjcontext)=yi=kVexp(uk)exp(uj)

损失函数

我们假定 j ∗ j^* j 是真实单词在词汇表中的下标,那么根据极大似然法,则目标函数定义如下:
E = − l o g p ( W O ∣ W I ) = − l o g e x p ( u j ) ∑ k ∈ V e x p ( u k ) = l o g ∑ k ∈ V e x p ( u k ) − u j E = -log \, p(W_O |W_I) = -log \, \frac{exp({u_j})}{\sum_{k \in V} exp({u_k})} = log \sum_{k \in V} exp(u_{k}) -u_j E=logp(WOWI)=logkVexp(uk)exp(uj)=logkVexp(uk)uj

4.Skip-gram模型

Skip-Gram的基本思想是:通过当前词 w t w_t wt 预测其上下文 w t − i , ⋯ , w t + i w_{t-i}, \cdots , w_{t+i} wti,,wt+i ,模型如下图所示:

img

前向传播过程
  • 输入层: 输入的是一个单词,其表示形式为 One-hot ,我们将其表示为V维向量 x k x_k xk ,其中 V V V 为词表大小。然后,通过词向量矩阵 W V × N W_{V \times N} WV×N 我们得到一个N维向量
    h = W T ∗ x k = v w I T h = W^T * x_k = v^{T}_{w_I} h=WTxk=vwIT

  • 隐层: 而隐层中没有激活函数,也就是说输入=输出,因此隐藏的输出也是 h h h

  • 隐层到输出层:

    • 首先,因为要输出C个单词,因此我们此时的输出有C个分布: $y_1, \cdots y_C $,且每个分布都是独立的,我们需要单独计算, 其中 y i y_i yi 表示窗口的第 i i i 个单词的分布。

    • 其次, 因为矩阵 W N × V ′ W'_{N \times V} WN×V 是共享的,因此我们得到的 V × 1 V \times 1 V×1 维向量 u u u 其实是相同的,也就是有 u c , j = u j u_{c,j} = u_j uc,j=uj ,这里 u u u 的每一行同 CBOW 中一样,表示的也是评分。

    • 最后,每个分布都经过一个 softmax 层,不同于 CBOW,我们此处产生的是第 i i i 个单词的分布(共有C个单词),如下:

    P ( w i , j ∣ c o n t e x t ) = y i = e x p ( u j ) ∑ k ∈ V e x p ( u k ) P(w_{i,j}| context) =y_i = \frac{exp({u_j})}{\sum_{k \in V} exp({u_k})} P(wi,jcontext)=yi=kVexp(uk)exp(uj)

损失函数

假设 j ∗ j^* j 是真实单词在词汇表中的下标,那么根据极大似然法,则目标函数定义如下:
E = − l o g p ( w 1 , w 2 , ⋯ , w C ∣ w I ) = − l o g ∏ c = 1 C P ( w c ∣ w i ) = − l o g ∏ c = 1 C e x p ( u c , j ) ∑ k = 1 V e x p ( u c , k ) = − ∑ c = 1 C u j c ∗ + C ⋅ l o g ∑ k = 1 V e x p ( u k ) \begin{split} E &= - log \, p(w_1, w_2, \cdots, w_C | w_I) \\ &= - log \prod_{c=1}^C P(w_c|w_i) \\ &= - log \prod_{c=1}^{C} \frac{exp(u_{c, j})}{\sum_{k=1}^{V} exp(u_{c,k}) } \\ &= - \sum_{c=1}^C u_{j^*_c} + C \cdot log \sum_{k=1}^{V} exp(u_k) \end{split} E=logp(w1,w2,,wCwI)=logc=1CP(wcwi)=logc=1Ck=1Vexp(uc,k)exp(uc,j)=c=1Cujc+Clogk=1Vexp(uk)

5.Word2Vec与LDA的区别

  • LDA

    LDA是利用文档中单词的共现关系来对单词按主题聚类,也可以理解为对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布

  • Word2Vec

    Word2Vec是利用上下文-单词“矩阵进行学习,其中上下文由周围的几个单词组成,由此得到的词向量表示更多地融入了上下文共现的特征。也就是说,如果两个单词所对应的word2vec向量相似度较高,那么它们很可能经常在同样的上下文中出现。

  • LDA模型是一种基于概率图模型生成式模型,其似然函数可以写成若干条件概率连乘的形式,其中包括需要推测的隐含变量(即主题);

  • 而Word2Vec模型一般表达为神经网络的形式,似然函数定义在网络的输出之上,需要通过学习网络的权重以得到单词的稠密向量表示。

6.Word2Vec存在的问题是什么?

  • 对每个local context window单独训练,没有利用包 含在global co-currence矩阵中的统计信息。
  • 对多义词无法很好的表示和处理,因为使用了唯一的词向量

Tf-idf

1.介绍一下Tf-idf

一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章.

  • TF: Term Frequency, 表示词频。 一个给定的词在该文章中出现的次数。
    T F = 某个词在文章中的出现次数 文章的总词数 TF = \frac{\text{某个词在文章中的出现次数}}{\text{文章的总词数}} \\ TF=文章的总词数某个词在文章中的出现次数

  • IDF: Inverse Document Frequency, 表示逆文档频率。如果包含词条 t 的文档越少, IDF越大,则说明词条具有很好的类别区分能力。

I D F = l o g ( 语料库的文档总数 包含该词的文档数 + 1 ) IDF = log(\frac{语料库的文档总数}{包含该词的文档数+1}) \\ IDF=log(包含该词的文档数+1语料库的文档总数)

  • **TF-IDF:**某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语
    TF-IDF = T F × I D F \text{TF-IDF} = TF \times IDF TF-IDF=TF×IDF

举例说明

假设现在有一篇文章, 文章中包含 10000 个词组, 其中,“贵州” 出现100次,“的” 出现500次,那么我们可以计算得到这几个词的 TF(词频) 值:
T F ( 贵州 ) = 100 / 10000 = 0.01 T F ( 的 ) = 500 / 10000 = 0.05 TF(贵州) = 100 / 10000 = 0.01 \\ TF(的) = 500 / 10000 = 0.05 TF(贵州)=100/10000=0.01TF()=500/10000=0.05
现在语料库中有 1000 篇文章, 其中,包含 “贵州” 的有 99 篇, 包含 “的” 的有 899 篇, 则它们的 IDF 值计算为:
I D F ( 贵州 ) = l o g ( 1000 / ( 99 + 1 ) ) = 1.000 I D F ( 的 ) = l o g ( 1000 / ( 899 + 1 ) ) = 0.046 IDF(贵州) = log(1000 / (99+1)) = 1.000 \\ IDF(的) = log(1000 / (899+1)) = 0.046 IDF(贵州)=log(1000/(99+1))=1.000IDF()=log(1000/(899+1))=0.046

2. Tf-idf的优缺点

  • 优点:简单快速,而且容易理解。
  • 缺点:有时候用词频来衡量文章中的一个词的重要性不够全面,有时候重要的词出现的可能不够多,而且这种计算无法体现位置信息,无法体现词在上下文的重要性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

54位大咖演讲精华! 中国生成式AI大会圆满收官,TOP50企业榜单揭晓

54位大咖演讲精华! 中国生成式AI大会圆满收官,TOP50企业榜单揭晓© 由 红板报 提供 智东西4月19日报道,为期两天的2024中国生成式AI大会,今日在京圆满收官。 54位产学研投嘉宾代表全程干货爆棚,报名咨询人数逾52…

操作符不存在:sde.st_geometry ^ !sde.st_geometry建议 SQL函 数st_intersects在内联inlining期间

操作符不存在:sde.st_geometry ^ !sde.st_geometry建议 SQL函 数st_intersects在内联inlining期间 问题:最近在使用SQL图形处理函数处理图形时,莫名奇妙报如下错误,甚是费解 于是开始四处"寻医问药" 1、nav…

G1、CMS垃圾回收期专题

共同点 非阻塞 使用三色标记法 初始标记、并发标记、重新标记、并发清理 (初始标记、重新标记需要stop world) CMS垃圾回收器 缺点 浮动垃圾 有垃圾碎片 关注停顿时间,使用了效率最高的标记清除算法 G1垃圾回收器 缺点 需要配置高&…

MySQL表级锁——技术深度+1

引言 本文是对MySQL表级锁的学习,MySQL一直停留在会用的阶段,需要弄清楚锁和事务的原理并DEBUG查看。 PS:本文涉及到的表结构均可从https://github.com/WeiXiao-Hyy/blog中获取,欢迎Star! MySQL表级锁 MySQL中表级锁主要有表锁…

【Java EE】 SpringBoot配置文件

文章目录 🍀配置文件的作用🌴SpringBoot配置文件🍃配置文件的格式🌳properties 配置文件说明🌸properties基本语法🌸读取配置文件🌸properties 缺点分析 🌲yml 配置文件说明&#x1…

Docker基本管理和虚拟化

一、docker的发展历史 https://www.cnblogs.com/rongba/articles/14782624.htmlhttps://www.cnblogs.com/rongba/articles/14782624.html 二、docker的概述 Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行…

附近商户-GEO数据结构的基本用法

10、附近商户 10.1、附近商户-GEO数据结构的基本用法 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD&#xff1a…

SpringBoot Bean管理(扫描、注册、注册条件)

Bean扫描 一般的扫描包路径 需要使用xml标签或者是ComponentScan(basePackages “xxx.xxx”) ,但是在SpringBoot中不需要。 在springBoot 项目的启动类中有一个注解:SpringBootApplication,这个注解包含以下注解: 但是ComponentScan并没有指明包路径…

开源协议的对比和商业上的安全使用

开源协议的对比和商业上的安全使用 开源组件是:“任何人都可以自由使用、更改和共享(以修改或未修改的形式)的软件”。当今企业依靠开源来加速开发、降低成本和推动创新。对开放源码的糟糕管理可能会使组织面临安全、法律和操作风险。 使用…

Maven基础篇5

私服 私服目的,方便公司内计算机通信,方便程序员们开发时资源互换; 1.Nexus私服 https://help.sonatype.com/repomanager3/download 可下载,第一个是服务器,第二个是工作空间 bin中有可执行命令 nexus.exe/run端口…

比亚迪唐EV和唐DM-p荣耀版上市,成为新能源汽车市场中的佼佼者!

随着环保理念的深入人心,新能源汽车市场正迎来前所未有的发展机遇。在这个变革的浪潮中,唐EV和唐DM-p荣耀版的上市无疑为市场注入了新的活力。它们凭借先进的技术、卓越的性能以及豪华配置,成为了新能源汽车市场中的佼佼者。然而,…

【飞桨AI实战】人体姿态估计:零基础入门,从模型训练到应用开发

前言 本次分享将带领大家从 0 到 1 完成一个人体姿态估计任务,覆盖数据准备、模型训练、推理部署和应用开发的全流程,项目将采用以PaddlePaddle为核心的飞桨深度学习框架进行开发,并总结开发过程中踩过的一些坑,希望能为有类似项…

增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM,Python代码)

1.效果视频:增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM)_哔哩哔哩_bilibili) 2.三个模型和数据集的介绍 交通流量预测(python代码,压缩包中带有数据,CN…

曲线救国|基于函数计算FC3.0部署AI数字绘画stable-diffusion

曲线救国|基于函数计算FC3.0部署AI数字绘画stable-diffusion 基于函数计算FC2.0部署AI数字绘画stable-diffusion基于函数计算FC3.0部署AI数字绘画stable-diffusion总结 在经过了上一次曲线救国失败经历之后,失败经历参考博文:https://developer.aliyun.c…

docker-003镜像制作

步骤 使用docker commit提交容器使之成为镜像以ubuntu安装vim后的容器为例 1 ubuntu安装vim 启动容器 docker run -it --nameubuntu-vim ubuntu /bin/bash安装vim apt-get update apt-get install vim2 提交容器作为镜像 查看容器 docker ps -a提交容器作为镜像 命令格式&…

SimManager助力巴西航空工业公司搭建功能完善的仿真平台

巴西航空工业公司在实施构建结构分析平台之前,使用内部作业调度批处理程序在大型计算机上进行求解作业,前处理器和后处理器在本地工作站上运行,这些程序生成的工程数据存储在共享网络目录中,这一过程带来了一些问题: 为…

STM32 MPU配置参数

TXE LEVEL一般只用MPU_TEX_LEVEL0 1 - 1 - 1 -0性能最强(TEX - C - B- S). #define MPU_TEX_LEVEL0 ((uint8_t)0x00) #define MPU_TEX_LEVEL1 ((uint8_t)0x01) #define MPU_TEX_LEVEL2 ((uint8_t)0x02) 基于上表进行常用配置 &#xff…

C语言 | Leetcode C语言题解之第41题缺失的第一个正数

题目&#xff1a; 题解&#xff1a; int firstMissingPositive(int* nums, int numsSize) {for (int i 0; i < numsSize; i) {while (nums[i] > 0 && nums[i] < numsSize &&nums[nums[i] - 1] ! nums[i]) {int t nums[nums[i] - 1];nums[nums[i] -…

【办公类-26-01】20240422 UIBOT网络教研(自动登录并退出多个账号,半自动半人工)

作品展示&#xff1a; 背景需求&#xff1a; 每学期有多次网络教研 因为我有历任搭档的进修编号和登录密码&#xff0c; 所以每次学习时&#xff0c;我会把历任搭档的任务也批量完成。 但是每次登录都要从EXCEL里复制一位老师的“进修编号”“密码”&#xff0c;还要点击多次…

慧明咨询:成绩公式,发现未知,助力进步

在当今社会,数以万计的学子面临着激烈的教育竞争。2000万的中考生、1000万的高考生、300万的考研生以及500万的国考备考者,都在为了通过这“独木桥”而战。 面对有限的优质学区、师资力量的不足、以及巨大的心理压力,学生及其家长们焦虑不已。为此,深圳市慧明咨询顾问有限公司…