paper2skills Playbook

User Profile Long Memory — 跨会话用户画像:育儿阶段感知与偏好记忆

Skill-User-Profile-Long-Memory · 14-用户分析

causalexperimentrecommendationmulti_agentdata_collectionpricing客服与VOC推荐与搜索数据采集与治理MAS与智能体工程定价与利润风控与合规WF-C 客服分诊WF-D 选品扫描WF-E Review监控WF-F 动态定价WF-H 复购增长
年化 ROI50 万
实现难度⭐⭐☆☆☆
业务视角
适用角色运营负责人 / 用户增长负责人 · CMO · 产品经理
适用平台Amazon 买家分层 · DTC 站 LTV 预测 · Klaviyo/Brevo 邮件分群
什么情况下用有大量老客户,但不知道谁是高价值客户、谁快要流失;新客获取成本越来越高,老客复购却上不去
成功是什么样的用户按 RFM/LTV 分层精准触达,高价值用户留存率提升,老客贡献收入占比从 30% 提升到 50%
业务痛点
老客复购率上不去不知道哪些用户要流失了所有用户用同一套活动买过一次就不见了

1. 解决的问题

用户上月购买了 Stage 1 奶粉,系统推断宝宝约 2-3 月龄

2. 核心算法逻辑

传统电商推荐的痛点:每次会话独立,用户偏好从零识别——上月的购买行为、表达过的品牌偏好、当下育儿阶段的隐含需求全部丢失。用户画像长期记忆(User Profile Long Memory)通过跨会话持久化画像,将用户的历史交互沉淀为可更新、可检索的结构化特征,驱动无缝个性化体验。

3. 业务应用场景

业务问题:用户上月购买了 Stage 1 奶粉,系统推断宝宝约 2-3 月龄。本月用户再次进入 App,系统需要主动预判宝宝已接近 4-5 月,即将进入 Stage 2 窗口,无需用户重复说明偏好即可精准推荐。

数据要求: - 历史购买记录:品类(Stage 1/2/3 奶粉、辅食泥、学步玩具)+ 购买时间 - 浏览行为:浏览了哪些品类页 + 停留时长 - 画像特征存储:JSON 结构,持久化到用户数据库

| 时间节点 | 画像状态 | 推荐行为 | |---------|---------|---------| | 购买 Stage 1(Month 0) | `baby_stage=NEWBORN, brand=Aptamil, organic=True` | 写入画像 | | 用户回访(Month 3) | 推断宝宝≈4月,检测到临近升阶窗口 | 推荐 Stage 2 同品牌有机配方 + 辅食入门套装 | | 用户回访(Month 6) | 推断宝宝≈8月,进入辅食深度期 | 推荐有机米粉/果泥 + Stage 3 过渡产品 |

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 育儿阶段感知是母婴场景特有的强信号,其他通用推荐系统缺失此维度
  • 实现成本低(无 LLM 调用、无向量库),运行成本接近零
  • 与 Shopping Companion Agent 结合后形成完整的"偏好识别→记忆→复现"闭环
  • 仅基于购买行为推断,浏览行为未纳入时推断精度受限
  • 多宝宝家庭(二胎)可能导致阶段推断混乱(需要会话分离机制)

7. 代码模板

代码块数量:1 · 路径:paper2skills-code/user_analytics/user_profile_long_memory

"""
User Profile Long Memory — 跨会话用户画像积累
来源: Personalized Memory Architecture + LLM Personal Assistant 2025-2026
场景: 育儿阶段感知 + 品牌偏好 + 价格敏感度的持久化画像管理
"""

import math
import json
from dataclasses import dataclass, field
from datetime import datetime, timezone
from enum import Enum
from typing import Optional


# ─────────────────────────────────────────────
# 枚举定义
# ─────────────────────────────────────────────

class UserProfileDimension(Enum):
    """用户画像维度枚举"""
    PARENTING_STAGE = "parenting_stage"       # 育儿阶段
    BRAND_PREFERENCE = "brand_preference"     # 品牌偏好
    PRICE_SENSITIVITY = "price_sensitivity"   # 价格敏感度
    ORGANIC_PREFERENCE = "organic_preference" # 有机偏好
    CATEGORY_AFFINITY = "category_affinity"   # 品类亲和度
    QUALITY_WEIGHT = "quality_weight"         # 品质权重
    BABY_AGE_MONTHS = "baby_age_months"       # 宝宝月龄(推断值)


class ParentingStage(Enum):
    """育儿阶段枚举"""
    NEWBORN = "newborn"           # 新生儿(0-3月)
    INFANT = "infant"             # 婴儿期(4-6月)
    CRAWLER = "crawler"           # 爬行期(7-9月)
    TODDLER_EARLY = "toddler_early"   # 学步初期(10-12月)
    TODDLER_MID = "toddler_mid"       # 学步中期(13-18月)
    TODDLER_LATE = "toddler_late"     # 学步晚期(19-24月)
    PRESCHOOL = "preschool"       # 学前期(25+月)
    UNKNOWN = "unknown"           # 未知阶段


# ─────────────────────────────────────────────
# 数据类定义
# ─────────────────────────────────────────────

@dataclass
class ProfileAttribute:
    """单一画像属性,含置信度与衰减机制"""
    value: object
    confidence: float                          # 置信度 [0,1]
    last_updated: str                          # ISO 8601 时间戳
    decay_rate: float = 0.05                   # 月衰减率(λ)
    source: str = "purchase_history"           # 来源标注
    evidence_count: int = 1                    # 支撑证据条数

    def effective_confidence(self, now: Optional[datetime] = None) -> float:
        """计算时间衰减后的有效置信度"""
        if now is None:
            now = datetime.now(timezone.utc)
        last = datetime.fromisoformat(self.last_updated)

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。