Ad-Aware Recommendation — 广告感知协同排序:有机推荐与赞助商品的联合优化
Skill-Ad-Aware-Recommendation · 05-推荐系统
causalexperimentoptimizationrecommendation广告与投放推荐与搜索WF-B 广告优化WF-D 选品扫描WF-F 动态定价WF-G Listing内容优化
实现难度⭐⭐⭐☆☆
业务视角
适用角色运营负责人 / 选品负责人 · 产品经理 · 广告优化师
适用平台Amazon · DTC 独立站 · 邮件/SMS 个性化
什么情况下用老客来了只买一件就走,相关产品没被推出去;Bundle 商品连带销售做不起来;站内推荐位点击率低
成功是什么样的老客连带购买率提升 20-35%,客单价提升,品类交叉销售做起来
业务痛点
1. 解决的问题
传统电商推荐系统中,广告排序(Sponsored Ranking) 和 有机推荐(Organic Recommendation) 是两个完全独立的系统,分别优化 CTR/ROAS 和个性化相关性,导致用户体验分裂——同一用户可能在广告位看到高竞价但低相关商品,在有机推荐区看到高相关但低转化意图商品。
2. 核心算法逻辑
传统电商推荐系统中,广告排序(Sponsored Ranking) 和 有机推荐(Organic Recommendation) 是两个完全独立的系统,分别优化 CTR/ROAS 和个性化相关性,导致用户体验分裂——同一用户可能在广告位看到高竞价但低相关商品,在有机推荐区看到高相关但低转化意图商品。
3. 业务应用场景
业务背景:某母婴品牌同时运营 Sponsored Products 广告和自然搜索排名。广告团队为"婴儿奶粉"出价 $2.5/click,但广告曝光位常被用于低相关商品(竞品投放),有机推荐又没有利用广告转化信号。
Ad-Aware Recommendation 应用:
数据需求:用户点击日志、广告出价接口(或历史出价数据)、商品 Embedding(可用现有 MF 模型产出)。
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
- `combined_score`:综合排序分(越高越靠前),已包含广告价值和预算约束
- `item_type`:`"ad-boosted"` 表示受广告加权影响;`"organic"` 表示纯有机排序
- 当 `lambda_budget < 0.05` 时,广告商品不参与竞价(避免透支预算)
6. 业务价值 / ROI
未自动抽取;请查看原始 Skill 卡片。
7. 代码模板
代码块数量:4 · 路径:未检测到
"""
Ad-Aware Recommendation: 广告感知协同排序
整合 BPR-MF 个性化推荐 + CTR 预估 + ROAS 约束联合优化
完全使用 mock 数据,无需真实 API
"""
import numpy as np
from dataclasses import dataclass, field
from typing import Dict, List, Optional, Tuple
import ast # 仅用于验证代码语法,运行时不需要
# ── 数据结构定义 ─────────────────────────────────────────────────────────────
@dataclass
class AdCampaign:
"""广告投放活动"""
advertiser_id: str
product_id: str
bid: float # 出价(美元/次点击)
daily_budget: float # 日预算
spent: float = 0.0 # 已花费
target_roas: float = 4.0
@property
def budget_ratio(self) -> float:
"""预算剩余系数 λ_budget"""
remaining = max(0.0, self.daily_budget - self.spent)
return min(1.0, remaining / self.daily_budget)
@property
def is_active(self) -> bool:
return self.budget_ratio > 0.05 # 剩余5%以上才投放
@dataclass
class UserProfile:
"""用户画像"""
user_id: str
click_history: List[str] = field(default_factory=list)
embedding: Optional[np.ndarray] = None
@dataclass
class Product:
"""商品信息"""
product_id: str
category: str
price: float
embedding: Optional[np.ndarray] = None
organic_score: float = 0.0 # 有机推荐分
# ── 核心模型 ─────────────────────────────────────────────────────────────────
class MatrixFactorizationMock:
"""
BPR-MF 模型(mock版,用随机Embedding模拟训练结果)
真实场景替换为 implicit 库或 LightFM
"""
8. 论文来源
- 2402.17289
- 2405.14382
- 2501.08341