在 QQ 浏览器的主页可以看到腾讯看点的信息流,信息流有三种形态:小视频、短视频、图文,属于业界信息流最主要的形态。目前浏览器用户破亿,点击曝光等相关流水每日有百亿左右,机器数接近万级。
二、看点信息流基本架构和挑战信息流已经发展很多年了,架构层面都是大同小异。一个信息流系统分为最底部的数据层,包括了倒排/特征/用户模型;数据层上面是召回,召回有隐式召回、显式召回等。
显式召回会根据兴趣点、主题运行,隐式召回是根据相似度召回,也有基于图像的召回,如 UCF、ICF 和 RNN 的召回。召回的品类非常丰富,它们构成了整个召回层。
召回数据非常多,在数量较多的情况下需要粗排。粗筛注重性价比,召回十万的量级需要进行筛选再传递到精排,再进行筛选。精排特征更丰富、算法模型更复杂。
最上面是展控,拿到数据以后要进行多样性处理以及人工干预策略,再返回最后的十几条结果给用户。
另外一条数据流就是,用户的点击和曝光数据流上传到后台,计算出物品特征,刻画用户画像。
从架构层面看,做什么事情对推荐系统效果有提升呢?首先是特征系统的实时性。因为推荐系统在选择时,是基于内容之间进行 PK,PK 非常重要的一点是内容的特征实时生成,就像一个人的代谢越快就越健康。
比如,一条内容的 CTR 一分钟之内就得到反馈,和一个小时之后才反馈有着极大差别,这是对实时性的挑战。
再举一个用户模型例子,在信息流中进行浏览,不点击与亚马逊有关的文章,这一次不点击的行为在下一次刷新就可以反馈出来,这是对用户模型的要求,是大型信息流的标配。
内容服务和索引服务指在网上出现突发事件,新文章进入平台时,把内容入库。这里有一系列的流程,比如人工审核、NLP 打分、排重等等处理后,进入倒排能够被召回,进而线上进行曝光,这就是内容入库的实时性。
关于计算力,看点信息流的内容池是千万级别的,现在召回层能够做到十万级,平台能把召回做到万级、精排做到千级,扩大召回计算量也可以提升系统的效果。
计算力首先是大家都通用的办法,那怎么样去并行计算?十万条的结果可以拆成十个一万条进行运算,但需要想一个问题,是不是并行度越高越好?其实不是的,要注意大扇出的问题。
传统后台的优化要求,是看代码、架构上如何进行优化,也就是性能优化。而另一块容易被忽略的,是如何做用户内容曝光过滤,这个功能看似简单,实行起来却容易碰到不少问题,下文也会详细的介绍。
怎么样提升开发效率?这个概念比较泛,首先有两点,一是算法跟架构如何分离,算法只负责训练模型、设计算法、设计特征,代码由架构来写,现在业界没有团队可以做得到。
推荐系统召回有一百多条线路的召回,有这么多人负责这么多召回吗?这也是不可能完成的事情,一百个召回如何提高开发效率也是重点需要解决的问题。
三、特征系统对于推荐系统,特征越多算法效果越好,比如 CTR 包括全局 CTR、策略 CTR 等,分有有很多的维度。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。