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

tujia tujia     2023-04-13     804

关键词:

系列随笔:

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

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

(二)基于商品属性的相似商品推荐算法——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实时计算实现商品的隐式评分

 

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

系列随笔:(总览)基于商品属性的相似商品推荐算法(一)基于商品属性的相似商品推荐算法——整体框架及处理流程(二)基于商品属性的相似商品推荐算法——FlinkSQL实时计算实现商品的隐式评分(三)基于商... 查看详情

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

系列随笔:(总览)基于商品属性的相似商品推荐算法(一)基于商品属性的相似商品推荐算法——整体框架及处理流程(二)基于商品属性的相似商品推荐算法——FlinkSQL实时计算实现商品的隐式评分(三)基于商... 查看详情

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

系列随笔:(总览)基于商品属性的相似商品推荐算法(一)基于商品属性的相似商品推荐算法——整体框架及处理流程(二)基于商品属性的相似商品推荐算法——FlinkSQL实时计算实现商品的隐式评分(三)基于商... 查看详情

基于用户行为数据为用户推荐商品

...荐算法  在推荐系统中,最基本也最广泛应用的算法是基于用户的协同过滤算法(UserCF)和基于物品的协同过滤算法(ItemCF)。基于用户的协同过滤算法(UserCF)的基本思想是:当为A用户推荐时,可以先找到和他有相似兴趣... 查看详情

实时推荐模型的算法设计

...推荐优先级,然后与上次对用户u的实时推荐结果的进行基于推荐优先级的合并、 查看详情

基于图像信息的搭配商品推荐

...外还有对跨类目的搭配商品的需求。这篇文章介绍的就是基于商品图像的搭配推荐。本文的主要思想是通过学习一个featuretrans 查看详情

商品推荐算法(代码片段)

淘宝网会为你推荐一些商品,而这些商品是如何被推荐过来的想必你也很好奇,今天我们就来聊一下商品推荐的一些算法,当下主流的推荐算法协同过滤推荐算法,让我们一起来看看它是如何工作的。首先,我们先了解下余弦相... 查看详情

深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

...言在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎、个性化推荐引擎、基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点。主要介绍的不同类型的推荐系统包括:近邻算法... 查看详情

商品推荐算法(代码片段)

淘宝网会为你推荐一些商品,而这些商品是如何被推荐过来的想必你也很好奇,今天我们就来聊一下商品推荐的一些算法,当下主流的推荐算法协同过滤推荐算法,让我们一起来看看它是如何工作的。首先,我们先了解下余弦相... 查看详情

基于协同过滤的推荐引擎

...荐;爱奇艺、乐视根据向用户推荐电影;(二)推荐算法基于关系规则推荐:用户A经常同时购买了哪些商品,分析这些商品的关联规则,则用户B购买其中某一商品,可推荐其它商品;基于内容推荐:用户喜欢A电影,B电影和A属... 查看详情

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

...领域。最近的一些算法的进步和GPU并行计算的使用,使得基于深度学习的算法可以在围棋和其他的一些实际应用里取得很好的成绩。时尚产业是深度学习的目标领域之一。闪购网站Gilt就一直在使用深度学习来进行产品推荐和服... 查看详情

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

...行向量表示每个用户的喜好,列向量表明每个物品的属性基于评分矩阵(行列)计算相似度,以下是计算相似度的一些方法:余弦相似度皮尔逊相关系 查看详情

spark机器学习速成宝典推荐引擎——协同过滤

... 条目9 推荐模型的分类  最为流行的两种方法是基于内容的过滤、协同过滤。  基于内容的过滤:  比如用户A买了商品A,商品B与商品A相似(这个相似是基于商品内部的属性,比如“非常好的协同过滤入门文章”和... 查看详情

大数据sparkmllib推荐算法(代码片段)

目录1相似度算法1.1欧几里德距离算法1.2基于夹角余弦相似度算法2最近邻域3交替最小二乘法3.1最小二乘法3.2交替最小二乘法3.3ALS算法流程3.4ALS算法实战3.4.1数据说明3.4.2数据建模3.4.3实战3.4.4优化改进1相似度算法无论是基于用户还... 查看详情

Amazon.com 的相关商品算法

...商品的客户也购买了”和“相关”推荐部分。我猜前者是基于销售数据,而另一个是基于目录数据,例如类别、属性等。有谁知道亚马逊或其他类似的大型零售公司如何将这些推荐的产品拉到他们的产品页面上?它 查看详情

spark机器学习(11):协同过滤算法

...的物品,或者把物品推荐给相似的用户。怎样评价用户对商品的偏好?可以有很多方法,如用户对商品的打分、购买、页面停留时间、保存、转发等等。得到了用户对商品的偏好,就可以给用户推荐商品。有两种方法:用户A喜... 查看详情

基于邻域的推荐算法

基于邻域的算法,就是最常见的CF协同过滤算法。分为基于用户的userbasedCF和基于物品的itembasedCF.1.userbasedCF对目标用户u,找出与之相似的用户集合U,将U中用户感兴趣而u没见过的物品推荐给u.用户相似度,通过将用户表示成商品的... 查看详情

基于物品协同过滤实现商品推荐系统(代码片段)

一、背景某电商平台,有一批用户浏览、收藏、购买物品的日志数据。实现用户进入APP之后第一页显示商品的个性化推荐。ps:当前阶段,显示数据为随机选取。二、思考1、因为是某一品类的特殊电商平台,卖的商品几百种,但... 查看详情