「算法」从0到1,基于内容的推荐算法的产品设计( 二 )


单个内容评分得分 = (总内容的平均得分 * C系数) + 单个产品的评分总和) / (当前内容的评分次数+ C系数)
C系数为每个内容的被评分的平均次数 , 即C=所有内容被评论的总次数/所有内容数量 。 例如:总共有1000个文章 一共被评论了50000次 , 那C就等于50000/1000=50 。
小例:
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
(贝叶斯平均法评估示例)
结论:以贝叶斯平均为依据的排序更能反应真实的情况 , 打分次数多且评分较高的产品会更加靠前 , 打分次数多评分较低的产品则会更加靠后 , 与单纯依据每个产品的平均分排序相比 , 这种结果更有意义 。
C-用户质量模块评分
用户质量根据后台人工标识用户属性加上其发帖质量2个维度构成 。
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
2. 用户喜好评分公式 用户行为记录是获取用户相关推荐的主要依据 , 初期是根据用户关注、浏览喜好以及用户搜索关键词对用户喜好进行统计 , 基本的逻辑如下:
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
【「算法」从0到1,基于内容的推荐算法的产品设计】喜好评分=浏览喜好分类*0.6+关注人内容*0.4 +搜素内容分类*0.0
(系数可根据业务情况自行调整 , 起始分为100)
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
举例说明:
(1)通过用户的浏览记录 , 获得用户的喜好标签
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
那么对于同一分类下的内容按照公式增加喜好值 。
(2)获取用户的关注用户 , 获得喜好标签
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
那么对于关注用户下的内容按照公式增加喜好值 。
(3)如果内容1属于分类A , 并且是用户D创建的 , 这个内容对于用户来说就是两个权重值相加 =查看内容分类*0.6+关注人内容*0.4
四、前端展示权重设计 通过质量评分和用户喜好评分 , 我们能得到以内容为主 。 针对不同用户的内容质量和喜好评分值 , 那么就可以得到一个简单的推荐逻辑(推荐列表):按照用户喜好评分推荐质量评分较高的内容 , 若得分相同则按内容创建时间倒序排列进行推荐 。
但在实际推荐中除了保证用户喜好外 , 需要尝试去中心化的内容展示模式 , 所以最终展示的推荐内容 , 应该来自三个模块:
A、用户喜好列表:通过用户喜好评分 , 为用户推荐内容评分质量较高的内容 , 这是主要推荐内容 。
推荐逻辑:先对内容按照用户喜好值进行从高到低的排序 , 再喜好值A以上的内容中依次健康值高于阀值B、阀值C、阀值D的内容随机推荐 , 低于阀值D不进行推荐 。
B、高质量非喜好列表:用户喜好值低于某个阀值但内容流量评分较高的内容 。
C、初始流量推荐列表:通过用户喜好评分 , 为用户推荐内容质量审核过但流量不高的内容 。
「算法」从0到1,基于内容的推荐算法的产品设计
本文插图
老用户算法为:Score=A*0.7+B*0.2 +C*0.1(系数可根据业务情况自行调整)
其中0.7、0.2、0.1位A、B、C为三大模块初始系数 , 它受到时间效应变化 。
新用户冷启动的算法为:ScoreL= B*0.9 +C*0.1
其中B模块直接调用流量池健康评分 。
注意:喜好评分和健康值相同时 , 随机选取加载量 , 在同一轮加载过程中同一信息需要剔重 。