趋近智
与组合不同模型最终输出的方法不同,特征组合方法在构建混合推荐系统时采取了更具整合性的方式。该方法不是融合推荐评分,而是将来自不同模型的基础特征合并为一个更丰富的特征集。随后,使用这个组合后的特征集来训练最终的预测模型,使其能够同时学习内容属性与协同模式之间的复杂联系。
这种方法将推荐任务转化为一个标准的监督机器学习问题。其目标是利用包含内容和协同信息的特征向量,来预测评分(回归)或交互概率(分类)。
实现特征组合混合推荐最常用的方式是通过一个两阶段过程。
第一阶段:生成协同特征。 首先,我们训练一个基于模型的协同过滤模型,例如使用 SVD 或其他矩阵分解技术。这一阶段的主要目标不是生成最终推荐,而是产出用户和物品的隐类特征向量。这些向量是基于交互数据对用户偏好和物品特征的一种强有力的压缩表示。
第二阶段:训练预测模型。 在第二阶段,我们为训练数据中的每个用户-物品交互构建一个新的特征集。该特征集通常包括:
然后,我们将这个组合后的特征向量输入到标准的机器学习模型中,如梯度提升回归器或随机森林,来预测用户评分。
下图说明了这一数据流。
特征组合混合推荐的两阶段流程图。将来自矩阵分解模型的隐类因子与内容特征相结合,以训练最终的预测模型。
让我们通过一个例子来具体说明。假设我们有一个用户 和一个物品 。
为了创建该配对的特征向量 ,我们只需将这些向量拼接起来。
这将产生一个长度为 的单一特征向量。该向量现在代表了包含协同和内容两方面信息的“用户-物品”对。
在 Python 中使用 NumPy,此操作非常直接:
import numpy as np
# 示例向量
p_u = np.random.rand(10) # 用户隐类向量
q_i = np.random.rand(10) # 物品隐类向量
c_i = np.random.rand(50) # 物品内容向量
# 拼接形成最终特征向量
x_ui = np.hstack([p_u, q_i, c_i])
print(f"组合特征向量的形状: {x_ui.shape}")
# 预期输出:
# 组合特征向量的形状: (70,)
我们会对训练数据集中的每个用户-物品评分重复此过程,以创建一个完整的训练矩阵 X。相应的评分将构成我们的目标向量 y。然后,我们可以使用 X 和 y 训练任何回归模型,例如 XGBoost 或 scikit-learn 的 RandomForestRegressor。
这项技术为构建混合系统提供了一种有效的方法,但了解其权衡也很重要。
特征组合是一种严密且有效的混合方法。它是传统推荐模型与现代、特征丰富的深度学习系统之间的桥梁,后者通常也使用类似的原理,即结合学到的嵌入(embedding)与显式特征。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造