P paper2skillsPlaybook
AI 路线图 →

AutoPKG — 多模态产品属性图谱自动构建:文本+图片→GMV提升

Skill-AutoPKG-Multimodal-Product-Attribute-KG · 08-知识图谱

causalexperimentforecastingrecommendationknowledge_graphmulti_agentdata_collectionvisual_generation广告与投放供应链与补货客服与VOC推荐与搜索知识图谱与RAG数据采集与治理MAS与智能体工程视觉内容生成WF-A 智能补货WF-B 广告优化WF-C 客服分诊WF-D 选品扫描WF-E Review监控WF-G Listing内容优化WF-I 智能体工程WF-L 内容营销增长
年化 ROI1,000万
实现难度⭐⭐⭐☆☆
业务视角
适用角色选品负责人 / 运营负责人 · 数据分析师 · 供应链负责人
适用平台Amazon 品类体系 · 竞品 ASIN 网络分析
什么情况下用品类很多,不清楚品类间的关联,没法做系统性类目扩张规划;竞品矩阵太复杂,品牌/SKU/渠道理不清
成功是什么样的建立品类知识图谱,清晰看到哪些是入口品/引流品/利润品,指导下一步选品扩张方向
业务痛点
品类太多不知道先做哪个竞品关系理不清楚不知道用户买了奶瓶还会买什么类目扩张没有逻辑

1. 解决的问题

母婴跨境团队面临"商品属性人工填写耗时且不标准导致推荐失准"——多模态多Agent自动构建产品属性图谱,属性填充率从60%→96%,Search GMV+5.32%(Lazada生产A/B实测)

2. 核心算法逻辑

电商产品属性图谱(PKG)长期被一个矛盾困住:维护成本高得离谱(人工定义属性Schema),同时又随时过期(新品类涌现速度快于人工更新速度)。母婴跨境电商尤其典型——吸奶器的"静音分贝"、婴儿推车的"折叠尺寸"这类属性,既没有统一标准,又直接影响转化。

3. 业务应用场景

业务问题:某母婴跨境团队在Amazon US/UK/DE三站运营800+ SKU,品类跨越吸奶器、婴儿推车、安抚奶嘴、纸尿裤。每款新品上架时,运营需要手工填写40+个属性(BPA-Free认证、适用月龄、最大承重、折叠尺寸…),耗时2-3小时/SKU,且不同运营填写标准不统一,导致推荐系统"品类混淆"(把NB码尿布推给6月大婴儿)。

AutoPKG处理流程: 1. 属性归纳:喂入500个品类样本SKU(文本描述+主图),Agent自动归纳出68个属性键,覆盖率96.3% 2. 批量提取:对800+ SKU并发运行多模态属性提取,文本+视觉双通道 3. 规范化:Consolidation Agent合并同义属性值(如"0-6月"/"出生至6M"/"新生儿"→ 统一为 "0-6M") 4. 接入下游:PKG输出接入推荐系统的商品Profile向量、搜索系统的属性Filter、Detail页的角标展示

数据要求: - 每个SKU的商品描述文本(Bullet Points + Feature Description,≥50字符) - 商品主图(JPG/PNG,≥400×400px,避免纯白背景) - 历史有效属性样本(可选,用于Consolidation Agent校准)

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

  • ROI预估
  • 属性填写人工成本节省:¥80,000-200,000/年(视SKU数量)
  • GMV增量(参考Lazada A/B数据):
  • Search GMV:+5.32%(1,000万GMV规模→+53.2万/年)
  • Recommendation GMV:+7.89%
  • Badge展示效率:+3.81%

7. 代码模板

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

"""
AutoPKG - 多模态产品属性图谱自动构建
简化实现版:文本+图片属性抽取 + Consolidation Agent

依赖: openai (或任意LLM客户端), PIL, requests, json
"""

import json
import re
from typing import Dict, List, Optional, Any
from collections import defaultdict

# ─────────────────────────────────────────────
# 数据结构
# ─────────────────────────────────────────────

class ProductNode:
    """电商产品节点"""
    def __init__(self, sku_id: str, title: str, description: str, 
                 image_url: Optional[str] = None, category: str = ""):
        self.sku_id = sku_id
        self.title = title
        self.description = description
        self.image_url = image_url
        self.category = category
        self.attributes: Dict[str, Any] = {}  # 提取到的属性


class ProductAttributeKG:
    """产品属性知识图谱"""
    def __init__(self):
        self.products: Dict[str, ProductNode] = {}
        self.attribute_schema: Dict[str, List[str]] = {}  # category -> [attr_keys]
        self.canonical_values: Dict[str, Dict[str, str]] = {}  # attr_key -> {raw -> canonical}
    
    def add_product(self, product: ProductNode):
        self.products[product.sku_id] = product
    
    def get_attributes_df(self):
        """输出属性数据框(可接入推荐系统)"""
        rows = []
        for sku_id, product in self.products.items():
            row = {"sku_id": sku_id, "category": product.category}
            row.update(product.attributes)
            rows.append(row)
        return rows


# ─────────────────────────────────────────────
# AutoPKG核心模块
# ─────────────────────────────────────────────

class AttributeInductor:
    """
    Module 1: 按需属性归纳(On-demand Schema Induction)
    从样本SKU中自动发现该品类应有哪些属性键
    """
    
    def __init__(self, llm_client):
        self.llm = llm_client

8. 论文来源

  • 2604.16950