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

EmbeddingBag介绍与案例

我们可以用一个具体的例子来说明 EmbeddingBagCollection 的核心作用和它如何处理用户特征。假设我们的用户特征包括 “item_id” 和 “cate_id” 两个字段,每个字段都有各自的离散取值,也就是一些整数 ID。为了让模型能处理这些离散数据,我们需要将它们转化为连续向量表示,这时就要用到嵌入(Embedding)。

例如,假设我们给 “item_id” 构建了一个嵌入表,维度设为 64,即每个商品 ID 对应一个 64 维的向量;同样 “cate_id” 有一个嵌入表,向量维度也是 64。EmbeddingBagCollection 模块内部可能会将每个字段利用 torch.nn.EmbeddingBag 来生成嵌入向量。

下面给出一个详细的例子:

【例子背景】

想象有这样一条记录,表示某个用户的行为序列:

  • item_id 列表:[12, 45, 78](用户近期浏览过3个商品,对应的商品编号)
  • cate_id 列表:[3, 8, 3](这3个商品分别属于类别 3、8、3)

【如何使用 EmbeddingBagCollection】

  1. 当我们调用 self.ebc(features) 时,features 是一个字典,例如:

    features = {
    “item_id”: (tensor([12, 45, 78]), tensor([…]) # 第二个张量有时表示索引编号、偏移信息或权重(具体实现可能不同)
    “cate_id”: (tensor([3, 8, 3]), tensor([…]))
    }

    EmbeddingBagCollection 会为每个特征(例如 “item_id”)找到对应的 torch.nn.EmbeddingBag 模块,然后利用传入的索引张量取出嵌入表中第12、45、78号向量。

  2. 对于 “item_id” 特征,其嵌入过程可能如下:

    • 嵌入表大小设定为(num_item, 64),num_item 表示商品的总数。
    • torch.nn.EmbeddingBag 接收到 [12, 45, 78] 这三个索引后,会检索出对应的 3 个 64 维向量。
    • 如果采用“均值”聚合策略(mean pooling),那么这三个向量会取平均,得到一个 64 维的向量;若采用“求和”聚合,则直接对三个向量求和。
  3. 同样对于 “cate_id” 特征,也会获得一个 64 维的向量表示。在这个例子中,由于类别列表为 [3, 8, 3],聚合后可能会保留类别 3 出现两次的信息,从而在聚合后体现出重要性。

  4. 最终,EmbeddingBagCollection 会返回一个字典,键为特征名称,值为对应的嵌入向量。例如:

    emb_dict = {
    “item_id”: tensor([[…64维向量…]]), # 形状可能是 (batch_size, embedding_dim),这里 batch_size 为 1
    “cate_id”: tensor([[…64维向量…]])
    }

【核心作用说明】

核心作用就是完成以下任务:

  • 将离散的数字 ID(如 12, 45, 78 等),经由查找嵌入表,使得每个 ID 转换成一个连续向量。
  • 利用 EmbeddingBag 的聚合策略(比如加和或均值),把一个序列中的多个离散特征向量整合成一个固定维度的表示。
  • 使得后续网络(例如通过 Linear 投影、时序模型 backbone 等)能以连续向量的形式方便地利用这些用户特征。这种表示不仅包含了各个单独 ID 的信息,还能反映出行为序列中频繁出现的特征(例如商品多次浏览可能在聚合时权重较高)。

总的来说,EmbeddingBagCollection 在这里的角色就是作为一个“离散到连续”的编码器,它将原始的用户特征数据转换成适合神经网络处理的向量表示,进而为后续的用户行为建模提供输入。

相关文章:

  • Android问题整理
  • 数据加盐/加密
  • CentOS 中安装 vim
  • qt中关于思源雅黑字体的使用
  • OpenCV 图形API(43)颜色空间转换-----将 BGR 图像转换为 LUV 色彩空间函数BGR2LUV()
  • 《vue3学习手记4》
  • 《前端面试题之 Vue 篇(第二集)》
  • await 在多线程,子线程中的使用
  • 大模型赋能工业制造革新:10个显效可落地的应用场景
  • 字符设备驱动程序的另一种注册方法
  • IoT FEM射频前端模组芯片(2.4G PA)三伍微电子GSR2401 兼容替代RFX2401
  • 408数据结构绪论刷题001
  • 3.Rust + Axum 提取器模式深度剖析
  • 红宝书第四十九讲:XSS/CSRF攻击防御策略解析
  • 从零上手GUI Guider学习LVGL——Button
  • AI与思维模型——耗散结构思维模型【64】
  • 第十七届“华中杯”大学生数学建模挑战赛题目A题 晶硅片产销策略优化 完整成品 代码 模型 思路 分享
  • 动态规划专题5:最长上升子序列
  • MIX-LN: UNLEASHING THE POWER OF DEEP LAYERS BY COMBINING PRE-LN AND POST-LN
  • 计算生物学在中国的发展情况?
  • 云南多地突查公职人员违规饮酒:公安局门口开展酒精吹气测试
  • 国际足联女子世界杯再次扩军,2031年起增至48支球队
  • 央行设立服务消费与养老再贷款,额度5000亿元
  • “80后”赵亮出任上海普陀区委副书记
  • 赵作海因病离世,妻子李素兰希望过平静生活
  • 中华人民共和国和俄罗斯联邦在纪念中国人民抗日战争、苏联伟大卫国战争胜利和联合国成立80周年之际关于进一步深化中俄新时代全面战略协作伙伴关系的联合声明