早期的Feed流主要是以时间轴的形式传播用户关注的内容。但是,随着用户场景的丰富,Feed流的品种也更多了。本文主要讨论如何设计提要流以及提要流背后的设计逻辑。
0.前言首先,什么是提要流?
Feed是互联网的一个早期概念,最初是作为RSS中的一个接口来接收信息源的更新。现在的定义是比较宽泛的。一般来说,持续更新并呈现给用户的内容称为Feedstream。是朋友圈feed流,微博首页是feed流,知乎首页是feed流,各个门户的内容也是feed流。换句话说,我们的许多在线时间和视线实际上是由提要流控制的。
早期的Feed流主要是以时间轴的形式传播用户关注的内容。但是,随着用户场景的丰富,Feed流的品种也更多了。本文主要讨论如何设计提要流以及提要流背后的设计逻辑。
1.Feed流设计的要核心问题前面说过,对于搜索来说,基本就是回忆用户感兴趣的内容,然后进行整理。其实饲料的设计也是一样的。进料流总是解决两个核心问题:
应该展示给用户什么内容这些内容该怎么排序不同的信息流实际上对这两个问题给出了不同的答案。不同的答案并没有绝对的对错,更多的是场景是否合适。
2.永恒的经典——Timeline时间轴,一般来说不会对用户请求的内容进行过滤,所有内容都是按照时间排序的。经典案例就是朋友圈。关于Feed流设计的两个核心问题,微信朋友圈的回答如下:
应该展示给用户什么内容:用户好友发的内容这些内容该怎么排序:按照时间先后顺序Timeline简单的内容选择和排序非常容易让用户理解,充满了极简主义哲学:可以随时更新,吸引用户随时打开,每次更新的有限部分保证了大部分用户不会错过任何新闻。微信也是用这种设计来获得用户大量的时间。
既然Timeline有这么多优点,为什么Feed流会迭代衍生出其他设计?
其实这里也涉及到一个问题。Timeline有一个致命的缺点——内容呈现效率最低。内容提供者应该非常克制,用户应该对这些内容给予足够的重视。
微信朋友圈的内容是用户自己的个人展示,注定不会大量更新;同时,所有的选择都是基于熟人关系,能够引起用户足够的关注。正是这两个原因,保证了朋友圈的内容虽然低效,但依然很有吸引力。如果成千上万陌生人每天更新的内容都以时间轴的形式呈现,试想这是一个多么欠考虑的设计。
2.重力排序算法——兼顾热度和更新时间如果有一个每天更新量很大的Feed流,大部分内容没有太大的用户价值,这种情况下应该怎么排序?其实这种场景也很常见,也是一些PM在实际工作中遇到的棘手问题。答案是重力排序算法。
在重力分选算法中,对于进料流中的内容物有两种力:重力和张力。重力是保持内容物下落的力。这个引力就是时间,因为新内容会把旧内容刷下来;同时,拉力是让内容排序向前的力量,比如知乎的赞,贴吧的回复。
有许多方法可以实现这种排序算法。这里可以简单介绍一个,也是来自Reddit的核心排序算法:
其中:H代表可以代表内容受欢迎程度的值:比如收到的好评,比如浏览量,也可以是相似指标组合加权求和得到的值。
t代表内容发布的时间,代表一个时间的起始值,只要早于最早发布的内容(比如用公司创立时间)。T-T0用来衡量一个内容的新度,单位是秒。T-T0越大,内容越新。
a也是一个设置参数。A越大,T-T0的影响越小,内容更新越慢。一般来说,初始值可以取36000,10小时秒,然后不断迭代。
关于进料流设计的两个核心问题,重力分选算法的答案如下:
应该展示给用户的内容:用户展示自己偏好的内容全部推送给用户,虽然用户可能看不到后者。
如何对这些内容进行排序:根据时间衰减因子和内容热度进行综合排序。
3.智能排序——双刃剑使用脸书智能排序后,据说效果出群,所以我们看到越来越多的社交网络放弃使用时间轴排序,转而投向智能排序的阵营,比如国外的Twitter,国内的微博,知乎。
智能分拣涉及复杂的模型构建和机器学习。这里,只解释简单的原理。
首先,系统需要知道什么是一个内容被展示的目标值。比如微博,一个内容被展示的目标值是转发,评论,点赞的次数。那么通过大量的样本的机器学习,系统对于什么是好的内容会有一个预测。这个对于一个内容的预测,则是的智能排序的基础。接下来,系统会屏蔽掉一些违规的内容,比如Facebook处罚标题党,知乎处罚抱团点赞。其次,为了用户内容的质量,系统会在用户的Feed中增加一些热门的内容。最后,考虑内容和用户的亲密度、系统认为内容受欢迎的程度、内容时间衰减性等因素后,系统进行综合排序。听起来智能分类是个好主意。然而,智能分拣也是一把双刃剑。
算法质量高导致一些公司技术差,使用智能分拣效果不好。另一方面,由于智能分拣的不透明性和扩展性,过度商业化成为用户体验的头号杀手。
有些内容可以因为用户购买粉丝头条而排在Feed流前面,有些内容只要有足够的推广费就可以绕过关注关系呈现给用户。如果智能分拣过度商业化,Feedstream的用户体验会越来越差。
4.总结其实Feed的设计原理比较简单。如果需要赋形排序算法,也可以找很多,但更重要的是,真正适合的选择是什么。
如果选择时间线的排序,那么就需要考虑用户关注的内容是否足够吸引人。
如果选择重力排序算法,就要考虑如何选择参数才能保证最终的显示效果。
如果加入日益壮大的智能分拣大军,就需要考虑自己是否有足够的技术实力和产品自控能力。
重要的是要想清楚两个问题:
应该展示给用户什么内容这些内容该怎么排序不要在怀疑和恐惧中浪费生命,做个选择就好。
文章的作者是@潘。未经许可,禁止转载。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)