(一)基于商品属性的相似商品推荐算法——整体框架及处理流程
系列随笔:
(二)基于商品属性的相似商品推荐算法——Flink SQL实时计算实现商品的隐式评分
(三)基于商品属性的相似商品推荐算法——批量处理商品属性,得到属性前缀及完整属性字符串
(四)基于商品属性的相似商品推荐算法——推荐与评分高的商品属性相似的商品
2020.04.15 补充:协同过滤推荐算法.pptx
提取码:4tds
整体框架及处理流程
流程图:
推荐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实时计算实现商品的隐式评分
分类:
php杂项
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· 程序员转型AI:行业分析
· 为DeepSeek添加本地知识库
· 深入集成:使用 DeepSeek SDK for .NET 实现自然语言处理功能
· .NET程序员AI开发基座:Microsoft.Extensions.AI
2019-03-12 在linux上安装window软件
2018-03-12 解决select2在modal中无法输入的问题