☰
完整解析engagement-predictor特征schema:59个输入特征到底如何决定互动率
2026/10/18 1:33:08 网站建设 项目流程

【免费下载链接】engagement-predictor

项目地址:https://ai.gitcode.com/hf_mirrors/raviearjun/engagement-predictor
点击查看免费下载

engagement-predictor是一个基于 scikit-learnRidge回归的互动率预测模型,用于预测品牌-达人营销内容的engagement_score。它的完整特征 schema 由 config.json 中的feature_columns精确定义——59 个输入特征,分属品牌、投放 brief、内容执行三个层级。本文带你逐组拆解:这 59 个特征分别是什么、为什么这样设计、以及它们如何最终汇入一个回归方程。


一、项目速览:模型要预测什么

  • 预测目标:engagement_score = (likes + comments + shares) / views,即互动率
  • 模型形态:Pipeline(OneHotEncoder+StandardScaler+Ridge),alpha 经GroupKFold(按brief_id分组)网格搜索选出,最终为10.0
  • 模型文件:engagement_ridge.skops(使用skops.io.dump序列化,比裸 pickle 更安全)
  • 训练数据:30 个品牌、300 条 brief、2000 条内容行的合成数据集,分别存放在 dataset/brands.csv、dataset/briefs.csv、dataset/contents.csv

⚠️ 注意:训练数据为合成 POC 数据(详见 README.md),指标刻画的是模型对编码关系的还原能力,不代表真实投放效果。


二、59 个特征全景:3 个层级速览

按特征名前缀,59 列可划分为三大块:

层级特征数量回答的问题
brand_*品牌级3这个品牌的"底子"如何?
brief_*投放级42brief 对内容施加了哪些要求?
content_*内容级14这条内容实际执行成了什么样?

特征顺序在 config.json 中严格固定,推理时 DataFrame 的列必须与之对齐。


三、品牌级特征(3 个)

特征类型含义
brand_industry类别品牌行业,数据集中有 skincare / cosmetics / personal_care 三类,各 10 个品牌
brand_avg_campaign_engagement_score数值该品牌历史活动的平均互动率,是天然的"先验水平"特征
brand_n_product_categories数值品牌覆盖的产品品类数量

品牌级特征只有 3 个,但brand_avg_campaign_engagement_score非常关键——它告诉模型"这个品牌的粉丝互动基线是高是低",模型可以在此基础上叠加其他调整。


四、投放级特征(42 个):模型里最大的一族

这一族全部来自 brief(投放要求文档,通常由上游 LLM 解析提取),分为三类:

1. 单值类别特征(1 个)

  • brief_required_hook_type:要求的"钩子"类型,数据集中共 6 种——daily_routine(日常,62 次)、before_after(前后对比,59 次)、tutorial(52 次)、unboxing(开箱,46 次)、problem_solution(42 次)、transformation(39 次)

2. 多值类别特征 → 多热编码(31 列)

一个 brief 往往允许多个取值(如 tone 为 "energetic,fun"),因此每个候选值拆成一列 0/1 标志:

字段组列数候选取值
brief_required_tone__*语调12fun、calm、confident、energetic、glam、fresh、bold、educational、active、aspirational、scientific、authentic
brief_target_creator_tier__*达人层级4nano、micro、mid、macro
brief_campaign_objective__*活动目标4awareness、trial、conversion、engagement
brief_target_audience_gender__*目标性别2female、male
brief_visual_style__*视觉风格4studio、natural、outdoor、glam_lighting
brief_dress_code__*着装要求5casual、stylish、activewear、colorful、bold_colors

这种多热(multi-hot)编码是特征 schema 中最常见的设计:12 + 4 + 4 + 2 + 4 + 5 = 31列,任意组合都能表达,且 Ridge 可以为每个取值单独学一个权重。

3. 数值约束特征(10 个)

特征含义
brief_product_placement_sec要求的产品露出时长(数据集中 3~11 秒)
brief_n_required_keywords必含关键词数量
brief_n_mandatory_hashtags必带话题标签数量
brief_n_mandatory_mentions必带 @ 提及数量
brief_n_key_messages关键信息条数(本数据集恒为 3)
brief_target_age_min/brief_target_age_max/brief_target_age_span目标年龄下限 / 上限 / 跨度(派生字段 = max − min)
brief_duration_range_min/brief_duration_range_max要求的内容时长下限 / 上限

