当前位置: 首页 > news >正文

Word2Vec如何优化从中间层到输出层的计算?


文章目录

  • Word2Vec如何优化从中间层到输出层的计算?
    • 用负采样优化中间层到输出层的计算
    • 负采样方法的关键思想
    • 负采样的例子
    • 负采样的采样方法


Word2Vec如何优化从中间层到输出层的计算?

重要性:★★

用负采样优化中间层到输出层的计算

以词汇量为 100 万个、中间层的神经元个数为 100 个的 wod2vec(CBOW 模型)为例,word2vec 进行的处理如下图所示.

词汇量为100万个时的word2vec:上下文是you和goodbye,目标词是say :

词汇量是 100 万个的情况下,模型输出时需要预测所有词(100万个)的概率。此时,在以下两个地方需要很多计算时间:

  • 问题1:中间层的神经元和权重矩阵( W o u t W_{out} Wout)的乘积,这个问题在于巨大的矩阵乘积计算
  • 问题2:Softmax 层的计算,随着词汇量的增加,Softmax 的计算量也会增加。

因为假定词汇量是 100 万个,Softmax的分母需要进行 100 万次的 exp 计算。这个计算也与词汇量成正比,因此,需要一个可以替代 Softmax 的“轻量”的计算。我们将采用名为负采样(negative sampling) 的方法作为解决方案,使用 Negative Sampling 替代 Softmax,无论词汇量有多大,都可以使计算量保持较低或恒定。

负采样方法的关键思想

负采样方法的关键思想在于二分类(binary classification),更准确地说,是用二分类拟合多分类(multiclass classification),这是理解负采样的重点。现在,我们来考虑如何将多分类问题转化为二分类问题。

比如,让神经网络来回答“当上下文是 you 和 goodbye 时,目标词是 say 吗?”这个问题,这时输出层只需要一个神经元即可。可以认为输出层的神经元输出的是 say 的得分。此时 CBOW 模型进行什么样的处理呢?如下图所示,仅计算目标词的得分的神经网络。

输出层的神经元仅有一个。因此,要计算中间层和输出侧的权重矩阵的乘积,只需要提取 say 对应的列(单词向量),并用它与中间层的神经元计算内积即可。这个计算的详细过程如下图所示:

进行二分类的CBOW模型的全貌图:

至此,我们成功地把要解决的问题从多分类问题转化成了二分类问题。但是,这样问题就被解决了吗?很遗憾,事实并非如此。因为我们目前仅学习了正例(正确答案),还不确定负例(错误答案)会有怎样的结果。

为了把多分类问题处理为二分类问题,对于“正确答案”(正例)和“错误答案”(负例),都需要能够正确地进行分类(二分类)。

那么,我们需要以所有的负例为对象进行学习吗?答案显然是“No”。如果以所有的负例为对象,词汇量将暴增至无法处理。为此,作为一种近似方法我们将选择若干个(5 个或者 10 个)负例(如何选择将在下文介绍)。也就是说,只使用少数负例。这就是负采样方法的含义。

总而言之,负采样方法既可以求将正例作为目标词时的损失,同时也可以采样(选出)若干个负例,对这些负例求损失。然后,将这些数据(正例和采样出来的负例)的损失加起来,将其结果作为最终的损失。

负采样的例子

负采样的例子(只关注中间层之后的处理,画出基于层的计算图):

负采样的采样方法

负采样的采样方法:基于语料库的统计数据进行采样的方法比随机抽样要好。基于语料库中单词使用频率的采样方法会先计算语料库中各个单词的出现次数,并将其表示为“概率分布”,然后使用这个概率分布对单词进行采样。

根据概率分布多次进行采样的例子:

为了防止低频单词被忽略。word2vec 中提出的负采样对刚才的概率分布增加了一个步骤:对原来的概率分布取 0.75 次方。通过这种方式,取 0.75 次方作为一种补救措施,使得低频单词稍微更容易被抽到。此外,0.75 这个值并没有什么理论依据,也可以设置成0.75 以外的值。

