You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用神经网络处理高基数/稀疏特征 查找相关示例与GitHub资源

高基数/稀疏数据集的神经网络编码实现参考
  • 主流实现思路:优先采用哈希分桶+Embedding的组合方案,也可先按频率做阈值过滤,将出现次数低于阈值的低频值统一映射为<OOV>特殊标记的向量,避免Embedding矩阵维度爆炸。
  • 针对稀疏输入场景,直接调用框架原生的稀疏Embedding接口即可,不需要把稀疏张量展开为密集张量,可大幅降低内存占用。
  • PyTorch极简实现示例:
import torch
import torch.nn as nn

class HighCardinalEncoder(nn.Module):
    def __init__(self, n_unique_val, embed_dim, hash_bucket_size=None, oov_threshold=10):
        super().__init__()
        self.embed_dim = embed_dim
        # 哈希分桶数默认不超过10000,可根据业务调整
        self.hash_bucket_size = hash_bucket_size or min(n_unique_val, 10000)
        self.embedding = nn.Embedding(self.hash_bucket_size, embed_dim)
    
    def forward(self, x):
        # x为高基数特征的原始输入值
        hashed_x = torch.fmod(x.abs(), self.hash_bucket_size).long()
        return self.embedding(hashed_x)
  • 稀疏输入可直接替换nn.Embedding为nn.EmbeddingBag,适配one-hot、multi-hot等多种稀疏输入格式。
非类别型数值变量的Embedding实现参考
  • 主流实现思路:包含离散分桶Embedding、周期特征正余弦编码、可学习分段线性编码三类方案,可根据数值特征的业务属性选择。
  • 数值分桶Embedding TensorFlow实现示例:
import tensorflow as tf
from tensorflow.keras import layers

class NumericEmbedding(layers.Layer):
    def __init__(self, embed_dim, n_bins=20):
        super().__init__()
        self.embed_dim = embed_dim
        self.n_bins = n_bins
        self.embedding = layers.Embedding(n_bins, embed_dim)
    
    def adapt(self, train_data):
        # 基于训练集数值分布计算分桶边界
        self.bins = tf.cast(tf.linspace(tf.reduce_min(train_data), tf.reduce_max(train_data), self.n_bins+1), tf.float32)
    
    def call(self, x):
        bin_idx = tf.searchsorted(self.bins, x, side='right') - 1
        bin_idx = tf.clip_by_value(bin_idx, 0, self.n_bins-1)
        return self.embedding(bin_idx)
  • 不需要分桶的连续数值场景可采用可学习乘积编码:先将数值归一化到[0,1]区间,和随机初始化的可学习向量逐元素相乘后,经过一层全连接层映射为目标维度Embedding,可保留数值的大小关联信息同时引入非线性表达能力。

内容的提问来源于stack exchange,提问作者Aleyna Buse Sumer Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:15:04