LLM Augmented Recommendation — 大语言模型增强个性化推荐:自然语言驱动的跨域用户意图理解
Skill-LLM-Augmented-Recommendation · 05-推荐系统
experimentrecommendationragmulti_agentpricing推荐与搜索MAS与智能体工程定价与利润WF-F 动态定价
年化 ROI100万
实现难度⭐⭐⭐☆☆
业务视角
适用角色运营负责人 / 选品负责人 · 产品经理 · 广告优化师
适用平台Amazon · DTC 独立站 · 邮件/SMS 个性化
什么情况下用老客来了只买一件就走,相关产品没被推出去;Bundle 商品连带销售做不起来;站内推荐位点击率低
成功是什么样的老客连带购买率提升 20-35%,客单价提升,品类交叉销售做起来
业务痛点
1. 解决的问题
母婴跨境电商新用户注册率高但转化低,约 65% 新用户第一屏浏览 ≤3 个商品后跳出
2. 核心算法逻辑
传统推荐系统(Matrix Factorization、深度 CTR 模型)将用户行为编码为稠密向量,擅长捕捉行为规律,但无法理解用户用自然语言表达的复杂意图(如"适合3个月宝宝添加辅食前的益智玩具")。LLM 增强推荐的核心思路是:以 LLM 为语义桥梁,将自然语言偏好、物品描述、上下文对话统一嵌入到推荐打分过程中,而非单独依赖协同过滤信号。
3. 业务应用场景
业务背景:母婴跨境电商新用户注册率高但转化低,约 65% 新用户第一屏浏览 ≤3 个商品后跳出。原因是传统推荐依赖历史行为,新用户无行为数据,只能展示热销榜单,命中率低。
量化 ROI:以月均 5000 新用户计算,首单转化率提升 4.7pp,平均客单价 $85, 额外月增收入:5000 × 4.7% × $85 ≈ $20,000/月
数据要求: - 注册时用户自然语言输入(可选) - 物品 Title/Description/Category(标准 Feed) - 可选:用户历史(冷启动场景无需)
4. 输入数据要求
- `alpha`(语义权重):冷启动用 0.7-0.9,热启动用 0.2-0.4
- `CLARIFICATION_ENTROPY_THRESHOLD`:调低 → 更多澄清问题(精准但体验差),调高 → 更快推荐(体验好但不精准)
- Grounding 相似度阈值:建议 0.3 以上,过低会引入噪声物品
5. 输出结果
- `alpha`(语义权重):冷启动用 0.7-0.9,热启动用 0.2-0.4
- `CLARIFICATION_ENTROPY_THRESHOLD`:调低 → 更多澄清问题(精准但体验差),调高 → 更快推荐(体验好但不精准)
- Grounding 相似度阈值:建议 0.3 以上,过低会引入噪声物品
6. 业务价值 / ROI
100万
7. 代码模板
代码块数量:7 · 路径:未检测到
"""
LLM Augmented Recommendation
整合 LLMRec (语义增强) + BIGRec (LLM直接生成) + RecAgent (多轮对话)
母婴电商场景 mock 实现,含完整测试
"""
from __future__ import annotations
import numpy as np
from dataclasses import dataclass, field
from typing import Dict, List, Optional, Tuple
from collections import defaultdict
# ── 数据模型 ─────────────────────────────────────────────────────────────
@dataclass
class Item:
"""母婴商品"""
item_id: str
title: str
category: str
age_range: str # 如 "0-6months", "6-12months"
price: float
safety_cert: str # 如 "ASTM", "EN71", "CPSC"
embedding: Optional[np.ndarray] = None # 语义向量(LLM 生成)
def to_text(self) -> str:
return f"{self.title},适用{self.age_range},{self.category},${self.price},{self.safety_cert}"
@dataclass
class User:
"""用户"""
user_id: str
history: List[str] = field(default_factory=list) # item_id 列表(时间倒序)
cf_embedding: Optional[np.ndarray] = None # 协同过滤向量
sem_embedding: Optional[np.ndarray] = None # 语义向量(LLM 增强)
natural_language_pref: str = "" # 自然语言偏好描述
# ── LLMRec:语义增强推荐 ──────────────────────────────────────────────────
class LLMRecModel:
"""
LLMRec:三类 Augmentation + 融合推荐
简化版:用 TF-IDF 语义相似度模拟 LLM Embedding
"""
def __init__(self, embedding_dim: int = 64):
self.embedding_dim = embedding_dim
self._item_registry: Dict[str, Item] = {}
self._vocab: Dict[str, int] = {}
def register_items(self, items: List[Item]):
"""注册物品库,构建词汇表并生成 mock Embedding"""
for item in items:
self._item_registry[item.item_id] = item
for word in item.to_text().lower().split():
if word not in self._vocab:
8. 论文来源
- 2307.02391
- 2308.07107
- 2310.10108