利用“部分”数据而不是“全部”数据,这是一个重要思想。正如人不能全知全能一样,以当前的计算机性能,要处理所有的数据也是不现实的。相反,仅处理对我们有用的那一小部分数据会有更好的效果。负采样技术就是基于这种思想设计的,通过仅关注部分单词实现了计算的高速化。

相关文章:

Word2Vec如何优化从中间层到输出层的计算?

文章目录 Word2Vec如何优化从中间层到输出层的计算?用负采样优化中间层到输出层的计算负采样方法的关键思想负采样的例子负采样的采样方法 Word2Vec如何优化从中间层到输出层的计算? 重要性:★★ 用负采样优化中间层到输出层的计算 以词汇…...

第七篇:vue3 计算属性:computed

v-model "firstName". // v-model. 就是双向绑定的意思 <br/> // 通过 v-model 进行绑定姓&#xff1a;<input type"text" v-model "firstName"><br/>名&#xff1a;<input type"text" v-model"lastN…...

搭建k8s集群

一、准备工作&#xff08;所有节点&#xff09; 在开始部署之前&#xff0c;我们需要对所有节点进行以下准备工作。 1.1、关闭防火墙 # 关闭防火墙 systemctl stop firewalld# 禁止防火墙开机自启 systemctl disable firewalld1.2、 关闭 SELinux # 永久关闭 SELinux sed -…...

Android SystemUI——最近任务应用列表(十七)

对于最近任务应用列表来说,在 Android 原生 SystemUI 中是一个单独的组件。 <string-array name="config_systemUIServiceComponents" translatable="false">……<item>com.android.systemui.recents.Recents</item> </string-arra…...

java 根据前端传回的png图片数组,后端加水印加密码生成pdf,返回给前端

前端传回的png图片数组&#xff0c;后端加水印加密码生成pdf&#xff0c;返回给前端 场景&#xff1a;重点&#xff1a;maven依赖controllerservice 场景&#xff1a; 当前需求&#xff0c;前端通过html2canvas将页面报表生成图片下载&#xff0c;可以仍然不满意。 需要java后…...

《探秘鸿蒙Next:如何保障AI模型轻量化后多设备协同功能一致》

在鸿蒙Next的多设备协同场景中&#xff0c;确保人工智能模型轻量化后功能的一致性是一项极具挑战性但又至关重要的任务。以下是一些关键的方法和策略。 统一的模型架构与标准 采用标准化框架&#xff1a;选择如TensorFlow Lite、PyTorch Mobile等在鸿蒙Next上适配良好的轻量化…...

C语言二级

//请编写函数fun()&#xff0c;该函数的功能是&#xff1a;计算并输出给定整数n的所有因 //子&#xff08;不包括1和自身&#xff09;之和。规定n的值不大于1000。例如&#xff0c;在主函数 //中从键盘给n输入的值为856&#xff0c;则输出为&#xff1a;sum 763。 //注意&…...

隐私保护+性能优化,RyTuneX 让你的电脑更快更安全

RyTuneX 是一款专为 Windows 10 和 11 用户量身打造的系统优化工具&#xff0c;采用先进的 WinUI 3 框架开发&#xff0c;以其现代化的设计风格和强大的功能集合脱颖而出。这款工具不仅界面简洁美观&#xff0c;还提供了多样化的系统优化选项&#xff0c;旨在帮助用户最大化设备…...

rust学习-宏的定义与使用

rust学习-宏的定义与使用 声明宏&#xff08;macro_rules! 宏&#xff09;使用方式1. 简单的宏2. 带参数的宏3. 多个模式的宏 过程宏1. 定义过程宏1.1 属性宏1.2 函数宏1.3 派生宏 2. 使用过程宏2.1 属性宏2.2 函数宏2.3 派生宏 在 Rust 中&#xff0c;宏&#xff08;macro&…...

