NLP学习笔记十二-skip-gram模型求解

news2025/2/3 21:10:33

NLP学习笔记十一-skip-gram模型求解

上一篇文章,我们见到了skip-gram模型的原理,这里我们在陈述一下skip-gram模型其实是基于分布相似性原理来设计的,在skip-gram模型中,他认为一个词的内涵可以由他的上下文文本信息来概括,,那么基于这个原理,skip-gram模型设计了两个矩阵,一个是词向量表征矩阵,也就是这个向量中每一行代表了一个词的嵌入向量,也就是表征信息,又设计了一个表示词语在上下问中做背景词是的表征矩阵,在这个矩阵中每一行,表示一个词语做上下问词语时自己的表征信息。当一个词作为中心词,在乘以背景词表征矩阵,经过softmax处理,会得到一个向量,这个向量元素之和为1,向量长度为词语集合类别数,每个元素的值代表一个词语被选择的概率。当我们输入一个词语序列,我们会根据该词语序列计算2m次概率向量,因为窗口大小为m,也就是输入了2m个上下文词语,此时我们需要做的就是对两个矩阵进行更新,假设输入中心词的表征向量为 w I w_I wI,输入上下文文本词语的表征向量为 w O , 1 , w O , 2 , w O , 3 , , , , , , w O , C w_{O,1},w_{O,2},w_{O,3},,,,,,w_{O,C} wO,1,wO,2,wO,3,,,,,,wO,C
C=2m
那么此时损失函数如下:

在这里插入图片描述

这里很多人可能会疑惑,为什么是这样的所示函数,这里大家要注意啊,skip-gram模型是忽略位置信息影响的,也就是说skip-gram模型,他认为上下文中出现的词语,都是同等的概率出现的,也就是说,出现一个中心词,那么它可能对应出现的其实不是上下文文本信息,而是一个上下文词语集合,且集合中的词语没有相关性,那么就会得到上面一个公式,因为上下文词语没有位置顺序,没有相关性,那么
联合和概率就可以直接拆分:
如下:
P(a,b|c)=P(a|c)*P(b|c)

就是上面这个公式体现的原理。
然后就是使用BP算法求导更新中心词的表征向量为 w I w_I wI,和上下文文本词语的表征向量为 w O , 1 , w O , 2 , w O , 3 , , , , , , w O , C w_{O,1},w_{O,2},w_{O,3},,,,,,w_{O,C} wO,1,wO,2,wO,3,,,,,,wO,C

下面我们开始推到,并介绍相关概念:

首先看下面一个图片,下面图片其实就是得到中心词语的表征向量h,注h就是中心词的表征向量,大家要记住哈。后面还要用到。

在这里插入图片描述
再看下面一张图片: s j s_j sj就是中心词的表征向量h乘以背景词的表征向量 v w j v_{w_j} vwj得到的值,经过softmax转化就会变成对应背景词可能被选择的概率。

在这里插入图片描述

那么根据之前所说损失函数则就是下面这个表达式:

在这里插入图片描述
背景矩阵和中心词矩阵更新公式如下:

在这里插入图片描述

在这里插入图片描述
上面两个公式博主也推到了一下,确实是这样哈,就是正常推到就可以了。

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

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

相关文章

AcWing 837. 连通块中点的数量

题目如下: 给定一个包含 n个点(编号为 1∼ n)的无向图,初始时图中没有边。 现在要进行 m 个操作,操作共有三种: C a b,在点 a和点 b之间连一条边,a 和 b 可能相等;Q1 …

【iMessage苹果日历推真机群控】使用虚拟化平台创建一个 macOS 虚拟机

PC 虚拟机上部署群控推送并模拟苹果 iMessage 推送消息是比较复杂的任务。由于苹果的 iMessage 服务是基于苹果设备和操作系统的,模拟 iMessage 推送需要考虑苹果的生态系统和安全机制。 以下是一种可能的方法,但请注意这是一个高级设置,需要…

chatgpt赋能python:Python编程中的放大代码技巧

Python 编程中的放大代码技巧 Python 是一门广泛应用于各个领域的编程语言。由于它易学易用、可移植性好、开发效率高等特点,使其在人工智能、大数据分析、网站开发等领域被广泛应用。在实际编程中,随着代码量的增加,需要更好地组织和管理代…

BFS 广度优先搜索

广度优先搜索BFS(Breadth First Search)也称为宽度优先搜索,它是一种先生成的结点先扩展的策略,类似于树的层次遍历。 在广度优先搜索算法中,解答树上结点的扩展是按它们在树中的层次进行的。首先生成第一层结点&#…

TS系列之keyof详解,示例

文章目录 前言一、keyof是什么总结 前言 如果你用过TS的工具类型,Partial、Required、Pick、Record。那么你可能看过他们内部实现都有共同点就是keyof关键字。即使没有见过,那么下面就一起来了解一下,keyof关键字的详细作用吧。 一、keyof是…

Filebeat详细介绍,下载和启动,日志读取和模块设置等

