(一)基於商品屬性的相似商品推薦算法——整體框架及處理流程


系列隨筆:

(總覽)基於商品屬性的相似商品推薦算法

(一)基於商品屬性的相似商品推薦算法——整體框架及處理流程

(二)基於商品屬性的相似商品推薦算法——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實時計算實現商品的隱式評分

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM