怎样为产品选择更为合适的推荐算法

房东的猫 提交于 2020-01-18 00:28:36

常见推荐机制/算法

基础推荐机制

机制 应用场景 原理概述
内容推荐 适用于冷启动
基于内容的协同过滤 数据量较大 判断内容相似度,相似度高的内容;播放内容A的用户,也会对内容B感兴趣
基于用户的协同过滤 数据量较大,但数据量越大可信度越低 把数据代入专门计算相似度的公式,获得不同用户(二者)口味的相似度;推测相似度高的用户,喜好的内容也类似,进而可以相互推荐
基于标签的推荐 适用于冷启动
  • 协同过滤的风险
    协同过滤技术在个性化推荐初期具有较好的效果,但随着产品结构、内容复杂度和用户人数的不断增加,协同过滤技术的缺点也一点一点的暴露出来了。

    • 稀疏性(sparity)
      大多数推荐系统中,每个用户涉及的信息量较为有限;用户数据最多不过评估到了百分分之一,造成评估矩阵数据相当稀疏,增加寻找相似用户集的难度,导致推荐效果大大降低
    • 扩展性(scalability)
      “最近邻居”算法的计算量虽则用户和项的增加而大大增加,对于百万之巨的数目,通常的算法将遭遇严重的扩展性问题
    • 精确性(accuracy)
      寻找相近用户来产生推荐集,在数据量较大的情况下,推荐的可信度也会降低

经典算法

算法 应用机制 原理概述
topN 基础算法 1、直接用List的sort方法进行排序处理 2、使用排序二叉树进行排序,然后取出前N名 3、使用最大堆排序,然后取出前N名
矩阵算法 基础算法 找到内容和内容之间相关性最高的,用topN的方式排序,就可以将内容相关性高的做推荐
内容关联算法 内容推荐 将item的基本属性、内容信息提取出来;抽出taglist,为每一个tag赋一个权重。不需要冷启动,时效高;但是对item需要解析,所以对音视频等不太友好;推出的内容缺乏惊喜,内容同质化严重
协同过滤算法 协同过滤 有惊喜,只依赖用户行为,不需要对内容完全解析;但是需要大量数据才能运转
神经网络矩阵分解 协同推荐基础算法 用户和内容之间自关联,用cf-nade建模为用户和内容评分,模型中可以用隐式反馈(动态指标)帮助克服评分稀疏的问题 【注:显示反馈-评分,评级;隐式反馈-操作行为等指标】
slope one 基于内容协同过滤 通过评分之间的差值,推测另一个得分f(x) = x+b
用户行为轨迹 严格来说不算是一种算法,该逻辑的重点是依据单个用户的一条行为轨迹,对场景进行切分。 实现与场景匹配有助于提升推荐效果,能够提升用户的使用时长,以及用户活跃度

混合合推荐算法:

没有哪种推荐技术敢说自己没有弊端, 往往一个好的推荐系统也不是只用一种推荐技术就解决问题, 往往都是相互结合来弥补彼此的不足, 常见的组合方式如下

  1. 混合推荐技术: 同时使用多种推荐技术再加权取最优;
  2. 切换推荐技术: 根据用户场景使用不同的推荐技术;
  3. 特征组合推荐技术: 将一种推荐技术的输出作为特征放到另一个推荐技术当中;
  4. 层叠推荐技术: 一个推荐模块过程中从另一个推荐模块中获取结果用于自己产出结果

综合所有的推荐策略和算法,大致可以分为以下常见的推荐策略:

  1. 基于内容的推荐;
  2. 协同过滤推荐;
  3. 混合推荐;
  4. 流行度推荐;
  5. 其他更高级的;
    在这里插入图片描述
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!