在2021年末我们彻底重建并上线了B站新版的话题系统,目的是加强用户的参与,讨论,分享度,使用户拥有更好的产品体验,也能在APP生态中扮演更重要的角色和承接更大的流量。
产品定位上,我们希望话题可以作为一种连接器,好的话题可以引发用户的消费参与欲望。
为了达到上述目的,我们不得不抛弃产品定位不同并且架构有明显局限性的旧版话题。而想要引发用户的参与和消费,长期带动长尾流量。优质话题的发掘与投放就显得十分重要。
用一句话来描述话题系统:将话题下收录的所有内容,通过某种策略召回排序后,以feed流的形式呈现给用户。
那么话题和话题里的内容从哪里来呢,理想的情况当然是希望用户能发起话题,并在话题里分享和讨论,往话题里填充足够的内容。但是在用户没有养成习惯的情况下,前期冷启动往往是比较困难的。
在业务发展的选择上,我们选择用前期用千人一面的精细运营话题来拉动长尾的ugc话题和千人千面的话题推荐,这也使得能在动态首页在榜的精选话题(热门话题)的选择和内容收录变得尤其重要。
1. 对用户吸引力最大的可以引起广泛参与讨论的话题,往往是正在发生的热点事件(如在凌晨刚刚结束的世界杯决赛),而这一部分往往都是强运营的。但人工感知热点事件的发生并通过完整的话题创建流程创建话题,十分浪费人力,而且时效性也很难保证。
2. 热点事件是可以引起大量热议的,所以实时新增的相关内容数量是巨大的,但项目上线初期用户因为还没有养成使用话题的习惯,没有将内容打上相关的话题标,会导致相当一部分高质量内容实际是没有收录在话题内的。
3. 对于一些分享类和问答类的话题,如高考后如何报志愿,如何解决精神内耗等,站内已经存在大量高质量相关内容,需要想办法将这部分内容发现并申请授权关联至话题内。
我们把热点话题分为两部分,一类是B站用户特有的,并且感兴趣且在讨论的内容。
另一类是全网正在发生的热点事件。
我们发掘并监控这些词条并通过企业微信通知到值班的运营同学。
通过捞取和清洗用户小时级搜索埋点数据,得到每个 query 的点击 uv 数量,并计算出环比提升最多的热搜 query,将结果通过 Kafka 推送至后端进行企微通知,同时将结果输出至观远报表进行展示。
每日计算当日的搜索热词,对搜索 query 进行切词提取关键词,对结果进行聚合,根据热度进行排序,生成每日搜索词云,次日11时通过 Kafka 推送至后端进行企微通知,同时将结果输出至报表。
并与话题创建的后台打通,实现了热点话题的自动创建和自动上榜最大程度的降低了运营的操作成本。并且根据在榜热门话题的实时指标实现了热榜位置的自动调整。
热搜热点生成话题并上线推热门优化后的流程如图所示
热点话题根据实时指标变化生成热门话题榜,主要包括话题实时数据产生、自动排序、热门话题的展示3个部分。
话题实时数据指标主要关注的是话题广场uvctr、话题页访问的pv/uv、点击发布按钮的uv转化率等。数据流向从客户端埋点上报到北极星,flink任务消费北极星发布的kafka流,将数据洗出来,写入clickhouse。
自动创建的热点话题在后台草稿态话题进行管理,草稿态话题经人工审核通过确认上线后进入备选话题池,参与自动排序。定时任务对广场话题进行自动排序调整,拉取话题实时数据作为排序分计算。仅对首页热门话题进行自动排序,每轮从备选话题中选取一个话题,顶到实验位测试效果(上线一定时间内不参与自动排序,即保持在实验位),掉出热门top榜的话题淘汰,不再参与自动排序,实现了热点话题从草稿态冲上热门话题的过程。后台展示了热门话题、备选话题的实时数据,支持人工调整广场话题排序。
用户进入话题广场,拉取热门话题榜,自动排序每10分钟执行一次。
那么有了话题以后如何召回内容呢。
首先我们需要一个包含全部内容的召回池,并且尽可能全的包含所有需要用来召回的字段,并且存储介质的选型上要尽可能保证可以快速实时的召回内容。
最终我们选择了基于动态id作为doc_id 的 ES 来做召回池。
动态的子类型基本包含站内所有的稿件,文章,图文,转发使召回池的内容足够全,而es可以在搜索存量数据时提供比较好的性能。
对于需要精细化运营召回的话题,可以在后台针对单个话题配置一条规则,可以配置召回内容包含或者不包含标题,tag,分区等,并且对多个子规则做且或的配置。
通过 对存量数据es query + 对增量数据遍历判断 的方式,获取所有可能被召回的内容。
此处的流程编排系统用来结合风控,稿件信息,相关性,用户信息等进一步的评估稿件质量和与话题的相关性。
自定义规则的自动收录需要根据召回的结果不停地调整规则,只适合于精细运营,如热门话题和UGC拉动的场景,但这些类型的话题其实只占话题总量很小的一部分。
而对于大量的长效性的话题,占总量百分之九十以上的如有用性话题(问答)和IP型话题(超话)等,不可能人为去配置其中每一个话题的规则,所以我们需要一个更加通用且高准确率的方式进行自动的召回用来冷启。
主要的流程如上图所示
1. 通过用户行为和我们的运营手段上报的数据得到离线的训练集,正样本为用户显式绑定到话题的动态,负样本为运营标注的异常数据和用户的举报数据。
2. 通过训练DSSM双塔模型得到“话题-动态相关性模型”,该模型会在离线和在线同时影响话题的收录。
3. 离线方面,主要解决话题的冷启问题,新的话题可以通过一定的策略召回动态,召回结果经过相关性模型的打分得到最终的收录结果,该结果会被持久化到kv中。
4. 在线方面,在内容理解服务中提供在线相关分的能力,为隐式收录等场景持续赋能。
在整个流程的实验和演化的过程中,离线话题对动态的召回经历了词包搜索和向量召回两个阶段,具体描述如下。
对话题名和话题的简述进行实体抽取。融合ner结果、词idf值、正则库匹配结果以及话题名称和简述的LCS来进行综合的打分,截取头部实体获取关键词,通过关键词包去 es 进行 boost 搜索,获取top n的动态作为最终的收录结果。
该方法在供给充足的话题里有很高的准确率,但如果话题非常冷门,就容易引入无关内容收录,且无法通过拍一个直接的分值作为门槛筛选掉语料不那么相似的话题和动态对,且在不同的动态类型(如图文、专栏、稿件等)有各自不同的体现。
词包搜索无法保证语义相似,我们就改用了向量的方式,保证召回的动态在语义上和话题保持一致,同时通过统计的方式对召回的动态进行筛选,希望最终能够在语义和语料两方面对收录的内容进行筛选。
最终该方法解决了冷门话题召回低相关内容的问题,也极大的纠正了关键词抽取的准确率的问题,使得优质的长效性话题也能够自动收录到相关内容并触达到用户。直到截稿日,长效性话题量超过话题总量的九成,问答在搜索、超话在港澳台等垂直业务上发挥各自越来越重要的作用,为话题的渗透和回访提供了更多的可能。
在热门话题发掘后台上线一个月内,累计生成上线话题300+个,其中80%以上满足运营的热门话题要求,被投放在热门话题榜单上,占全部热门话题来源的一半以上。同时平均每个话题通过AI召回自动填充5+优质高互动内容,极大的缩减了热门话题的冷启时间,让新鲜事话题可以更快的投放上线,并给到用户更好的体验。
同时在有用性(问答)话题上,AI召回也填充了大量的优质内容,为8000+问答话题关联6个以上的相关内容(回答),大大推进了项目的整体进度。
4. 我们结合话题大盘数据来看,随着专项整体的进展,配合几次大的热点运营事件,话题大盘的数据无论是访问指标还是互动指标一直有稳定并且较为迅速的增长。
可以说热点话题的自动挖与生成专项,比较大的提升话题质量与话题内容质量。同时有效提升了内容的时效性,大大节约了运营的操作成本。为业务实现数倍增长甚至相对于老版话题数十倍的增长提供了很大的助力。
工程上需要长期优化热点发掘工具。让爬取和通知出的热点事件更精细准确的满足运营需要,并尽可能携带更多信息,为方便数据进一步加工处理,提供更好的基础。
同时需要通过优化热门话题的自动排序机制,进一步提供热门话题ctr。
本文地址:http://syank.xrbh.cn/quote/739.html 迅博思语资讯 http://syank.xrbh.cn/ , 查看更多