自然语言处理:词嵌入简介

动动发财的小手,点个赞吧!

Word Embeddings

机器学习模型“查看”数据的方式与我们(人类)的方式不同。例如,我们可以轻松理解“我看到一只猫”这一文本,但我们的模型却不能——它们需要特征向量。此类向量或词嵌入是可以输入模型的词的表示。

alt

工作原理:查找表(词汇)

alt

在实践中,你有一个允许单词的词汇表;你提前选择这个词汇。对于每个词汇单词,查找表包含它的嵌入。可以使用词汇表中的单词索引找到该嵌入(即,您可以使用单词索引在表中查找嵌入)。

alt

为了解释未知词(那些不在词汇表中的词),通常一个词汇表包含一个特殊的标记 UNK。或者,未知标记可以被忽略或分配一个零向量。

本讲[1]的主要问题是:我们如何得到这些词向量?

表示为离散符号:One-hot 向量

最简单的方法是将单词表示为One-hot向量:对于词汇表中的第 i 个单词,向量在第 i 个维度上为 1,在其余维度上为 0。在机器学习中,这是表示分类特征的最简单方法。

alt

您可能会猜到为什么One-hot向量不是表示单词的最佳方式。问题之一是对于大词汇表,这些向量会很长:向量维数等于词汇表大小。这在实践中是不可取的,但这不是最关键的问题。

真正重要的是,这些向量对它们所代表的词一无所知。例如,One-hot向量“认为”猫和狗的距离和桌子的距离一样近!我们可以说 「one-hot 向量不捕获意义」

但是我们怎么知道什么是意义呢?

分布语义

为了在向量中捕捉单词的含义,我们首先需要定义可以在实践中使用的含义概念。为此,让我们尝试了解我们人类如何知道哪些词具有相似的含义。

alt

一旦您看到了未知词在不同上下文中的使用方式,您就能够理解它的含义。你是怎么做到的?

假设是你的大脑搜索了可以在相同上下文中使用的其他词,找到了一些(例如,葡萄酒),并得出了 tezgüino 与其他词具有相似含义的结论。这是分布假设:

经常出现在相似上下文中的词具有相似的含义。

这是一个非常有价值的想法:它可以在实践中使用,让词向量捕捉到它们的含义。根据分布假设,“捕捉意义”和“捕捉上下文”在本质上是相同的。因此,我们需要做的就是将有关单词上下文的信息放入单词表示中。

主要思想:我们需要将有关单词上下文的信息放入单词表示中。

基于计数的方法

alt

基于计数的方法从字面上理解了这个想法:

如何:根据全球语料库统计信息手动放置此信息。

一般过程如上图所示,包括两个步骤:(1) 构建词上下文矩阵,(2) 降低其维数。降维有两个原因。首先,原始矩阵非常大。其次,由于很多单词只出现在少数几种可能的上下文中,因此该矩阵可能包含很多无信息的元素(例如,零)。

要估计词/上下文之间的相似性,通常需要评估归一化词/上下文向量的点积(即余弦相似性)。

要定义基于计数的方法,我们需要定义两件事:

alt
  1. 可能的上下文(包括一个词出现在上下文中意味着什么)
  2. 关联的概念,即计算矩阵元素的公式

Co-Occurence Counts

alt

最简单的方法是将上下文定义为 L 大小窗口中的每个单词。词-上下文对 (w, c) 的矩阵元素是 w 在上下文 c 中出现的次数。这是获取嵌入的非常基本(而且非常非常古老)的方法。

Positive Pointwise Mutual Information (PPMI)

alt

这里上下文的定义和之前一样,但是单词和上下文之间关联的度量更加巧妙:positive PMI(或简称 PPMI)。 PPMI 度量被广泛认为是前神经分布相似性模型的最新技术。

潜在语义分析 (LSA):理解文档

alt

潜在语义分析 (LSA) 分析一组文档。虽然在之前的方法中上下文仅用于获取词向量并随后被丢弃,但在这里我们也对上下文感兴趣,或者在本例中是文档向量。 LSA是最简单的主题模型之一:文档向量之间的余弦相似度可以用来衡量文档之间的相似度。

术语“LSA”有时指的是将 SVD 应用于术语文档矩阵的更通用方法,其中术语文档元素可以用不同的方式计算(例如,简单的共现、tf-idf 或其他一些权重)

Reference

[1]

Source: https://lena-voita.github.io/nlp_course/word_embeddings.html

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C/C++每日一练(20230417)

目录 1. 字母异位词分组 🌟🌟 2. 计算右侧小于当前元素的个数 🌟🌟🌟 3. 加一 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 J…

通过简单demo让你秒懂Python的编译和执行全过程

基本说明 python 是一种解释型的编程语言,所以不像编译型语言那样需要显式的编译过程。然而,在 Python 代码执行之前,它需要被解释器转换成字节码,这个过程就是 Python 的编译过程。 DEMO演示讲解 假设我们有以下 Python 代码&…

Session使用和原理分析图与实现原理-- 代码演示说明 Session 的生命周期和读取的机制代码分析

目录 Web 开发会话技术 -Session —session 技术 session 基本原理 Session 可以做什么 如何理解 Session Session 的基本使用 session 底层实现机制 原理分析图 代码演示 CreateSession.java 测试 Session 创的机制, 注意抓包分析​编辑 ReadSession.j…

python+vue 基于推荐算法的在线电影视播放网站

