按: 做社区产品, 内容推荐是一个绕不开的话题传统论坛按版块分发内容的模式具有被动低效等局限性, 已不再适合如今快节奏的阅读模式, 用户不再有大量的时间沙里淘金, 因此基于内容的推荐模式被越来越多地应用到内容社区产品中本文依据前人对内容推荐的研究, 综合自身实践, 简要讨论内容推荐的一些落地方式
什么是内容推荐
内容推荐是基于内容本身的推荐, 即将内容进行分析后建立特征, 然后依据这些特征给用户进行推荐, 这种特征往往用标签来定义标签在整个内容推荐体系中具有很重要的作用那么如何进行标签的制定, 即所谓打标签呢?
内容标签
1. 用户自行打标签 用户自行打标签有两种方式: 一是用户在平台预设标签下生产的内容会自动打上对应标签, 二是平台允许用户自行添加一些标签后一种方式可能由于用户对内容把握不足, 或恶意操作, 导致大量冗余标签或噪音标签产生, 不利于后期维护 2. 机器自动打标签 使用机器进行打标签, 有一定的开发成本一般可以结合分词技术和 TF-IDF 来提取关键词作为标签这里需要注意的一点是, 这种打标签的方式对文本的依赖度较高, 如果社区内容为音频视频等多媒体内容, 这种方式仅能作用于内容的标题, 因此可能会受一些标题党的干扰, 但总体打标签效率比较高 3. 运营人工打标签 运营人工打标签是一种最笨, 但也是最有效的方法通过运营人工干预, 可以对内容标签进行复核, 使标签和内容匹配度更高; 同时通过运营介入, 可以人工设置关联标签, 将关联标签进行聚类处理
因此, 一般的做法是, 用户在某一预设标签下生产内容, 由机器进行自动打标签后, 运营进行人工标签复审
用户标签
除了内容标签外, 如果想做到更精细化的推荐, 还需要给用户进行特征化分析, 也就是给用户也打上标签用户和内容的交互, 如点击浏览点赞收藏等, 都可以作为给用户打标签的基础 用户打标签的过程需要注意两点, 一是由于热门内容会干预用户的标签, 因此对于热门内容的标签, 需要做降权处理; 二是用户的兴趣会随着时间衰减或发生变化, 这时需要对用户的标签进行清洗, 可以给内容增加不感兴趣的选项, 用户触发后则对此标签做降权处理
冷启动
每个内容平台在初期都会遇到这样一个问题: 巧妇难为无米之炊新平台总会遇到, 要么用户行为或偏好数据过少, 要么内容数量不足的情况这时候应该如何进行内容的推荐呢?
用户首次使用时, 可以引导用户进行所感兴趣的标签选择, 然后将该标签下的热门内容推荐给用户; 若用户不选择标签, 则可以采取全站热门推荐或人工筛选推荐, 将平台中绝大部分用户关心的内容进行推荐
如果平台中新内容较多时, 可以在推荐时选取部分新内容进行推荐, 每通过推荐增加一次阅读, 传播度 +1, 若起传播度高于某一预设的阈值时, 可以认为该新内容值得推荐, 更多进行曝光这种方式可以解决新内容的冷启动, 也可以增加新内容的曝光量
推荐方式
首先预设一个推荐的目标: 将较新的优质的用户可能感兴趣的内容推荐给用户, 会涉及到以下三个维度:
新 (timescore) 反映内容的实时性 (用户无关)
优 (qualityscore) 反映内容的质量 (用户无关)
兴趣 (interestscore) 用户的个性化需求 (用户相关)
关键节点
计算时间衰减得分: 时间越新, 得分越高参考函数: 1/log(a*x+10, 10), 其中 x 为发表日期与当前日期的时间差, a 为常量
计算内容质量得分: 综合内容的阅读点赞收藏等维度计算得出参考函数: sum(c/(1+exp(-(x-a)/b))), 其中 x 为影响因素的数值, a 为该因素的均值, c 为影响因素的权重, b 为常量
计算影响用户兴趣的因素
去重: 已推荐给用户的内容应从推荐列表中移除
控制数量: 一次推荐给用户的数量不宜过多, 可从某一数量开始逐渐递增或递减
控制边界: 在极端情况下, 会出现完全无内容推荐或推荐内容被消费完全, 这种情况下应允许不进行推荐, 而按照时间维度展示所有用户关注标签的内容
其他注意点
1. 时效性内容 对于与时间强相关的内容, 例如新闻或突发事件等, 需要与普通的推荐内容区分开, 做单独的推荐通道
2. 内容排序 受顺序效应影响, 在推荐时应注意推荐内容的排序, 和用户最相关质量最高的内容应排在顶部通常在有用户信息的情况下, 可以将推荐出的内容按和用户相关度进行排序; 若没有用户信息时, 则可单独依据内容本身的质量进行排序
3. 长尾内容 平台里一般都会存在一些长尾内容, 这部分如果不进行推荐, 则很难触达用户针对长尾内容, 可以在一定维度进行统一提取后, 当做新内容重新进行推荐, 但需注意时效性内容不适合使用此方法
来源: https://juejin.im/post/5a72c248f265da3e4b771d04