前几天刚刚做了一个设计推荐系统的分享讲座,在这里我尽量清楚地把讲座内容总结、提炼成文字,方便大家理解。
常见的个性化推荐原理
基于用户基本信息推荐Demographic-based Recommendation
如:领域、职位、工作年龄、性别、所在地
这个是比较基础的推荐之一,基于用户的基本信息,可以根据他的这些信息给他推荐感兴趣的或者相关的内容。
基于物品/内容基本信息推荐Content-based Recommendation
文章的一些显性属性如:领域、主题、类型、来源
这也是一种基础的推荐,基于被推荐物的基本信息,或者说是被推荐物的显性属性。
前面这两种都比较基础,下面这一种会复杂一些。
协同推荐Collaborative Filtering
a method of making automatic predictions (filtering) about the interests of a user by collecting preferences or taste information from many users(collaborating).
需要通过用户行为来计算出用户或者物品间的相关性。
- 基于用户的协同推荐
以人为本,找到和你相似的人后推荐他们看了而你没有看的内容。
这是一个用户关注内容的列表,当然是非常简化之后的。
显然在这个列表中,小张和小明关注的内容更为相似,那么就可以给小张推荐比特币。
- 基于物品的协同推荐
以物为本建立各商品之间的相似度关系矩阵,“用户看了x也会看y”。
小张和小明都不约而同地看了产品经理和Google,这可以说明产品经理和Google有相似,那么之后有看了Google相关内容的用户就可以给推荐产品经理的相关内容。
基于用户和被推荐物推荐不需要特别多的数据,比较适合应用在冷启动阶段。
而协同推荐是基于大数据的,所以我前面举的例子都是简化之后的,在实际的操作过程中用户的行为会比前面的例子复杂的多,但是道理都是相通的。
如何设计一个好的推荐系统?
UGC 、编辑、热门
- UGC: 获取更多用户行为数据,用户显性和隐形的数据
- 编辑: 处于种种目的编辑的运营
- 热门: 最火最热门的内容
新用户的冷启动
在没有大数据做基础的时候,可以有下面两种解决方案:
- 基于用户信息的推荐
- 尽快让用户表达兴趣
稀疏性
有的时候你有的总内容数量远大于用户有“打分”的内容数量,对于这种情况的解决方案:
- 用户隐形打分
- 降维。Matrix of boolean feature,投射到低维空间,再用机器学习
- 结合基于物品基本信息的推荐
多样性
- 看过什么,推荐相同类型的;
- 为你推荐你需要也比较适合你的;
- 基于你的性格、兴趣等,推荐甚至连自己没想到过却真正感兴趣的;
这部分推荐听起来感觉是玄学,但是给我们推荐的一个思路就是不要仅仅局限于某一种类型的推荐上,相同类型、需求甚至挖掘兴趣,都是可以考虑的推荐内容。
实时性
根据用户的行为, 实时的调整。好的推荐系统是在不断更新的。
如何判断一个推荐系统做得好不好?
获得反馈并一直迭代
与推荐系统的交互有用吗?他们对收到的推荐结果满意吗?
设计评测标准
1.能吸引更多的用户看内容的详情页
2.促使单个用户浏览更多内容