paper2skills Playbook

时空注意力混合专家补全 - 高缺失率下的多维流量恢复

Skill-STAMImputer-SpatioTemporal · 14-用户分析

causalexperimentforecastingoptimization广告与投放WF-B 广告优化WF-D 选品扫描
年化 ROI10-30 万
实现难度⭐⭐⭐☆☆
业务优先级⭐⭐⭐⭐☆
业务视角
适用角色运营负责人 / 用户增长负责人 · CMO · 产品经理
适用平台Amazon 买家分层 · DTC 站 LTV 预测 · Klaviyo/Brevo 邮件分群
什么情况下用有大量老客户,但不知道谁是高价值客户、谁快要流失;新客获取成本越来越高,老客复购却上不去
成功是什么样的用户按 RFM/LTV 分层精准触达,高价值用户留存率提升,老客贡献收入占比从 30% 提升到 50%
业务痛点
老客复购率上不去不知道哪些用户要流失了所有用户用同一套活动买过一次就不见了

1. 解决的问题

现有时序→空间的序贯方法在块状缺失(block-missing)场景下失效——当某个渠道或时段整块数据缺失时,无法提取有效特征。同时,静态图结构无法适应分布偏移(非平稳流量数据的动态空间依赖)。

2. 核心算法逻辑

现有时序→空间的序贯方法在块状缺失(blockmissing)场景下失效——当某个渠道或时段整块数据缺失时,无法提取有效特征。同时,静态图结构无法适应分布偏移(非平稳流量数据的动态空间依赖)。

3. 业务应用场景

母婴品牌在多个跨境渠道(Amazon、Shopee、独立站、TikTok Shop、Lazada 等)运营,每天/每周的流量矩阵为 `(渠道数 × 日期 × 页面类型)` 的三维张量。实际中约 60% 的单元格缺失: - 新渠道上线初期:数据覆盖不完整 - 区域性断流:某些市场的爬虫/API 限流导致整块数据丢失(块缺失) - 小渠道低频流量:日活不足导致页面维度稀疏(点缺失)

现有做法:均值填充或直接忽略缺失,导致: - 归因分析严重偏差(认为某渠道"无流量"实为数据缺失) - 跨渠道对比失真,决策基础不可靠 - 时序模型(预测/异常检测)因缺失而精度下降

将渠道视为"空间节点"(graph nodes),日期为时间维度(time steps),页面类型为特征维度(features): - 空间节点:5-20 个渠道节点,邻接关系由业务相似性(同大促、同受众)定义 - 时间步:过去 30-90 天日粒度数据 - 特征:各渠道各页面类型的日流量数

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

10-30 万

7. 代码模板

代码块数量:4 · 路径:未检测到

"""
STAMImputer - 时空注意力 MoE 流量矩阵补全
论文: STAMImputer: Spatio-Temporal Attention MoE for Traffic Data Imputation (IJCAI 2025)
应用: 母婴出海跨境电商多渠道流量矩阵补全(60%缺失率)

依赖: numpy, scipy, pandas, torch (CPU 可用)
"""

import numpy as np
import pandas as pd
from typing import Optional, Tuple, Dict, List
import warnings

try:
    import torch
    import torch.nn as nn
    import torch.nn.functional as F
    HAS_TORCH = True
except ImportError:
    HAS_TORCH = False
    warnings.warn("PyTorch 未安装,将使用纯 NumPy 简化实现(推理精度略低)")


# ─────────────────────────────────────────────────────────────
# 1. 低秩引导采样图注意力 (LrSGAT) - NumPy 实现
# ─────────────────────────────────────────────────────────────

class LrSGATNumpy:
    """
    LrSGAT 的 NumPy 简化实现(无需 GPU)

    核心步骤:
      1. 采样投影器:从静态邻接矩阵采样低维注意力向量
      2. 低秩重注意力:低秩矩阵分解过滤冗余关系
      3. 半自适应动态图:用注意力向量生成动态邻接矩阵
    """

    def __init__(
        self,
        n_nodes: int,
        in_features: int,
        rank: int = 4,
        alpha: float = 0.5,
    ):
        """
        Args:
            n_nodes:     空间节点数(渠道数)
            in_features: 输入特征维度(页面类型数 or 时序特征维度)
            rank:        低秩近似的秩 r
            alpha:       静态图与动态图的混合权重(0=全动态, 1=全静态)
        """
        self.n = n_nodes
        self.d = in_features
        self.rank = rank
        self.alpha = alpha

        # 可学习参数(用随机初始化简化)
        np.random.seed(42)
        self.W_proj = np.random.randn(in_features, rank) * 0.1  # 投影矩阵

8. 论文来源

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