推荐系统特征维度

在推荐系统中,特征的本质是“对某个行为相关信息的抽象表达”。抽取特征时,尽量保留“推荐环境及用户行为过程中的所有有用信息”,摒弃冗余信息。

用户行为数据

显性反馈:评分、点赞等;隐性反馈:点击、播放时长、加购等。

用户行为类特征向量:
(1)代表用户行为的物品id序列,转化成multi-hot向量。
(2)预训练好的物品embedding向量,再average pooling或attention 生成历史行为embedding向量。

用户关系数据

社交网络,显性关系:好友、关注;隐形关系:点赞、同时对某一物品有行为。
(1)基于用户关系,制定召回层的物品召回策略。
(2)Graph Embedding方式生成用户和物品的Embedding。
(3)利用与用户A 有关系的用户B数据,添加用户A新的属性特征。

属性、标签类数据

用户属性、物品属性、标签类数据是最重要的描述型特征。通常,会建立维护一套用户和物品的标签体系,或者以社交化的方法ugc添加标签。

内容类数据

描述物品或用户的数据,相比标签类特征,内容类数据往往是“大段的描述型文字、图片、视频”。一般,内容类数据无法直接转换成推荐系统直接用的特征,需要通过nlp、cv技术手段提取关键内容特征,在输入推荐系统。即,转化成标签类数据。

上下文信息

描述推荐行为产生的场景信息,包括时间、地点、季节、天气、社会大事等。引入此类特征,可保存推荐行为发生场景的信息。

统计类特征

通过统计方法计算出的特征,包括ctr、物品流行度等。一般是连续型特征,需要输入推荐系统前,做标准化、归一化等处理(统一量纲、非线性log变换)。统计特征,本质上是一些粗粒度的预测指标,往往与最后的预测目把有较强相关性。

组合类特征

不同特征进行组合后形成的新特征,如年龄+性别。

<think>嗯,用户这次问的是"特征维度总和"的概念和计算方法,结合了机器学习与数据处理的场景。从引用内容看,用户可能正在学习特征工程相关内容,且站内资料已经提供了过滤法、张量表示和分组统计的基础知识。用户真正需要的可能是两个层面的理解:一是纯数学维度的计算方法(即张量形状的乘积),二是实际工程中处理结构化数据时的应用。这里需要特别注意区分学术定义和工程实践中的差异——学术论文中的"特征维度总和"常指向向量长度,而工程中可能涉及批处理维度的张量大小。有趣的是,用户引用的[2]提到张量维度概念时特别区分了不同任务中的维度变化,这恰好是解释batch_size维度的关键。可以推断用户可能接触过PyTorch/TensorFlow等框架,但尚未形成系统的张量思维。回复时要强调"特征向量维度"与"批量张量维度"的区别,就像建造独栋房屋和整片小区的差异。在代码示例部分,应该展示两种常见场景:纯特征向量计算用shape[0](即向量长度),而批处理场景用np.prod(x.shape)计算总元素数。用户之前接触过pandas(引用[3]),所以演示DataFrame的例子能降低理解门槛。不过要注意补充张量案例,因为用户引用的[2]明显更偏向深度学习领域。最后的风险提示很重要:用户提到的"特征维度总和"字面容易理解为特征数量的简单累加,但实际上在不同场景有完全不同的数学含义。就像"北京面积"可能指行政区域面积,也可能指建成区面积——必须明确具体语境。</think> 在机器学习和数据处理中,"特征维度总和"需区分两种常见含义及计算方法: ### 一、单样本的特征维度特征向量长度) 指单个样本的特征数量,即特征向量的长度,计算方法为: $$ d = \dim(\mathbf{x}) \quad \text{或} \quad d = \text{len}(\mathbf{x}) $$ 其中 $\mathbf{x} = [x_1, x_2, ..., x_d]^T$ 表示样本特征向量 **代码示例(Python)**: ```python import numpy as np # 单个样本的特征向量 sample = np.array([0.5, 1.2, -0.3, 4.8]) feature_dim = len(sample) # 维度总和 = 4 ``` ### 二、批量数据的特征维度总和(张量元素总数) 当处理批量数据时(n个样本,每个d维),总维度可表示为张量元素总量: $$ \text{总维度} = n \times d $$ **代码示例(NumPy/PyTorch)**: ```python # 批量数据 (batch_size=32, 每个样本7维) batch_data = torch.randn(32, 7) total_dims = batch_data.nelement() # 总维度 = 32 * 7 = 224 ``` ### 三、结构化数据的维度计算(如DataFrame) ```python import pandas as pd df = pd.DataFrame({ 'height': [175, 168, 180], 'weight': [68, 55, 72], 'age': [30, 25, 35] }) # 单个样本维度 sample_dims = df.shape[1] # 维度总和 = 3 # 整批数据总维度 total_dims = df.size # 样本数3 * 特征数3 = 9 ``` ### █ 关键区分要点 | 场景 | 计算对象 | 公式 | 实际意义 | |---------------------|------------------|---------------|------------------------| | 单样本分析 | 特征数量 | $d$ | 特征向量长度 | | 批量数据处理 | 总元素量 | $n \times d$ | 张量/矩阵的元素总数 | | 特征工程(如PCA) | 原始特征空间维度 | $d$ | 降维前的特征空间维度数 | ### ⚠️ 重要说明 术语"维度总和"在机器学习中**无标准定义**,需结合场景理解: - 若指特征工程中的降维操作,通常指特征向量维度 $d$(引用[1]中提及的特征维度) - 若涉及张量运算(引用[2]),则指向张量形状各维度乘积 $\prod_{i} \text{dim}_i$ - 结构化数据处理时(引用[3]),既可能指数值特征的总数量,也可能指数据表的总元素量 **建议表述**:根据具体场景使用更明确的术语,如"特征向量维度"、"张量元素总数"或"特征字段数"以避免歧义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值