embedding表示方法及原理

article/2025/10/20 13:43:02

目录

        • 1.前言
        • 2.embedding表示方法
            • 2.1 word2vec embedding
            • 2.2 neural network embedding
            • 2.3 graph embedding
        • 3.参考文献

1.前言

近几年embedding的使用及优化在各种比赛、论文中都有很多的应用,使用embedding表示特征的空间表示也在各种应用中确定是一种很有效的特征表示方法,基于embedding进行的特征交叉的工作也有很多,因此本文主要整理常用的embedding表示方法及原理

2.embedding表示方法

embedding的制作方法比较常见的有word2vec embedding,neural network embedding和graph embedding,本文主要对这三种方法进行论述,embedding实际上就是把原先的特征表示映射到一个新的空间表达中去
embedding的训练方法大致可以分为两类,一类是无监督或弱监督的预训练,一类是端对端的有监督训练,无监督或弱监督的训练以word2vec为代表,不需要标记可以得到质量还可以的embedding表示,但因为缺少任务导向,一般在得到预训练的embedding向量后,用少量人工标注的样本fine-tune模型
在这里插入图片描述

2.1 word2vec embedding

word2vec基本操作如下图,
整个隐层的激活函数是线性的,相当于没有做任何处理,当神经网络训练完后,最后得到的是神经网络的权重
在这里插入图片描述
word2vec共有两种常见的模型,cbow和skip-gram模型,
cbow模型拿一个词的上下文作为输入,来预测词语本身
skip-gram用一个词语作为输入,预测周围的上下文
在这里插入图片描述
对于单个word对应多种embedding的情况,采用平均是最简单的方法,如果说存在一词多义的问题,可以采用根据场景选择适合的embedding的方式,也可以采用动态embeded的方式,通过上下文调整最终的embedding

2.2 neural network embedding

dnn生成embeddding的方式,这里引用Deep Neural Networks for YouTube Recommendations,是google在2016年发的一篇文章,其中user vector是dnn的最后一层的输出,video vector是weighted softmax(sampled)的权重序列,论文当时的做法是将video vector的作为视频表征存储,然后在serve阶段,计算出user vector,再通过最近邻的方式计算要推荐的视频内容,接下来将候选集合进行下一阶段的排序工作
在这里插入图片描述

2.3 graph embedding

(1)deepwalk(2014)
下图明确说明了通过deepwalk生成graph embedding的过程
在这里插入图片描述
具体可分为以下几步:
1.图a展示了原始的用户行为序列
2.图b基于这些用户行为序列构建了物品相关图,可以看出,物品A,B之间的边产生的原因就是因为用户U1先后购买了物品A和物品B,所以产生了一条由A到B的有向边。如果后续产生了多条相同的有向边,则有向边的权重被加强。在将所有用户行为序列都转换成物品相关图中的边之后,全局的物品相关图就建立起来了
3.图c采用随机游走的方式随机选择起始点,重新产生物品序列
4.图d最终将这些物品序列输入word2vec模型,生成最终的物品embedding向量
(2)node2vec(2016)
node2vec是一种基于deepwalk的改进的graph embedding的优化算法,主要有两种生成embedding的遍历方法,深度优先游走(Depth-first Sampling,DFS)和广度优先游走(Breadth-first Sampling,BFS)
使用着两种算法,主要想体现graph embedding的同质性和结构性,其中‘’同质性‘’指的是距离相近节点的embedding应该尽量近似,用BFS来做,“结构性”指的是结构上相似的节点的embedding应该尽量接近,用DFS来做
在这里插入图片描述
如下图所示,是算法在选择下一个连接节点的过程,通过给是否与t相等,相连的三种情况,分配选择的权重
在这里插入图片描述
具体做法:
1.根据p、q和之前的公式计算一个节点到它的邻居的转移概率
2.将这个转移概率加到图G中形成G’
3.walks用来存储随机游走,先初始化为空
4.外循环r次表示每个节点作为初始节点要生成r个随机游走
5.然后对图中每个节点
6.生成一条随机游走walk
7.将walk添加到walks中保存
8.然后用SGD的方法对walks进行训练(与deepwalk相同)
(3)EGES(2018)
如果单纯使用用户行为生成的物品相关图,固然可以生成物品的embedding,但是如果遇到新加入的物品,或者没有过多互动信息的长尾物品,推荐系统将出现严重的冷启动问题。为了使“冷启动”的商品获得“合理”的初始Embedding,阿里团队通过引入了更多补充信息来丰富Embedding信息的来源,从而使没有历史行为记录的商品获得Embedding
基于知识图谱生成对同一个物品的多个graph表示,然后对graph embeddding进行加权平均,主要是解决了添加物品的冷启动问题
在这里插入图片描述

3.参考文献

1.理解 Word2Vec 之 Skip-Gram 模型
2.Skip-Gram二三事
3.Embedding 技术在推荐系统中的实践总结
4.深度学习中不得不学的Graph Embedding方法


http://chatgpt.dhexx.cn/article/1nEeKR7M.shtml

相关文章

深度学习:词嵌入Embedding

http://blog.csdn.net/pipisorry/article/details/76095118 词嵌入 词嵌入其实就是将数据的原始表示表示成模型可处理的或者是更dense的低维表示(lz)。 One-hot Embedding 假设一共有个物体,每个物体有自己唯一的id,那么从物体…

什么是embedding(把物体编码为一个低维稠密向量),pytorch中nn.Embedding原理及使用

文章目录 使embedding空前流行的word2vec句子的表达训练样本损失函数输入向量表达和输出向量表达 v w v_{w} vw​ 从word2vec到item2vec讨论环节pytorch中nn.Embedding原理及使用pytorch中nn.Embedding原理及使用一些注意的点 参考 简单来说,embedding就是用一个低维…

