A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我是楠楠 于 2018-10-11 15:00 编辑

【郑州校区】推荐系统开发实战笔记下



【郑州校区】推荐系统开发实战笔记上


【郑州校区】推荐系统开发实战笔记中
1、 猜你喜欢
5.1、推荐产品介绍
一个成熟的电商网站,会有很多推荐位,每个推荐位都有自己的推荐逻辑。如此,每个推荐位后面的算法和推荐规则也会不一样。下图是京东的推荐产品信息。
下图是部分推荐广告位。
一般推荐位上都会有一段解释性的文字,告诉用户为什么给你推荐,增加用户对推荐结果的信任。
5.2、猜你喜欢推荐的逻辑
1)输入要展示广告的编号和用户的id
2)根据广告的编号获取广告位的信息
这个广告位的要展示的商品数量、产品经理设置的强制推广商品信息、用户接口需要返回的数据类型。
3)根据广告的编号找到对应的推荐模型
四个模型:
基于用户的协同过滤算法产生的推荐结果(需要上下线检查)
基于物品的协同过滤算法产生的推荐结果 (需要上下线检查)
基于物品的相似度(协同过滤算法),实时计算推荐结果 (需要上下线检查)
基于物品的相似度(基于内容算法),实时计算推荐结果 (需要上下线检查)
4)根据多个模型的结果,进行排序
排序算法
5)设置硬广,强制显示
5.3、实时推荐的逻辑
1、计算物品与物品的相似度,将相似度数据保存到数据库
1)通过协同过滤算法计算了物品的相似度
两个商品被同时购买了就相似
2)通过基于内容的算法计算了物品的相似度
根据商品的属性标签,计算商品相似度。
2、获取当前用户浏览的商品信息
用户A:浏览A\B\C\A
3、根据用户的浏览信息开始推荐
根据用户浏览的逻辑寻找相似商品,如果一个用户对一个商品产看的次数很多,为了却分出这个差别,就设置了一个权重。用户浏览一次,就设置权重值为1.0.浏览第二次就累加0.1,例如:浏览5次,权重值就等于1.0+0.1+0.1+0.1+0.1 =1.4
4、依次获取每个商品的相似商品
5702142:2,5383292:3,5458870:3,5042921:2,4918048:4,3820581:1,5702142:4,4983566:2,5014152:4,4983566:1
利用相似和权重相乘 得到推荐值
按照权重值进行排序
5.4、推荐结果的排序
从四个模型中获取24个商品
第1个 从模型1 获取
第2个 从模型2 中获取
第3个 从模型3 中获取
第4个 从模型4 中获取
第5个 从模型1 中获取
第6个 从模型2 中获取
第7个 从模型1 获取
第8个 从模型2 中获取
第9个 从模型3 中获取
第10个 从模型4 中获取
第11个 从模型1 中获取
第12个 从模型2 中获取
第13个 从模型1 获取
第14个 从模型2 中获取
第15个 从模型3 中获取
第16个 从模型4 中获取
第17个 从模型1 中获取
第18个 从模型2 中获取
获取数据的算法
使用for循环,循环24次,每次到不同的容器中获取一个商品。
For(int i=1;i<=24;i++){
If(i%6==1){从模型1中获取数据}
If(i%6==2){从模型2中获取数据}
If(i%6==3){从模型3中获取数据}
If(i%6==4){从模型4中获取数据}
If(i%6==5){从模型1中获取数据}
If(i%6==0){从模型2中获取数据}
}
5.5、如何展示推荐结果
1)第三方的网站
需要请求一段js代码  http://ad.itcast.cn/js/b.js
细节:域名解析
2)推荐服务的网站
  推荐系统需要对外提供一段js代码。
主要逻辑如下:
从window中获取一个叫做aid值,也就是拿到了121这个广告位的编号。
通过编号,发起一个请求:
得到一个结果集,其实一个jsonp中的回调。
callbackHandler([{"id":"1739475","name":"我的推荐,你的选择","price":"199999","img":"http://img13.360buyimg.com/n6/s488x350_jfs/t2476/214/1387387908/47235/648d8471/5653ca40N964e7ee4.jpg","url":"http://item.jd.com/1739475.html","status":1},{"id":"5733232","name":"新疆阿克苏苹果 果径80mm-85mm 约5kg 新鲜水果 ","price":"853","img":"//img10.360buyimg.com/n2/jfs/t7306/206/3342297079/289205/e0ca6c94/59f14e33N7063ee48.jpg","url":"//item.jd.com/5733232.html","status":1},{"id":"3820581","name":"江西名牌 杨氏YANG’S 赣南脐橙 12粒铂金果 简致礼盒装 新鲜水果 新包装 ","price":"796","img":"//img13.360buyimg.com/n2/jfs/t3295/14/5775084582/492685/47d076e7/587e0252Nf62a419b.jpg","url":"//item.jd.com/3820581.html","status":1},{"id":"3659335","name":"农夫山泉 17.5°橙 3kg装  钻石果 春节年货水果礼盒 【每10个优质脐橙,约只有1个入选17.5°橙钻石果】糖度更高、味道更好、果子更美的优质脐橙才能入选钻石果。钻石果不仅更漂亮,而且会更好吃!疯狂【沃柑】低价来袭!!!","price":"668","img":"//img12.360buyimg.com/n2/jfs/t11806/291/1856579940/352750/eca1795f/5a0d4df5N52843ddf.jpg","url":"//item.jd.com/3659335.html","status":1}])
这个回调,就会运行,我们b.js代码中定义的
callbackHandler会帮我们拼装一个html文档并最终显示在页面上。
传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马