抖音依靠自己的推荐系统推送用户可能感兴趣的**内容,这与兴趣用户的精准选择密不可分。 兴趣用户的圈子选择主要分析核心用户的偏好特征,判断两者偏好的相似性,从而构建相似用户的兴趣圈,实现精准推荐。
过去,兴趣圈往往依赖于单一维度或标签,如内容类型、时长、地理特征等,难以揭示用户兴趣的底层逻辑。 比如《重庆美人小姐吃播**》和《两元古舞**》表面上看,吃播跳跳,重庆古风。 标签的类型完全不同,经过深入分析,经营者发现他喜欢两个**人,是同一类人。 抖音兴趣圈平台的主要能力之一,就是通过挖掘用户的底层兴趣逻辑,向用户推荐更多相关内容,将志趣相投的人划分为同一个兴趣圈。
构建这样一套兴趣圈层平台,不仅需要精细化的算法策略,而且对底层数据存储架构也是一大挑战。 此前,技术团队主要使用MySQL作为存储架构,作为基于行的存储数据库,MySQL对于大量数据处理效率不尽如人意,对硬件配置要求很高,甚至采用分片、读写拆分等策略来提升性能,导致硬件成本大幅增加。 其中,MySQL的瓶颈还体现在:
每天新增的数据量巨大:抖音用户基础信息表每天增加10000条数据,抖音用户作者信息表每天增加1000万条数据,圆圈层用户信息表每天增加1000万条左右, 已经达到了MySQL查询二级和数千万次查询的性能瓶颈。
难以承接复杂的业务选择条件:目前的圈子架构相对简单,为了区分查询场景,当业务需要更复杂的广义选择条件时,用户需要在平台上等待很长时间。
圈子标题的维度越来越多:目前圈子里的标签描述越来越多,而且因为不同的业务方从不同的角度来理解圈子,比如垂直标签、圈子关键词描述、圈子质量分类、圈子画风等,所以圈子信息实体特征有几十个。
为了解决上述问题,技术团队逐步基于 bytehouse 重构了底层存储引擎。 ByteHouse 是 Volcano Engine 推出的一款 OLAP 引擎,具有查询效率高、硬件要求相对较低、水平扩展性好等特点,如果数据量进一步增长,还可以增加服务器数量,提高处理能力。
MySQL 和 ByteHouse 功能比较。
经过技术团队分析,由模型生成兴趣圈层信息,并按时间分区批量导入。 兴趣圈中有很多特征,业务端根据自身需求对自身业务相关的特征进行过滤,圈子层主要以统计分析为主。
在一些典型的兴趣圈查询场景中,如“查询用户名为098765432123450的圈子信息,关系为非**值,作者姓名的圈子信息为”xx“,MySQL的查询时间为2524毫秒,而字节屋的查询时间仅为102毫秒。
基于ByteHouse代替MySQL重构抖音兴趣圈平台后,不同场景下的查询效率平均提升了100倍左右,大大提升了用户体验。 由于Bytehouse出色的查询性能和良好的数据压缩比,中等资源服务器可以很好地满足需求,这也降低了整体硬件成本。 此外,ByteHouse具有良好的水平扩展性,如果数据量进一步增长,还可以通过增加服务器数量轻松提高分析能力。
随着大数据和实时计算技术的发展,用户对推荐的实时性要求越来越高。 ByteHouse 拥有高效的数据处理能力,未来会更好地为推荐场景提供强大的支持。