目录 Filebeat介绍为什么要用Filebeat?架构下载启动读取文件自定义字段输出到ElasticSearch Filebeat工作原理harvesterprospectorinput启动命令参数说明 部署Nginx读取Nginx中的配置文件Modulenginx module 配置配置filebeat测试错误1错误2 Filebeat 介绍 Filebe…

Java开发中的常见问题和解决方法:如何解决常见的性能和bug问题

章节一:引言 在Java开发中,我们经常会面临各种各样的问题,包括性能问题和Bug。这些问题可能会导致应用程序的运行变慢、不稳定甚至崩溃。本文将介绍一些常见的Java开发问题,并提供解决这些问题的方法和技巧,帮助开发人…

ElasticSearch集群8.0版本搭建、故障转移

目录 ElasticSearch集群集群节点搭建集群分片和副本 故障转移将data节点停止将master节点停止 分布式文档路由文档的写操作 搜索文档全文搜索搜索(query)取回 fetch ElasticSearch集群 集群节点 ELasticsearch的集群是由多个节点组成的,通过…

SSM学习记录9:SpringBoot整合SSM(注解方式)

SSM学习记录9:SpringBoot整合SSM(注解方式) 1.首先创建新项目,选择Spring Initializr,type为Maven 2.接着依赖选择Spring Web 3.无需繁琐配置,即可运行编写的controller类 启动SpringBootDemoApplication↓…

利用人工智能模型学习Python爬虫

爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 网络爬虫(又称为网页蜘蛛,网络机器人)是其中一种类型。 爬虫可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络…

UE4/5样条线学习(一):基础的样条线使用

目录 效果展示: 制作: 组件 逻辑 效果展示: 注:按住alt拉轴可以拉出多一个点 制作: 第一步我们创建一个蓝图,命名为BP_Sline: 组件 之后我们开始找组件,输入bill,我…

使用 docker 创建 mongodb 副本集, 和调整副本集优先级

mongod 本地创建副本集 mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,<hostname(s)|ip address(es)> –dbpath 指向数据存放地址 –replSet 后面为 副本集的名。 rs.initiate() 启动新的副本集 rs.conf() 查看副本集的配置 rs.stat…

chatgpt赋能python:Python实现多关键词搜索PDF文件

Python实现多关键词搜索PDF文件 概述 在今天的数字化社会中&#xff0c;很多信息都以数字化的形式存储在PDF文件中。这让我们在搜索特定信息时面临很多挑战&#xff0c;特别是当我们需要同时搜索多个PDF文件并集中检索这些文件时。 在这篇文章中&#xff0c;我们将介绍如何使…

HTTP协议,带你了解HTTP协议

目录 1、HTTP 协议介绍 2、HTTP 协议的工作过程 HTTP 协议的工作过程可以分为以下几个步骤&#xff1a; 3、Fiddler 抓包工具介绍 3.1 抓包工具的使用 3.2 抓包结果 3.3 抓包工具原理 4、HTTP 协议格式总览 5、HTTP 请求&#xff08;Request&#xff09; 5.1 认识 URL…

Seata分布式事务实现

docker方式搭建seata-server(推荐) 参考官方文档: 使用 Docker 部署 Seata Server docker run -d --name seata-server -p 8091:8091 -p 7091:7091 seataio/seata-server:1.6.1 根据版本情况使用不同版本的镜像: https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7…

算法拾遗三十三Morris遍历

算法拾遗三十三Morris遍历 常规二叉树遍历Morris遍历Morris遍历判断是否是搜索二叉树给定一颗二叉树的头节点head&#xff0c;求以head为头的树中&#xff0c;最小深度是多少&#xff1f; 常规二叉树遍历 public static class Node {public int value;Node left;Node right;pub…

UE4/5样条线学习(二):样条网格体组件的使用

目录 效果展示&#xff1a; 制作&#xff1a; 效果展示&#xff1a; 制作&#xff1a; 前面的步骤和之前的UE4/5样条线学习&#xff08;一&#xff09;&#xff1a;基础的样条线使用_多方通行8的博客-CSDN博客是一样的。 创建一个actor蓝图&#xff0c;然后一个公告板组件&…

Redis Lua脚本书写

目录 1. 级联缓存值 1.1 级联缓存session及相关信息 lua脚本语句 redis运行示例 2. 级联查询 2.1 级联查询session lua脚本语句 redis运行示例 3. 级联更新 3.1 级联更新accountId对应的用户信息 lua脚本 redis运行示例 4. 级联续期 4.1 刷新session时级联续期 lu…

嵌入式数据库之sqlite3

一、数据库基本概念 数据&#xff1a;能够输入计算机并能被计算机程序识别和处理的信息集合。 数据库&#xff1a;数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合。 二、常用的数据库 1.大型数据库 Oracle公司是最早开发关系数据库的厂商之一…

架构设计之分析系统性能问题

我们在讨论高性能架构之前&#xff0c;需要先聊聊什么叫高性能&#xff0c;以及如何量化地测试系统的性能。在02 讲中&#xff0c;我们讨论了一些和并发相关的指标。事实上&#xff0c;并发数正是系统性能的核心指标之一&#xff0c;因为高并发会引起系统资源短缺&#xff0c;来…