全部
常见问题
产品动态
精选推荐
功能建议

已处理 待处理 {{opt.name}}
已处理 待处理
分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
基于关键词搜索行为与商品详情特征构建个性化推荐与关联推荐:API 技术实践

管理 管理 编辑 删除

​

1. 引言

在电商场景中,用户从搜索关键词到点击商品详情,再到最终下单,每一步行为都蕴含着丰富的意图信号。如何利用这些信号构建个性化推荐与关联推荐,是提升转化率和客单价的关键。本文围绕「关键词搜索行为」与「商品详情特征」两条主线,介绍一套可落地的 API 技术方案,涵盖数据采集、特征工程、召回排序、关联规则挖掘以及服务化部署。

2. 整体架构

推荐系统整体分为离线计算与在线服务两层。离线层负责特征加工、模型训练和关联规则挖掘;在线层通过 API 对外提供个性化推荐与关联推荐能力。


flowchart TD
    A[用户搜索行为日志] --> B[数据清洗与特征工程]
    C[商品详情特征] --> B
    B --> D[离线训练/规则挖掘]
    D --> E[(特征库/模型库)]
    E --> F[在线推荐 API]
    F --> G[个性化推荐]
    F --> H[关联推荐]

3. 数据模型设计

推荐系统依赖两类核心数据:用户行为数据和商品特征数据。下面给出简化后的表结构设计。

3.1 用户搜索行为表

字段类型说明
user_idstring用户唯一标识
keywordstring搜索关键词
search_timedatetime搜索时间
click_item_idstring点击的商品 ID
stay_durationint详情页停留时长(秒)

3.2 商品详情特征表

字段类型说明
item_idstring商品 ID
category_idstring类目 ID
pricefloat商品价格
titlestring商品标题
tagsarray商品标签

4. 特征工程

特征工程是推荐效果的关键。这里重点介绍两类特征:搜索行为特征和商品详情特征。

4.1 搜索行为特征

  • 关键词频次:用户近 7 天搜索同一关键词的次数,反映意图强度。
  • 点击率:某关键词下用户点击商品的比例,用于衡量关键词与商品的匹配度。
  • 停留时长:用户在商品详情页的平均停留时长,可作为兴趣权重的代理指标。

4.2 商品详情特征

  • 类目偏好:用户点击商品所属类目的分布,用于刻画用户类目偏好。
  • 价格带:用户点击商品的价格区间分布,用于价格敏感度建模。
  • 标签向量:基于商品标签构建的向量表示,用于计算商品相似度。

5. 个性化推荐 API

个性化推荐的核心是根据用户历史行为召回候选商品,再通过排序模型输出 TopN 结果。下面给出一个基于关键词与商品特征的召回排序流程。

5.1 召回策略

召回阶段采用多路召回,包括关键词匹配召回、类目偏好召回和协同过滤召回。


public List<Item> recall(String userId, String keyword, int topN) {
    // 1. 关键词匹配召回
    List<Item> keywordItems = searchByKeyword(keyword, topN);
    // 2. 类目偏好召回
    List<Item> categoryItems = searchByCategory(userId, topN);
    // 3. 协同过滤召回
    List<Item> cfItems = collaborativeFiltering(userId, topN);
    // 合并去重
    return mergeAndDedup(keywordItems, categoryItems, cfItems, topN);
}

5.2 排序模型

排序阶段使用轻量级模型,融合搜索行为特征与商品详情特征,输出点击概率。


public double predictClick(String userId, Item item, SearchContext ctx) {
    FeatureVector fv = buildFeatureVector(userId, item, ctx);
    return rankModel.score(fv);
}

6. 关联推荐 API

关联推荐的目标是发现「经常一起购买」或「经常被一起点击」的商品组合。这里采用基于共现矩阵的关联规则挖掘。

6.1 关联规则挖掘

离线阶段统计商品对在用户会话中的共现次数,计算支持度与置信度,筛选出强关联规则。


SELECT a.item_id AS left_item,
       b.item_id AS right_item,
       COUNT(*) AS co_occurrence
FROM session_behavior a
JOIN session_behavior b
  ON a.session_id = b.session_id
 AND a.item_id <> b.item_id
GROUP BY a.item_id, b.item_id
HAVING COUNT(*) >= 10;

6.2 关联推荐接口

在线服务根据当前商品 ID 查询关联规则表,返回关联商品列表。


public List<Item> recommendRelated(String itemId, int topN) {
    List<Rule> rules = ruleService.findByLeftItem(itemId);
    return rules.stream()
        .sorted(Comparator.comparingDouble(Rule::getConfidence).reversed())
        .limit(topN)
        .map(rule -> itemService.getById(rule.getRightItem()))
        .collect(Collectors.toList());
}

7. 服务化部署

推荐能力以 RESTful API 形式对外提供,支持高并发查询。下面给出接口定义示例。

7.1 个性化推荐接口


GET /api/v1/recommend/personal?user_id=U123&keyword=手机&top_n=10

7.2 关联推荐接口


GET /api/v1/recommend/related?item_id=I456&top_n=10

接口返回统一 JSON 结构,包含推荐商品列表及推荐理由。


{
  "code": 0,
  "data": {
    "items": [
      {"item_id": "I789", "score": 0.92, "reason": "与您搜索的「手机」高度相关"},
      {"item_id": "I101", "score": 0.88, "reason": "购买该商品的用户也购买了"}
    ]
  }
}

8. 效果评估与优化

推荐系统上线后需要持续评估与优化。核心指标包括点击率(CTR)、转化率和关联购买率。

  • CTR:衡量推荐结果的点击吸引力。
  • 转化率:衡量推荐结果对下单的贡献。
  • 关联购买率:衡量关联推荐对客单价的提升效果。

优化方向上,可引入实时行为反馈、A/B 实验以及模型定期重训练,确保推荐效果随用户行为变化而持续迭代。

9. 总结

本文围绕关键词搜索行为与商品详情特征,介绍了构建个性化推荐与关联推荐的完整 API 技术链路。核心要点包括:以搜索行为刻画用户实时意图,以商品详情特征补充长期偏好;通过多路召回与排序模型输出个性化结果;通过共现矩阵挖掘关联规则实现关联推荐。整套方案可快速接入电商业务,并支持后续扩展实时计算与深度学习模型。​


{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

+v 2467742810 最后编辑于2026-10-20 17:43:03

快捷回复
{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{item.floor}}# 【已收集】
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
分享
{{item.showReply ? '取消回复' : '回复'}}
删除
{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}
收起 展开更多
查看更多
打赏
已打赏¥{{reward_price}}
27
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

{{ wechatLoginError }}
切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服
CRMEB咨询热线 400-8888-794

扫码领取产品资料

功能清单
思维导图
安装教程
CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服