推荐算法——冷启动算法调研

文章目录

  • 讨论内容
  • 平台准备
    • 其他平台信息整合
    • 做好文章画像
    • 产品设计
  • 新用户到来初期
    • 丰富用户画像,基于内容推荐
    • 上下文推荐
    • 热度排序
    • 快速试探
  • 冷启动用户操作一段时间后
    • 评估冷启动效果
    • 判定冷启动阶段结束
    • 策略迁移
  • 一些讨论
    • 冷启动结束判定
    • 推荐系统收敛性问题

微信面试一直在讨论冷启动,然后给我提了一个任务是,让我就讨论内容查找资料,两天时间出个 告发给他。

讨论内容

  1. 如何做用户冷启动
  2. 如何做文章冷启动
  3. 冷启动效果如何评估,具体怎么实现
  4. pipline收敛

全文以搜狗信息流产品举例

整体思路是:
(1)平台做好充足的准备,包括文章画像、知识库等
(2)新用户到来,根据平台准备的画像等,尽可能丰富用户画像维度,结合热度推荐内容。
(3)用户有部分操作后,逐渐收敛用户画像,改变推荐策略。
(4)评估冷启动效果,完善pipline

其他平台信息整合

搜狗拥有输入法、搜索几个流量大的入口,可以弥补信息流用户信息缺失的问题;而像腾讯的产品则具备很好的 交关系 络

具体实现上:

  1. 数据监控:信息流用户mid和其他平台(搜索/输入法)mid应该有对应关系
  2. 知识库准备:根据拥有的平台数据,设计多种模型规则,丰富知识库。比如拥有用户的搜索/输入 query,可以生成关键词表;拥有用户的 交记录,可以生成 交 络图;拥有用户打车记录,可以生成地理区域图等。

做好文章画像

文章画像非常重要,可以从内容角度出发,利用tf-idf,textrank,lda,fasttext等算法构建画像,为文章打标签

产品设计

很好的获取冷启动用户信息的方式是,在用户注册登陆时提供一些表单让用户填写或者点击。而过多的内容则不利于用户体验,比较好的方法是,查看我们召回模型的参数和效果,把一些效果比较好的召回理由或者特征在用户注册页就要求填写。

新用户到来初期

采用级联推荐策略,我们认为用户画像>上下文>热度,采取优先级策略。比如用户有一定的画像,就基于画像推荐,如果没有就看上下文;都没有的话再用热度策略

上下文推荐

主要是时间、地点两个维度

具体实现:

  1. 时间:离线数据挖掘分析文章主题与时间的关系,为用户召回该主题的文章
  2. 地点:召回用户同地域、且地域性强的文章

热度排序

简单的将热度较高的文章排序召回

需要注意的是:
热度是具有时效性的,很多点击或者ctr高的文章可能已经过时了,比如NBA战 ,就算昨天的战 点击率很高也不该在今天推送

快速试探

一般来说,能够用来启动用户兴趣的物品需要具有以下特点:

  • 比较热门
  • 具有代表性和区分性
  • 启动物品集合需要有多样性(这些物品能覆盖几乎所有主流的用户兴趣)

先随机或者按照非个性化推荐的策略给用户推荐,基于用户的点击反馈快速发现用户的兴趣点。
在推荐算法中,我们将其称为EE问题,具体实现流程:

    评估冷启动效果

    用户冷启动的指标,我认为有两个方面:

    1. 首先是新用户的画像指标,我们希望某个冷启动召回理由能够让该部分用户画像更加准确和收敛,具体指标有
    • 人均兴趣数
    • 画像覆盖率
    • 画像准确率(需要长期证明)
    1. 其次是新用户活跃表现,我们希望该类冷启动用户能够活跃起来并且成为我们的核心用户,具体关注指标有
    • 点击率
    • 登录频率(活跃度)
    • N日留存
    • 收藏/转发数等

    如何对比冷启动的效果呢,我认为ABtest是一个好方法:

    根据经验,一般情况下在冷启动阶段结束后,运用我们常规的召回排序模型,取得的效果指标都是更好的

    一些讨论

    和面试官的讨论集中在两个部分,一个是冷启动结束判定,一个是推荐系统收敛性的问题

    冷启动结束判定

    问题是:冷启动用户最初肯定是运用一系列针对冷启动用户的策略算法,之后会逐渐迁移到正常算法,如何判定这个临界值

    解决方法:

    1. 用户画像是否收敛
      用画像更新程度来刻画
      因为我们的模型一直在应用,其画像也在不断丰富,我们可以设定指定的天数N,则x天的时候用户画像是A = [a,b,c,d,e], x+N天的时候用户画像是B = [a,b,d,e,f],用户画像变化程度用“差数/和数”表示,具体在本例中则是:2/6 = 1/3。我们可以在实践中根据经验设定阈值,如果结果

    2. 用户活跃度是否足够高
      用用户的点击率、日均登录次数、行为数等指标来判断,如果用户行为足够多,密度足够高,那么我们认为用户满足了协同等模型的条件,即可以不再使用冷启动策略。

    推荐系统收敛性问题

    问题是:按照推荐系统的召回-排序流程,逐渐会发生马太效应(强者愈强、弱者愈弱),排序到前列的文章最容易出现正反馈行为,而正反馈行为又将帮助它的召回,导致我们能利用的item越来越少

    解决方法:

    1. 多目标优化。如果我们仅通过ctr作为指标,那最终的局面是整个系统都把热门/点击率高的排在前面,一定会出现马太效应,而且这个情况会让用户很反感。所以可以采取多目标优化的方法,优化诸如用户时长、CVR、MAP等参数,这样会缓解马太效应。
    2. 运用EE策略。EE是独立的链路,每天给一定比例的流量曝光,不参与其他内容的排序。这样会导致诸如CTR等指标的下降,但是从长远角度来看对生态有很大帮助,生态的评估方法可以通过基尼系数、新增优质内容占比等评估。

    文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35102 人正在系统学习中

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月14日
下一篇 2020年2月14日

相关推荐