_span、_min/_max这类派生字段值得注意:模型既能感知"年龄 18-38"这种具体区间,也能感知"跨度 20 岁"这个区间宽窄本身。


五、内容级特征(14 个):执行细节与工程巧思

特征类型说明
content_upload_day类别发布星期(7 天各约 270~310 条,分布均匀)
content_duration_sec数值实际时长,数据集中 8~130 秒,均值约 49 秒
content_upload_hour_sin/content_upload_hour_cos数值发布小时的正余弦周期编码
content_is_weekend0/1是否周末发布
content_n_hashtags数值实际携带的话题标签数
content_caption_len_chars/content_caption_len_words数值文案字符数 / 词数
content_caption_n_emoji数值文案中的 emoji 数量
content_caption_n_hashtags_inline/content_caption_n_mentions_inline数值文案正文中内嵌的话题数 / @ 提及数
content_sound_popularity数值所用声音的流行度
content_hashtag_compliance/content_mention_compliance0/1文案是否合规覆盖了 brief 要求的 hashtag / mention

其中两个工程细节尤其值得学习:

  • 周期编码:upload_hour直接用数值会让模型认为 23 点与 1 点"相距 22",而sin/cos编码让它们在空间上紧邻,23 点 → 0 点 → 1 点的连续性得以保留
  • 合规标志:content_hashtag_compliance、content_mention_compliance把"brief 要求"与"实际执行"连接起来——同样的 brief 要求下,执行到位与否会产生可区分的信号

六、特征如何进入模型:Pipeline 一图流

59 列特征 DataFrame ├─ OneHotEncoder → 处理单值类别(brand_industry、hook_type、upload_day) ├─ StandardScaler → 缩放数值列与多热列 └─ Ridge (alpha=10) → 输出互动率预测值
  • 多热列本身已是 0/1,交给StandardScaler统一缩放即可,无需再做 one-hot
  • alpha 通过GroupKFold(按brief_id分组)网格搜索,避免同一条 brief 的内容泄漏到验证折,评估真正反映对"新 brief"的泛化能力
  • 交叉验证指标:cv_mae ≈ 0.0114、cv_rmse ≈ 0.0146、cv_r2 ≈ 0.71;而均值预测基线的 MAE 约 0.0215——模型将 MAE 降低了约 47%(完整数值见 README.md 与 config.json 的training_metrics)

七、加载与推理:列名顺序就是契约

import skops.io as sio path = "engagement_ridge.skops" # 或从模型仓库下载 model = sio.load(path) # skops 序列化,比 pickle 安全 # X 的列必须与 config.json -> feature_columns 完全一致 prediction = model.predict(X)

依赖版本固定在 requirements.txt:scikit-learn==1.7.2、skops==0.14.0、numpy==1.26.4、pandas==2.3.3。该模型在 Viralst 应用中通过POST /engagement/predict端点对外提供服务。


八、使用与局限性提醒

  • 上游质量决定模型质量:brief 特征依赖上游 LLM 从文档中提取,若提取缺漏,预测质量会随之下降
  • 合成数据的边界:当前指标描述的是对合成关系的还原度,尚未在真实品牌投放数据上验证
  • 行业覆盖:训练集仅 3 个行业 × 10 品牌,外推到新行业时应保持谨慎

总结

engagement-predictor 的特征 schema 是一份教科书级的特征工程设计清单:

  1. 三层结构(brand / brief / content)对应营销投放的真实决策链路
  2. 31 列多热编码优雅表达了"一个字段多个取值"的现实
  3. 周期编码、跨度派生、合规标志展示了数值特征的经典技巧
  4. Ridge + GroupKFold保证了正则化稳健与评估无泄漏

想动手验证?直接克隆仓库后加载 engagement_ridge.skops,用 dataset/ 中的 CSV 拼出 59 列 DataFrame,即可跑通完整推理链路 🚀

【免费下载链接】engagement-predictor

项目地址:https://ai.gitcode.com/hf_mirrors/raviearjun/engagement-predictor
点击查看免费下载

相关推荐

上一篇:如何快速上手ERNIE-4.5-VL-28B-A3B-Thinking:完整安装与部署指南
下一篇:PaddleHelix:百度开源生物计算平台的完整指南与核心技术解析

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询