YAML 配置文件用于定义 sparse 特征(稀疏特征)
YAML 配置文件的核心作用是桥接原始数据与模型。它明确告诉了系统:
- 如何处理原始数据中的稀疏字段。
- 为这些字段创建多大的嵌入矩阵。
- 将这些字段映射到多少维的向量。
- 如何共享这些嵌入权重。
通过修改这个配置文件,你可以轻松地实验不同的特征组合、嵌入维度、哈希空间大小等,而无需修改核心模型代码。
配置背后的工作原理
当你定义了这样一个 YAML 文件后,机器学习平台(如 PaddleRec、DeepCTR 等)的特征工程和模型构建模块会:
- 数据解析:根据
expression,从原始数据中解析出每个样本的user_id原始值(例如123456)。- 特征转换:
- 对于整数ID:直接将其作为索引。如果值
>= boundary,通常会进行取模操作(123456 % 1000000)以保证索引不越界。- 对于字符串:先进行哈希
hash("Sci-Fi") % hash_size,得到索引。- 嵌入查找 (Forward Pass):
- 系统会初始化一个可训练的嵌入矩阵,其形状为
(boundary或hash_size, embedding_dim)。- 在模型前向传播时,根据转换后的索引,从对应的嵌入矩阵中查找出对应的
embedding_dim维向量。- 例如:
embedding_matrix = [ [0.1, 0.2, ...], ..., [0.4, 0.5, ...] ] # shape: [1000000, 16]- 索引
123456对应的向量就是embedding_matrix[123456]。- 输入模型:查找出的嵌入向量将作为神经网络下一层的输入。
1648

被折叠的 条评论
为什么被折叠?