以广大影视剧迷们为研究对象,深入了解影视剧迷对在线视频观看视频的需求进行分析,形成系统需求分析设计一个符合影视剧迷们需求的在线视频网站。设计网站的前期工作包括对系统的各个功能进行详细分析,对数据库设计进行详细的描述,…

【C++】STL理解【容器】

【C】STL理解【容器】 1. STL概念引入 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出”可重复运用的东西”的方法,从函数(functions),类别(classes),函数库(function libraries),类别库(class libraries…

nssctf web 入门(6)

这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。 目录 [SWPUCTF 2021 新生赛]caidao [SWPUCTF 2021 新…

GitLab与jekins结合构建持续集成(cl)环境(2)

目录 GItlab配置邮箱 绑定邮箱 创建群组 添加人员 创建一个项目 添加文件 新建分支 如何拉取代码 Git bash 演示 Git GUI演示 安装jenkins 更改插件镜像源 配置jenkins使用gitlab更新代码 安装jekins插件 配置jenkins免密拉取gatlab代码 jenkins创建项目 将代码…

VUE基本使用详解

目录 一、VUE框架原理 1. 了解VUE框架 2. VUE框架原理 3. MVC设计模式 4. MVVM设计模式 二、引入VUE框架 1. 本地引入 2. 网络引入 三、安装Vue插件 一、VUE框架原理 1. 了解VUE框架 vue 框架 是基于MVVM设计模式的前端框架,其中的Vue对象是MVVM设计模式中的VM视图…

Zebec Protocol 出席香港 Web3 峰会,带来了哪些信息?

梳理香港加密新政的细节,一个明确的脉络是,香港加密新政的整体目的是令虚拟资产交易明确化和合法化,通过不断完善的监管框架,促进香港虚拟资产行业的可持续和负责任地发展。 在加强合规和持牌经营的监管思路下,长期审慎…

TensorFlow 和 Keras 应用开发入门:1~4 全

原文:Beginning Application Development with TensorFlow and Keras 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形…

《简化iOS APP上架流程,App Uploader助你搞定!》

转载:Appuploader常见问题 Appuploader 常见错误及解决方法 问题解决秘籍 遇到问题,第一个请登录苹果开发者官网 检查一遍账号是否有权限,是否被停用,是否过期,是否有协议需要同意,并且在右上角切换账号后…

页表结构详细说明

一、页表 1. 内存地址的分解 我们知道linux采用了分页机制,通常采用四级页表,页全局目录(PGD),页上级目录(PUD),页中间目录(PMD),页表(PTE)。如下: 其含义定义在arch/arm64/include/asm/pgtable-hwdef.…

HCIP-6.9BGP路由反射器原理与配置

路由反射器原理与配置 1、路由反射器概念1.1、路由反射器原理:1.2、多集群路由反射器1.3、备份路由反射器2、路由反射器配置3、路由反射器防环机制 1、路由反射器概念 IBGP的水平分割,IBGP 1只能update一跳,就是说在IBGP 2 设备收到IBGP 1设…

密码学|DES加密算法|学习记录

DES简介 DES属于对称密码算法中的分组加密算法 密钥一共64bit,其中56位参与运算,其余8bit为校验位(8 16 24 32 40 48 56 64) n个64位明块经过加密后得到的n个64位密文块加在一起就是密文 DES一般步骤 IP置换 : IP置…

Python中的异常——概述和基本语法

Python中的异常——概述和基本语法 摘要:Python中的异常是指在程序运行时发生的错误情况,包括但不限于除数为0、访问未定义变量、数据类型错误等。异常处理机制是Python提供的一种解决这些错误的方法,我们可以使用try/except语句来捕获异常并…

AI已经解锁自动化能力 | 颠覆商业模式和劳动力市场

AI已经解锁自动化能力,将颠覆商业模式和劳动力市场。目前AutoGPT的开源项目: BabyAGI、Auto-GPT、AgentGPT、TeenagerAGI、Jarvis。 AutoGPT原理: 3个GPT4协同合作,一个GPT4负责分解目标创建任务,另一个GPT4负责分配…

C# switch case语句入门and业务必知点

具体的语法形式如下。 switch(表达式) { case 值 1: 语句块 1; break; case 值 2: 语句块 2; break; ... default: 语句块 n; break; } 在这里,switch 语句中表达式的结果必须是整型、字符串…

Linux用户的分类与家目录,ls、pwd、cd、mkdir、touch、rmdir、rm指令与选项等

Linux中用户的分类与用户的家目录 在Linux当中,用户的分类只分为两类,一类叫做超级用户root,还有就是其他也就是传说中的普通用户。我们刚刚登进去时,默认所处的目录是***/root或者/home/用户名***,比如说/root, /hom…

Unity InputSystem (一)

什么是InputSystem InputSystem 是 2019 年 Unity 新推出的插件,输入系统包实现了一个系统来使用任何类型的输入设备来控制你的 Unity 内容。它旨在成为 Unity 的经典输入管理器更强大、更灵活、更可配置的替代品。 新输入系统基于事件,输入设备和动作逻…

信安大佬真的用kali吗?

Kali只是现在网络安全和kali比较火的一个操作系统 下面我为大家讲讲kali系统都有那些优点 Kali介绍Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。面向专业的渗透测试和安全审计。 集成化:预装超过300个渗透测试工具兼容好&#x…