设计一款基于内容的推荐系统的简单思路
【设计一款基于内容的推荐系统的简单思路】简单记录一下推荐系统设计的思路,SQL不是最终的SQL,只是提供一种思路。关于推荐总得无非是基于用户推荐和基于推荐内容推荐这两种
一、基于用户的个性化推荐
千人千面
方法1,依据用户浏览内容属性直接推荐(《类似最直接的关键词搜索结果》)
当前用户的历史记录表
- {运动鞋, 李宁, 价格220, 男}
- {运动鞋, 匹克, 价格240, 男}
- {运动鞋, 匹克, 价格200, 男}
SELECT * FROM t_goods WHERE cat_name = "运动鞋" AND 品牌 IN ("李宁","匹克") AND price BETWEEN 200 AND 240 AND gender = "男"
方法2,分析用户行为生成标签(《你可能还喜欢》)
用户历史记录表
- {运动鞋, 李宁, 价格220, 男}
- {运动鞋, 匹克, 价格240, 男}
- {运动鞋, 匹克, 价格200, 男}
用户标签
- 男性
- 国产爱好者
- 中等收入人群
- 年轻
商品标签
- 男鞋
- 国产牌子
- 中等价位
- 年轻款
SELECT * FROM t_goods_tags WHERE tags_name IN (
男鞋,国产牌子,中等价位,年轻款,
)
方法3,找出有同样兴趣的群体(《其他用户浏览并还买了》)
用户历史记录表
- {运动鞋, 李宁, 价格220, 男}
- {运动鞋, 匹克, 价格240, 男}
- {运动鞋, 匹克, 价格200, 男}
SELECT user_id FROM t_goods_history WHERE goods_id IN (
1,2,3
)
结果:
- 男B
- 男C
SELECT * FROM t_goods_history WHERE user_id IN (
"男B","男C"
) ADN goods_id NOT IN (1,2,3)
二、基于物品内容的推荐 适用于用户首次进来无历史行为
方法1,简单依据商品的属性推荐同款
用户当前访问的商品
- {运动鞋, 李宁, 价格220, 男}
SELECT * FROM t_goods WHERE cat_name = "运动鞋" AND 品牌 IN ("李宁")AND gender = "男"
方法2,依据相似性推荐
用户当前访问的商品
- {运动鞋, 匹克, 价格240, 男}
- 分类:运动鞋
- 品牌档次:大众
- 品牌类型:国产
- 价格:中等
- 款式:男
- 年龄段:年轻款
譬如:
if($goodsTags['款式']== '年轻款'){
$score += 10;
}if($goodsTags['上市时间'] == '跟该商品上市时间差不多几年'){
$score += 5;
}.....
3.推荐产品策略如下
SELECT * FROM t_goods_socre WHERE goods_id = 1 order by score desc limit 10
推荐阅读
- C语言程序设计——从入门到进阶,C语言程序设计——从入门到进阶-巨同升主编.pdf(3)...
- Android弹幕实现(基于B站弹幕开源系统-重构)
- opencv|android应用案例开发大全第3版配套源码光盘_23行代码实现(Python实时人脸检测程序设计(附源码)...)
- android应用开发-从设计到实现 3-7 静态原型的更多天气信息
- Android设计模式之工厂模式
- Android Binder设计与实现篇
- 基于adt-bundle-windows-x86的android开发环境搭建
- 算法设计(最大和连续子数组的范围查询)
- Android 中基于 Binder的进程间通信
- 算法设计(从三元树创建双向链表)