Embedding And Word2vec

Embedding与向量数据库:

Embedding 简单地说就是 N 维数字向量 ,可以代表任何东西,包括文本、音乐、视频等等。要创建一个Embedding有很多方法,可以使用Word2vec,也可以使用OpenAI 的 Ada。创建好的Embedding,就可以存入向量数据库中

这里举个例子,比如"你好",用W2做Em后,可以表示为0.1,0.5,0.7,而"嗨"用W2做Em后,可以表示为0.2,0.5,0.6,我们可以使用余弦相似度的方法来计算他们的相似度:

Cosine Similarity(A,B) = A·B / |A|*|B|,其中A和B分别表示两个不同维度的embedding,|A|和|B|分别表示A和B的模长

余弦相似度的值越接近1,表示两个向量的方向越接近,即两个embedding越相似。大概就如下图所示

word2Vec:

  • Word2Vec是语言模型中的一种,它是从大量文本预料中以无监督方式学习语义知识的模型,被广泛地应用于自然语言处理中。
  • Word2Vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系。
  • Word2Vec是轻量级的神经网络,其模型仅仅包括输入层、隐藏层和输出层,模型框架根据输入输出的不同,主要包括CBOW和Skip-gram模型

CBOW:

就是"完形填空",知道词w上下文的情况下,预测w是什么词。

1.简单CBOW,输入一个词,预测输出一个词

从上图可以看出,实际上是很简单的一个BP神经网络,输入就是一个一维的向量,然后和第一个权重矩阵w进行乘法,获取隐含层的值h,然后h再和第二个权重矩阵W',相乘后得到输出(有多少个字,就有多少种输出),最后的输出经过softMax函数,就可以得到每个字的概率,概率最大的,就是我们预测的字。

2.复杂CBOW,输入多个词,预测一个词

和simple CBOW不同之处在于,输入由1个词变成了C个词,每个输入到达隐藏层都会经过相同的权重矩阵W,隐藏层h的值变成了多个词乘上权重矩阵之后加和求平均值。

3.CBOW的训练

CBOW模型的训练目标是最大化给定上下文时中心单词出现的概率,即最大化yt。这等价于最小化交叉熵损失函数

交叉熵损失函数可以通过反向传播算法来求导,并通过随机梯度下降法来更新参数。参数包括输入层到隐藏层之间的权重矩阵W(大小为V×N),以及隐藏层到输出层之间的权重矩阵U(大小为N×V)。

Skip-gram Model:

Skip-gram model是通过输入一个词去预测多个词的概率。输入层到隐藏层的原理和simple CBOW一样,不同的是隐藏层到输出层,损失函数变成了C个词损失函数的总和,权重矩阵W'还是共享的

相关推荐
冬奇Lab1 小时前
Workflow 系列(04):Multi-Agent 协调——编排器边界、并发控制与上下文隔离
人工智能·工作流引擎
冬奇Lab1 小时前
每日一个开源项目(第147篇):HyperGraphRAG - 用超图表示 N 元关系,RAG 的第三代范式
人工智能·开源·graphql
甲维斯2 小时前
Github + 阿里云oss实现类似codex的自动更新!
人工智能
阿里云大数据AI技术4 小时前
光轮智能 × 阿里云:共建 Physical AI 云上数据、评测与持续学习基础设施
人工智能·机器学习
机器之心4 小时前
实锤了:Claude Code偷查用户,时区、中国AI实验室全是关键词
人工智能·openai
网易云信4 小时前
Cursor点燃个人开发者,企业级AI为何频频受挫?Agent工厂从提效工具到AI员工的跃迁
人工智能·开源
网易云信4 小时前
解锁触手可及的温暖:网易智企 x Wander Puffs AI 云游泡芙
人工智能
转转技术团队4 小时前
从 PRD 到可验证代码:AI 需求开发闭环实践
人工智能