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

系列随笔:

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

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

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

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

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

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

 

 

2020.04.15  补充:协同过滤推荐算法.pptx

 

提取码:4tds

 

 

算法调优及其他


 

一、属性的选择

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

// 属性前缀为:适用人群-佩戴场合-机芯类型-价格区间-表盘形状-表盘直径,后面的属性排列顺序可以随意
$needs = [31=>'适用人群', 40=>'佩戴场合', 1=>'机芯类型', 39=>'价格区间', 9=>'表盘形状', 11=>'表盘直径', 13=>'表盘刻度', 17=>'表带材质', 14=>'表盘颜色', 25=>'防水', 3=>'外壳材质', 38=>'表盘宽度', 3=>'表盘厚度', 12=>'镜面材质', 16=>'表壳底盖', 19=>'表带颜色'];

再根据 (四)基于商品属性的相似商品推荐算法——推荐与评分高的商品属性相似的商品,可以看出属性前缀的作用具体就是第一步筛选商品(前缀相同的商品,大概有40%-50%的相似);

 

所以,属性前缀的选择原则就很简单了:第一步筛选把关。什么属性相同时,能确定两个商品是基本相似的?属性前缀的选择不宜太简单,也不宜太严格;

假设,属性前缀我只取"适用人群-佩戴场合",条件过于简单,那么属性前缀相同的商品就会很多很多,增加后期的计算量;

再假设,我把”品牌-表盘颜色-表带颜色“放入属性前缀中,条件过于严格,只能筛选同品牌同颜色的其他表款。那么能推荐的商品数量就会很少很少。不同品牌,但相似的其他商品就完全没有机会。

总结:品牌、颜色之类的属性,属性于加分项。不要强制一定相同,放在属性前缀后面,作为相似系数的加分项。

 

二、属性加权

1)默认的相似系数计算公式为:

相似系数 = 相同属性位个数/总属性位个数

注:这里所以的属性权重相同,都是1;

 

2)如果你觉得,品牌相同是比较重要的,它的权重应该比较高(例如权重设为5);表盘颜色相同也是很重要的(例如权重设为3);其他属性权重为1

那么,新的相似系数计算公式为:

相似系数 = 相同属性位权重和/总属性位权重和

 

三、推荐文章、视频

如果想在浏览某商品(或其他什么页面)的时候,想推荐与商品相送的文章或视频:

1)文章和视频关联了商品;

2)查询当前商品(或浏览记录)相似的商品,取得它们的 goodsCodes;

3)查询关联了 goodsCodes 的文章或视频。

 

四、其他。。。

 

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

下一节:完

posted @ 2020-03-12 17:59  Tiac  阅读(1309)  评论(0编辑  收藏  举报