讲清楚embedding到底在干什么

要搞清楚embeding先要弄明白他和one hot encoding的区别,以及他解决了什么one hot encoding不能解决的问题,带着这两个问题去思考,在看一个简单的计算例子 以下引用 YJango的Word Embedding–介绍 https://zhuanlan.zhihu.com/p/27830489 On…

一文读懂Embedding

文章目录 一、**什么是Embedding?**二、One-Hot编码三、**怎么理解Embedding****四、Word Embedding** 一、什么是Embedding? “Embedding”直译是嵌入式、嵌入层。 简单来说,我们常见的地图就是对于现实地理的Embedding,现实的…

Embedding的理解

Embedding 嵌入,我们可以将其理解为一种降维行为。可以将高维数据映射到低维空间来解决稀疏输入数据的问题。 它主要有以下三个目的: 在 embedding 空间中查找最近邻,这可以很好的用于根据用户的兴趣来进行推荐。作为监督性学习任务的输…

BERT的三个Embedding详解

BERT将输入文本中的每一个词(token)送入token embedding层从而将每一个词转换成向量形式 两个嵌入层,segment embeddings和 position embeddings token embedding token embedding 层是要将各个词转换成固定维度的向量。在BERT中,每个词会被…

Embedding层的理解

Embedding层的理解 转载自:原文:深入理解 Embedding层的本质_罗小丰同学的博客-CSDN博客_embedding层 首先,我们有一个one-hot编码的概念。 假设,我们中文,一共只有10个字。。。只是假设啊,那么我们用0-…

Embedding理解与代码实现

Embedding 字面理解是 “嵌入”,实质是一种映射,从语义空间到向量空间的映射,同时尽可能在向量空间保持原样本在语义空间的关系,如语义接近的两个词汇在向量空间中的位置也比较接近。 下面以一个基于Keras的简单的文本情感分类问…

深度学习中Embedding层有什么用?

2019年03月24日15:23:32更新: 由于CSDN图片经常显示不出来,本文最新链接请点击:https://fuhailin.github.io/Embedding/ 博主所有博客写作平台已迁移至:https://fuhailin.github.io/ ,欢迎收藏关注。 这篇博客翻译自国…

pytorch nn.Embedding的用法和理解

(2021.05.26补充)nn.Embedding.from_pretrained()的使用: >>> # FloatTensor containing pretrained weights >>> weight torch.FloatTensor([[1, 2.3, 3], [4, 5.1, 6.3]]) >>> embedding nn.Embedding.from…

EMBEDDING层作用

embedding层作用:①降维②对低维的数据进行升维时,可能把一些其他特征给放大了,或者把笼统的特征给分开了。 Embedding其实就是一个映射,从原先所属的空间映射到新的多维空间中,也就是把原先所在空间嵌入到一个新的空…

彻底理解embedding

本文转载自https://blog.csdn.net/weixin_42078618/article/details/84553940,版权问题请联系博主删除 首先,我们有一个one-hot编码的概念。 假设,我们中文,一共只有10个字。。。只是假设啊,那么我们用0-9就可以表示…

深度学习中的embedding

整理翻译自google developer的机器学习入门课程,介绍了embedding的应用方式和如何计算embedding,后面还配有通过tensorflow DNN训练embedding练习加深理解。 分类输入数据(Categorical Input Data) 分类数据是指表示来自有限选择集的一个或多个离散项的…

【文本分类】深入理解embedding层的模型、结构与文本表示

[1] 名词理解 embedding层:嵌入层,神经网络结构中的一层,由embedding_size个神经元组成,[可调整的模型参数]。是input输入层的输出。 词嵌入:也就是word embedding…根据维基百科,被定义为自然语言处理NLP中…

用万字长文聊一聊 Embedding 技术

作者:qfan,腾讯 WXG 应用研究员 随着深度学习在工业届不断火热,Embedding 技术便作为“基本操作”广泛应用于推荐、广告、搜索等互联网核心领域中。Embedding 作为深度学习的热门研究方向,经历了从序列样本、图样本、再到异构的多…

Embedding技术

1、Embedding 是什么 Embedding是用一个低维稠密的向量来“表示”一个对象(这里的对象泛指一切可推荐的事物,比如商品、电影、音乐、新闻等),同时表示一词意味着Embedding能够表达相应对象的某些特征,同时向量之间的距…

什么是embedding?

本文转自:https://www.jianshu.com/p/6c977a9a53de    简单来说,embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。这个embedding向量的性质是能使距离相近的向量对应的物体…

Pairwise-ranking loss代码实现对比

Multi-label classification中Pairwise-ranking loss代码 定义 在多标签分类任务中,Pairwise-ranking loss中我们希望正标记的得分都比负标记的得分高,所以采用以下的形式作为损失函数。其中 c c_ c​是正标记, c − c_{-} c−​是负标记。…

【论文笔记】API-Net:Learning Attentive Pairwise Interaction for Fine-Grained Classification

API-Net 简介创新点mutual vector learning(互向量学习)gate vector generation(门向量生成器)pairwise interaction(成对交互) 队构造(Pair Construction)实验结果总结 简介 2020年…

白话点云dgcnn中的pairwise_distance

点云DGCNN中对于代码中pairwise_distance的分析与理解 2021年5月7日:已经勘误,请各位大佬不惜赐教。 一点一点读,相信我,我能讲清楚。 这个是本篇文章所要讨论的代码段 总体上把握,这个代码计算出了输入点云每对点之…