基于商品属性的相似商品推荐算法——整体框架及处理流程

Posted tujia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于商品属性的相似商品推荐算法——整体框架及处理流程相关的知识,希望对你有一定的参考价值。

系列随笔:

(总览)基于商品属性的相似商品推荐算法

(一)基于商品属性的相似商品推荐算法——整体框架及处理流程

(二)基于商品属性的相似商品推荐算法——Flink SQL实时计算实现商品的隐式评分

(三)基于商品属性的相似商品推荐算法——批量处理商品属性,得到属性前缀及完整属性字符串

(四)基于商品属性的相似商品推荐算法——推荐与评分高的商品属性相似的商品

(五)基于商品属性的相似商品推荐算法——算法调优及其他

 

整体框架及处理流程


 

 

流程图:

技术图片

 

 

推荐N个商品,具体步骤:

1)用户行为日志埋点(这里使用的是阿里云log service);

2)Flink SQL(实时计算)统计用户行为对商品的隐式评分,保存到 rc_member_goods 表;

3)预处理平台全部商品,计算其属性前缀或完整属性,保存到 rc_goods_properties 表;

4)rc_member_goods表关联rc_goods_properties表按评分倒序查询当前用户商品,得到2个商品(商品A和商品B)及其他的属性信息;

5)用这两个商品的属性前缀通过rc_goods_properties表查询相同属性前缀的其他商品;

6)查询到的商品分别与商品A、商品B对比计算相似值;

7)相似值倒序,按比例取N个商品;注:如果相似商品数量不足N个,则补充销售高的其他商品;

8)返回推荐结果

 

数据库设计:

CREATE TABLE `rc_config` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 自增,
  `event` varchar(50) DEFAULT NULL COMMENT 理点事件,
  `code_name` varchar(20) DEFAULT ‘‘ COMMENT 商品编码的字段名,
  `score` smallint(5) unsigned NOT NULL DEFAULT 0 COMMENT 得分,
  `status` tinyint(1) unsigned DEFAULT 1 COMMENT 状态,
  `remark` varchar(50) DEFAULT NULL COMMENT 备注,
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_event` (`event`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT=商品推荐配置表;
CREATE TABLE `rc_goods_properties` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 自增ID,
  `goods_code` int(11) unsigned NOT NULL COMMENT 商品编号,
  `property_prefix` varchar(100) DEFAULT NULL COMMENT 属性前缀,
  `properties` varchar(200) DEFAULT NULL COMMENT 属性,
  `update_time` timestamp NULL DEFAULT NULL COMMENT 更新时间,
  PRIMARY KEY (`id`),
  KEY `idx_goods_code` (`goods_code`) USING HASH,
  KEY `idx_prefix` (`property_prefix`) USING HASH
) ENGINE=InnoDB AUTO_INCREMENT=154297 DEFAULT CHARSET=utf8mb4 COMMENT=商品属性表;
CREATE TABLE `rc_member_goods` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 自增ID,
  `member_code` int(11) unsigned DEFAULT NULL COMMENT 会员编码,
  `cid` varchar(100) CHARACTER SET utf8 DEFAULT NULL COMMENT 设备ID,
  `goods_code` int(11) unsigned NOT NULL COMMENT 商品编码,
  `score` int(10) NOT NULL DEFAULT 0 COMMENT 评分,
  `update_time` timestamp NULL DEFAULT NULL COMMENT 更新时间,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `idx_unique` (`member_code`,`cid`,`goods_code`) USING BTREE,
  KEY `idx_cid` (`cid`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2777342 DEFAULT CHARSET=utf8mb4 COMMENT=用户商品评分表;

 

上一节:(总览)基于商品属性的相似商品推荐算法

下一节:(二)基于商品属性的相似商品推荐算法——Flink SQL实时计算实现商品的隐式评分

 

以上是关于基于商品属性的相似商品推荐算法——整体框架及处理流程的主要内容,如果未能解决你的问题,请参考以下文章

(总览)基于商品属性的相似商品推荐算法

基于商品属性的相似商品推荐算法——算法调优及其他

基于商品属性的相似商品推荐算法——推荐与评分高的商品属性相似的商品

深度学习在gilt应用——用图像相似性搜索引擎来商品推荐和服务属性分类

一文带你了解推荐系统常用模型及框架

实时推荐模型的算法设计