【学习总结|DAY032】后端Web实战:登录认证

在 Web 后端开发中&#xff0c;登录认证是保障系统安全和用户数据隐私的关键环节。本文将结合实际开发案例&#xff0c;深入探讨登录功能与登录校验的实现思路和技术细节&#xff0c;希望能帮助读者更好地掌握这一重要知识点。 一、登录功能实现 1.1 思路分析 登录功能的核心…...

leetcode 123. 买卖股票的最佳时机 III

题目&#xff1a;123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; O(N)的算法&#xff1a; f[i] max(max(0, prices[i] - min(prices[0], prices[1], ... , prices[i - 1)), f[i - 1]); g[i] max(max(0, max(prices[i 1], prices[i 2], ... , pric…...

Apache Tika 详解

Apache Tika是一个开源的、跨平台的库&#xff0c;专门用于检测、提取和解析多种文件格式的元数据。以下是对Apache Tika的详细解析&#xff1a; 一、概述 Apache Tika旨在为各种类型的数据提取提供一个单一的API&#xff0c;它支持多种文件格式&#xff0c;包括文档、图片、…...

ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认

OpenAI的ChatGPT爬虫似乎能够对任意网站发起分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;而OpenAI尚未承认这一漏洞。 本月&#xff0c;德国安全研究员Benjamin Flesch通过微软的GitHub分享了一篇文章&#xff0c;解释了如何通过向ChatGPT API发送单个HTTP请求…...

Qt——界面优化

在Qt中进行界面优化&#xff0c;可以从以下几个方面入手: 1.使用QWidget:setVisible来控制Widget的 显示和隐藏&#xff0c;而不是删除和重建。 2.使用QPainter直 接绘制组件&#xff0c;避免使用复杂的布局。 3.使用QSS进行样式设置&#xff0c; 减少图片资源的使用。 4.使…...

python学opencv|读取图像(四十一 )使用cv2.add()函数实现各个像素点BGR叠加

【1】引言 前序已经学习了直接在画布上使用掩模&#xff0c;会获得彩色图像的多种叠加效果&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;四十&#xff09;掩模&#xff1a;三通道图像的局部覆盖-CSDN博客 这时候如果更进一步&#xff0c;直接…...

Spring MVC和Spring WebFlux的区别

目录 一、编程模型 二、IO处理方式 三、数据流处理 四、适用场景 五、生态系统 在当今的Web开发领域&#xff0c;Spring框架无疑占据着重要的地位。其中&#xff0c;Spring MVC和Spring WebFlux作为Spring框架中用于构建Web应用程序的两个重要模块&#xff0c;各自具有独特…...

Linux探秘坊-------4.进度条小程序

1.缓冲区 #include <stdio.h> int main() {printf("hello bite!");sleep(2);return 0; }执行此代码后&#xff0c;会 先停顿两秒&#xff0c;再打印出hello bite&#xff0c;但是明明打印在sleep前面&#xff0c;为什么会后打印呢&#xff1f; 因为&#xff…...

Llama 3:开源大模型的里程碑式突破

标题&#xff1a;Llama 3&#xff1a;开源大模型的里程碑式突破 文章信息摘要&#xff1a; Meta通过Llama 3展现了开源LLM的重大突破&#xff1a;采用超大规模训练数据和多阶段训练方法&#xff08;SFT、rejection sampling、PPO和DPO&#xff09;&#xff0c;突破了传统的Chi…...

计算机网络 (56)交互式音频/视频

一、定义与特点 定义&#xff1a;交互式音频/视频是指用户使用互联网和其他人进行实时交互式通信的技术&#xff0c;包括语音、视频图像等多媒体实时通信。 特点&#xff1a; 实时性&#xff1a;音频和视频数据是实时传输和播放的&#xff0c;用户之间可以进行即时的交流。交互…...

STM32 GPIO工作模式

