1、58同城推荐系统设计与实现业务场景-5858目前分类:招聘 = 简历推荐+职位推荐目录推荐简介常用推荐方法系统难点+设计+实现其他第一章、推荐简介推荐简介用户用户在在某个场场景景下对某个商商品品或信或信息息产生了某种行行为为,系系统统会对另另一些商品或信息一些商品或信息进行推荐要素:(1)用户 - user(2)场景 - scene(3)商品或信息 - item(4)行为 - action(5)系统 - recommendation-system(6)推荐结果集合 - recommendation-result / item-set系统概貌用户用户在在某个场场景景下对某个商商品品或信或信息息产
2、生了某种行行为为,系系统统会对另另一些商品或信息一些商品或信息进行推荐举例:用户在58同城发布了一份简历 user-info:uidscene-info:entry、local、cateiditem-info:jidaction:postitem-set:set第二章、常用推荐方法协同过滤-CF协同过滤:collaborative filtering Recommendation原理:用户的相似喜好进行推荐举例:商家下载简历的推荐jid1jid2jid3jid4jid5jid6jid1000wuid1yesyesyesuid2yesyesyesyesuid3yesyesyesyesyesuid
3、4yesyesuid100w内容推荐举例:商家下载简历的推荐步骤:(1)历史行为收集(2)id详情查询(3)共性内容挖掘(行为+场景)(4)推荐详情详情jid1(司机,北京,8000月薪,5年经验,NULL)jid2(司机,北京,NULL,2年经验,硕士研究生)zid1(司机,北京,NULL,3年经验,NULL)内容推荐:content-based Recommendation原理:抽取共有属性历史行为历史行为jid1,download jid2,download zid1,post共性共性(司机,北京,NULL,2年经验,NULL)综合排序-CTR预估CF算法推荐了50个jid,内容推荐算法
4、推荐了100个jid,最终页面只需要返回5个jid,如何返回?哪个排前面?综合排序什么决定综合排序?CTR由什么决定?CTR预估打分公式?用户产品:ctrCPC商业产品:ctr * priceCPA商业产品:ctr地区+职位+薪酬范围+工作经验+学历 发帖时间+是否下载过+是否浏览过+ctr-score = a*f(地区) + b*f(职位) + c*f(薪酬) + d*f(工作经验) + e*f(学历)+f*f(发帖时间) + g*f(是否下载过) + h*f(是否浏览过) + 第三章、推荐系统难点+设计+实现线下+线上的系统线下系统线上系统几个问题(1)线下数据如何存储?(2)线上数据如何
5、存储?(3)如何进行数据转化?支持实验的系统如何做算法测试?如何快速支持一个算法平台?如何实现分流AB测?支持实验的系统-分流平台作用?需求?(1)支持random分流(2)支持取模分流(3)支持与或非表达式(4)支持集合操作(5)配置热加载支持哪些属性的与或非,集合操作?支持实验的系统-推荐内核作用?需求?设计与实现(1)算法平台的抽象(2)实验平台的扩展(3)上下文劢态数据扩展(4)异步框架与状态机实时计算的检索系统作用?通用需求(1)正排数据的存储(2)倒排索引的存储(3)数据的更新(4)map-reduce的信息查询业务需求工程+算法的系统如何让工程和算法解耦?线下算法如何分离?实验平台算法如何分离?排序打分算法如何分离?效果实时监测的系统作用?步骤(1)结果展示(2)结果上报,点击上报(3)数据收集,数据统计(4)数据展示谢谢聆听!Thank you for listening