4个方面总结个性化推荐系统(下)

二、推荐系统的冷启动问题

推荐系统的冷启动问题指的是,当推荐系统刚部署后,没有用户行为时或物品数据时,推荐系统并不能根据用户行为数据给用户推荐物品。一般分为用户冷启动、物品冷启动和系统冷启动。

通常有一些办法可以缓和冷启动问题

1.利用用户注册信息推荐:即获取用户的注册信息,然后对用户分类,给用户推荐他所属分类中可能感兴趣的物品。 将关联的查询结果按照一个权重相加,利用的用户信息越多,就能越精准地匹配用户兴趣。

2.给用户一些内容选择合适的物品启动用户的兴趣:选择一些热门的,有代表性、区分性、多样性的物品推荐给用户。

3.利用物品的内容信息推荐给用户:可以通过人工筛选出一些用户会感兴趣的物品推荐。

三、推荐系统的架构

0?wx_fmt=png

如果一个系统中将各种用户行为、特征和任务都考虑进去,系统会非常复杂,难以配置。因此推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特真和一种任务,而推荐系统只是将推荐引擎的结果按照一定权重或优先级合并、排序,然后返回。

这样的优势在于:每一个引擎代表了一种推荐策率,可通过对单一的引擎调整来优化推荐系统。

如何设计一个推荐引擎成了推荐系统设计的核心部分。

0?wx_fmt=png

  • 模块A:从数据库或缓存中拿到用户行为数据,通过分析不同行为,生成当前用户的特征向量。

  • 模块B:将用户的特征向量通过特征-物品相关举证转换为初始推荐物品列表。

  • 模块C:对初始的推荐列表进行过滤,排名等处理,生成最终的推荐结果。


生成用户特征向量:用户特征向量一般包括两种:

  1. 从用户的注册信息提取,包括用户的人口统计学特征等,在推荐时直接拿到用户他恶政数据生成特征向量。

  2. 从用户行为中计算出来

通过用户行为生成特征(需要考虑以下几点):

  • 用户行为的种类(用户会对物品产生很多种不同的行为)。

  • 用户行为产生的时间(近期行为比较重要)。

  • 用户行为的次数(一般行为次数多的物品权重越高)。

  • 物品的热门程度(用户对很热门的物品产生行为可能是在跟风,推荐引擎在生成用户特征时会加重不热门物品对应特征的权重)。


特征-物品相关推荐:

  • 在得到用户的特征向量后,根据离线的相关表得到初始化物品推荐表。

  • 每个特征,在相关表中存储和它最相关的N个物品的ID。

  • 一个推荐引擎可以在配置文件中配置很多相关表以及他们的权重,推荐系统启动后会将相关表按配置的权重相加,最终的相关表保存在内存中,给用户推荐时,已经是加权后的相关表了。

候选物品结合(保证推荐结果只包含候选物品集合中的物品):

一般应用于产品需求,希望将某些物品推荐给用户。


过滤模块:

过滤掉不符合要求的物品,一般有以下几种

  1. 用户已经产生过行为的物品(推荐的目的是帮助用户发现物品,因此没必要给用户推荐他已经知道过的物品,保证推荐结果的新颖性)。

  2. 候选物品以外的物品,用户自己的选择等。

  3. 质量差、评价低的物品。


排名模块:

  1. 新颖性排名(对某些旧的但仍然热门的物品降权处理)。

  2. 多样性

  •     按照某物品内容属性分为几类,然后在每个类中都选择该类中排名最高的物品组合最终的推荐列表

  •     控制不同的推荐结果的推荐理由出现的次数,推荐理由一般是产生推荐结果的重要特征,提高多样性需要让推荐结果尽量来自不同的特征,有不同的推荐理由。


时间多样性

  • 实时推荐

  • 记录用户之前的行为数据,在给用户新的推荐结果是降权

用户反馈(用户对推荐结果点击情况的反馈)。


四、推荐系统的度量

个性化推荐的核心还是推荐算法,依赖用户的行为数据,却决于定义的环境维度,不同维度下的算法的表现能力会不一样。

什么是好的推荐系统:

  • 满足用户的需求,推荐给用户的是用户会感兴趣的内容。

  • 满足所有的内容都被推荐给感兴趣的用户(衡量的指标为覆盖率)。

  • 推荐系统本身搜集到高质量的用户反馈,能够对之进行不断的完善。

好的推荐系统不仅能预测用户的行为,能扩展用户的视野,帮助用户发现那些他们可能会买,但却不那么容易发现的东西,而非是本来就想要买的东西。


推荐系统的评价指标:

  • 用户满意度

  • 预测精准度

  • 覆盖率

  • 多样性

  • 新颖性(不牺牲精度的情况下提高多样性,即新东西)

  • 惊喜度(推荐结果和用户历史兴趣不相似,但却让用户满意)

  • 信任度

  • 实时性

  • 健壮性(反作弊处理逻辑)

  • 商业目标


推荐算法的考核指标:

  • 准确率

  • 召回率

  • 流行度

  • 覆盖率


推荐系统的测试方法:

  1. 离线测试:通过用户行为数据形成数据集

  2. 用户调查

  3. 在线实验:A/B测试(切分流量,将用户分成不同的层控制观察)

你可能感兴趣的:(4个方面总结个性化推荐系统(下))