GPIO工作模式 1. GPIO简介2. GPIO工作模式2.1 输入浮空2.2 输入上拉2.3 输入下拉2.4 模拟2.5 开漏输出2.6 推挽输出2.7 开漏式复用功能2.8 推挽式复用功能 1. GPIO简介 GPIO 是通用输入输出端口的简称&#xff0c;简单来说就是 STM32 可控制的引脚&#xff0c;STM32 芯片的 GPI…...

Qwen3.5-2B轻量化多模态模型Python入门实战:零基础快速上手AI开发

Qwen3.5-2B轻量化多模态模型Python入门实战&#xff1a;零基础快速上手AI开发 1. 开篇&#xff1a;为什么选择Qwen3.5-2B入门AI开发 如果你刚接触AI开发&#xff0c;可能会被各种复杂的模型和术语吓到。Qwen3.5-2B是个不错的起点——它足够轻量&#xff0c;能在普通GPU上运行…...

实时流程图编辑的现代化解决方案:Mermaid Live Editor如何提升技术文档效率

实时流程图编辑的现代化解决方案&#xff1a;Mermaid Live Editor如何提升技术文档效率 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me…...

PX4固件版本不对,Offboard模式失灵?手把手教你给Pixhawk 4刷回旧版固件(附v1.11.0固件下载)

PX4固件版本不匹配导致Offboard模式失效&#xff1f;Pixhawk 4降级刷机全指南 最近在调试无人机Offboard模式时&#xff0c;不少开发者反馈最新版PX4固件出现兼容性问题——明明MAVLink指令发送正常&#xff0c;飞控却拒绝进入Offboard模式。这种"沉默式失效"往往让…...

Redis中有事务吗?有何不同?

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

OpenClaw安全实践:gemma-3-12b-it本地化保障敏感数据边界

OpenClaw安全实践&#xff1a;gemma-3-12b-it本地化保障敏感数据边界 1. 为什么需要本地化部署&#xff1f; 去年处理季度财报时&#xff0c;我犯过一个至今心有余悸的错误。当时用某公有云API自动分析Excel中的财务数据&#xff0c;结果在调试时不小心把包含客户银行账号的测…...

如何在5分钟内快速安装Homebridge Config UI X

如何在5分钟内快速安装Homebridge Config UI X 【免费下载链接】homebridge-config-ui-x The Homebridge UI. Monitor, configure and backup Homebridge from a browser. 项目地址: https://gitcode.com/gh_mirrors/ho/homebridge-config-ui-x Homebridge Config UI X …...

Pixel Language Portal保姆级教程:Hunyuan-MT-7B模型支持动态温度调节(per-language temperature)

Pixel Language Portal保姆级教程&#xff1a;Hunyuan-MT-7B模型支持动态温度调节&#xff08;per-language temperature&#xff09; 1. 认识你的像素翻译伙伴 Pixel Language Portal&#xff08;像素语言跨维传送门&#xff09;是一款基于腾讯Hunyuan-MT-7B大模型构建的创新…...

seo推广外包需要多少投入_seo推广外包如何避免被算法惩罚

SEO推广外包需要多少投入_SEO推广外包如何避免被算法惩罚 在当今数字化经济时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;推广已经成为企业提升网站流量和品牌知名度的重要手段。随着搜索引擎算法的不断更新&#xff0c;企业在进行SEO推广外包时&#xff0c;不仅需…...

3D 效果与深度:现代 UI 设计的立体革命

3D 效果与深度&#xff1a;现代 UI 设计的立体革命探索如何在 2024 年通过 CSS 和 Flutter 实现令人惊叹的 3D UI 效果&#xff0c;为用户界面增添深度和层次感。一、3D 设计的崛起 在当今的数字设计领域&#xff0c;平面化设计已经不再是唯一的选择。随着硬件性能的提升和浏览…...

基于SpringBoot + Vue的大连市IT行业招聘平台(角色:用户、企业、管理员)

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 &#x1f49b;博主介绍&#…...