4个方面总结个性化推荐系统(下)
二、推荐系统的冷启动问题
推荐系统的冷启动问题指的是,当推荐系统刚部署后,没有用户行为时或物品数据时,推荐系统并不能根据用户行为数据给用户推荐物品。一般分为用户冷启动、物品冷启动和系统冷启动。
通常有一些办法可以缓和冷启动问题
1.利用用户注册信息推荐:即获取用户的注册信息,然后对用户分类,给用户推荐他所属分类中可能感兴趣的物品。 将关联的查询结果按照一个权重相加,利用的用户信息越多,就能越精准地匹配用户兴趣。
2.给用户一些内容选择合适的物品启动用户的兴趣:选择一些热门的,有代表性、区分性、多样性的物品推荐给用户。
3.利用物品的内容信息推荐给用户:可以通过人工筛选出一些用户会感兴趣的物品推荐。
三、推荐系统的架构
如果一个系统中将各种用户行为、特征和任务都考虑进去,系统会非常复杂,难以配置。因此推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特真和一种任务,而推荐系统只是将推荐引擎的结果按照一定权重或优先级合并、排序,然后返回。
这样的优势在于:每一个引擎代表了一种推荐策率,可通过对单一的引擎调整来优化推荐系统。
如何设计一个推荐引擎成了推荐系统设计的核心部分。
模块A:从数据库或缓存中拿到用户行为数据,通过分析不同行为,生成当前用户的特征向量。
模块B:将用户的特征向量通过特征-物品相关举证转换为初始推荐物品列表。
模块C:对初始的推荐列表进行过滤,排名等处理,生成最终的推荐结果。
生成用户特征向量:用户特征向量一般包括两种:
从用户的注册信息提取,包括用户的人口统计学特征等,在推荐时直接拿到用户他恶政数据生成特征向量。
从用户行为中计算出来
通过用户行为生成特征(需要考虑以下几点):
用户行为的种类(用户会对物品产生很多种不同的行为)。
用户行为产生的时间(近期行为比较重要)。
用户行为的次数(一般行为次数多的物品权重越高)。
物品的热门程度(用户对很热门的物品产生行为可能是在跟风,推荐引擎在生成用户特征时会加重不热门物品对应特征的权重)。
特征-物品相关推荐:
在得到用户的特征向量后,根据离线的相关表得到初始化物品推荐表。
每个特征,在相关表中存储和它最相关的N个物品的ID。
一个推荐引擎可以在配置文件中配置很多相关表以及他们的权重,推荐系统启动后会将相关表按配置的权重相加,最终的相关表保存在内存中,给用户推荐时,已经是加权后的相关表了。
候选物品结合(保证推荐结果只包含候选物品集合中的物品):
一般应用于产品需求,希望将某些物品推荐给用户。
过滤模块:
过滤掉不符合要求的物品,一般有以下几种
用户已经产生过行为的物品(推荐的目的是帮助用户发现物品,因此没必要给用户推荐他已经知道过的物品,保证推荐结果的新颖性)。
候选物品以外的物品,用户自己的选择等。
质量差、评价低的物品。
排名模块:
新颖性排名(对某些旧的但仍然热门的物品降权处理)。
多样性
按照某物品内容属性分为几类,然后在每个类中都选择该类中排名最高的物品组合最终的推荐列表
控制不同的推荐结果的推荐理由出现的次数,推荐理由一般是产生推荐结果的重要特征,提高多样性需要让推荐结果尽量来自不同的特征,有不同的推荐理由。
时间多样性
实时推荐
记录用户之前的行为数据,在给用户新的推荐结果是降权
用户反馈(用户对推荐结果点击情况的反馈)。
四、推荐系统的度量
个性化推荐的核心还是推荐算法,依赖用户的行为数据,却决于定义的环境维度,不同维度下的算法的表现能力会不一样。
什么是好的推荐系统:
满足用户的需求,推荐给用户的是用户会感兴趣的内容。
满足所有的内容都被推荐给感兴趣的用户(衡量的指标为覆盖率)。
推荐系统本身搜集到高质量的用户反馈,能够对之进行不断的完善。
好的推荐系统不仅能预测用户的行为,能扩展用户的视野,帮助用户发现那些他们可能会买,但却不那么容易发现的东西,而非是本来就想要买的东西。
推荐系统的评价指标:
用户满意度
预测精准度
覆盖率
多样性
新颖性(不牺牲精度的情况下提高多样性,即新东西)
惊喜度(推荐结果和用户历史兴趣不相似,但却让用户满意)
信任度
实时性
健壮性(反作弊处理逻辑)
商业目标
推荐算法的考核指标:
准确率
召回率
流行度
覆盖率
推荐系统的测试方法:
离线测试:通过用户行为数据形成数据集
用户调查
在线实验:A/B测试(切分流量,将用户分成不同的层控制观察)