【王树森推荐系统公开课】笔记04(离散特征处理)

课程链接

离散特征处理

1 离散特征

        离散特征(Discrete Feature)是指在数据集中表现为离散值的特征,通常这些特征是分类数据,可以是数字也可以是非数字的标识符。

        离散特征可以是二元的(如性别:男/女),也可以是多类别的(如血型:A型、B型、AB型、O型),或者是有序的(如教育水平:小学、中学、大学等)。

2 离散特征处理 

  1. 建立字典:把类别映射成序号。

    中国 → 1
    美国 → 2
    印度 → 3

  2. 向量化:把序号映射成向量。

    One-hot编码:把序号映射成高维稀疏向量。
    Embedding:把序号映射成低维稠密向量。

3 One-Hot 编码

        One-Hot 编码是一种将类别变量转换为机器学习算法可以更好处理的形式的方法。在这种编码方式中,每个类别值都会被转换成一个二进制向量,除了表示该类别的一个位置是1之外,其余位置都是0。

例1:性别特征

例2:国籍特征

One-Hot 编码的局限

  • 例1:自然语言处理中,对单词做编码。

    • 英文有几万个常见单词。

    • 那么 one-hot 向量的维度是几万

  • 例2:推荐系统中,对物品ID做编码。

    • 小红书有几亿篇笔记。

    • 那么 one-hot 向量的维度是几亿

类别数量太大时,通常不用 one-hot 编码。

更常见的做法是 Embedding,即把每一个类别映射成一个低维的稠密向量。

 4 Embedding(嵌入)

        Embedding 是一种将离散特征映射到连续向量空间的技术。Embedding 可以捕捉特征之间的复杂关系,并在低维空间中表示高维数据,从而使得机器学习模型能够更好地处理和理解这些数据。

例1:国籍的 Embedding

  • 参数数量:向量维度 × 类别数量。

    • 设 embedding 得到的向量都是 4 维的。

    • 一共有 200 个国籍。

    • 参数数量 = 4 × 200 = 800。

  • 编程实现:TensorFlow、PyTorch 提供 embedding 层。

    • 参数以矩阵的形式保存,矩阵大小是向量维度 × 类别数量

    • 输入是序号,比如“美国”的序号是 2。

    • 输出是向量,比如“美国”对应参数矩阵的第 2 列。

例2:物品ID的 Embedding

        如果类别的数量不大,只有几百万,那么 Embedding 层的实现是比较容易的,TensorFlow 和 PyTorch 都可以处理的很好。

        但如果类别数量特别大,比如推荐系统中的物品数量有几十亿,那么 Embedding 层会特别大,一个神经网络绝大多数的参数都在 Embedding 层。所以工业界深度学习系统都会对 Embedding 层做很多优化。这是存储和计算效率的关键所在。

用示意图来说明 Embedding 得到的向量的物理意义。

Embedding 和 One-Hot 编码之间的关系

 5 总结

  • 离散特征处理:one-hot 编码、embedding。

  • 类别数量很大时,用 embedding。

    • Word embedding。

    • 用户 ID embedding。

    • 物品 ID embedding。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值