0

TikTok背后的人工智能是如何运作的

 2 years ago
source link: http://www.d1net.com/ai/industry/574477.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

TikTok背后的人工智能是如何运作的

责任编辑:cres 作者:Vivien H. |  2022-04-25 13:26:40 原创文章 企业网D1Net

TikTok是一款视频分享应用程序,可以让用户创建和分享短视频。它以“只为你”的个性化推荐给用户留下深刻印象。它非常容易上瘾,在Z世代中很受欢迎,而人工智能技术是其背后采用的主要技术。
20220425012927924.png
TikTok架构
TikTok推荐系统的架构包括三个组成部分:大数据框架、机器学习、微服务架构。
(1)大数据框架是推荐系统的起点。它提供实时数据流处理、数据计算和数据存储。
(2)机器学习是推荐系统的大脑。一系列机器学习和深度学习算法和技术被应用于构建模型,并生成适合个人偏好的建议。
(3)微服务架构是让整个系统快速高效服务的底层基础设施。
大数据框架
没有数据,就没有智慧。TikTok的大多数数据来自用户的智能手机。这包括操作系统和安装的应用程序等。更重要的是,TikTok特别关注用户的活动日志,例如观看时间、滑动、点赞、分享和评论。
20220425013003400.png
日志数据通过Flume和scribe进行收集和汇总,它们通过管道传输到Kafka队列中。然后Apache Storm与A​​pache Hadoop生态系统中的其他组件实时处理数据流。
Apache Hadoop生态系统是一个用于数据处理和存储的分布式系统。这包括第一代分布式数据处理系统MapReduce,它与批处理并行处理数据。YARN是一个用于作业调度和集群资源管理的框架;HDFS是一个分布式文件系统;HBase是一个可扩展的分布式数据库,支持大型表格的结构化数据存储。Hive是提供数据汇总和查询的数据仓库基础设施。Zookeeper是一个高性能的协调服务。
随着数据量的快速增长,实时数据处理框架应运而生。ApacheSpark是第三代框架,有助于对大数据工作负载进行近乎实时的分布式处理。Spark通过在内存中处理来增强MapReduce的性能。在过去的几年里,TikTok应用了第四代框架Flink。它旨在本地进行实时流处理。
数据库系统包括MySQL、MongoDB等。
机器学习
这就是TikTok如何获得家喻户晓的超个性化、令人上瘾的算法的核心。在大量数据集涌入之后,接下来是内容分析、用户分析和场景分析。TensorFlow等神经网络深度学习框架用于执行计算机视觉和自然语言处理。计算机视觉将用照片和视频破译图像。自然语言处理包括分类、标签和评估。
使用经典的机器学习算法,包括逻辑回归、卷积神经网络、递归神经网络和梯度提升决策树。应用了常见的推荐方法,例如基于内容的过滤、协同过滤和更高级的矩阵分解。
TikTok用来解读人们思想的秘密武器是:
(1)算法实验平台:工程师对逻辑回归、卷积神经网络等多种机器学习算法的混合进行实验,然后运行测试(A/B测试)并进行调整。
(2)广泛的分类和标签:模型基于用户的参与度,例如观看时间、滑动以及常用的点赞或分享(人们所做的作为通常是潜意识的反映)。用户特征、向量和类别的数量超过了世界上大多数推荐系统都要多,而且它们还在不断增加。
(3)用户反馈引擎:在多次迭代检索用户反馈后更新模型。体验管理平台是建立在这个引擎之上的,并最终改善了这些缺陷和建议。
为了解决推荐中的冷启动问题,使用了召回策略。就是从数以千万计的视频中挑选出数千名候选人,这些视频已经被证明是受欢迎的和高质量的视频。
与此同时,一些人工智能工作已经转移到客户端,以获得超快的响应。这包括在设备上进行实时培训、建模和推理。客户端使用了TensorFlow Lite或ByteNN等机器学习框架。
微服务架构
TikTok采用了云原生基础设施。用户分析、预测、冷启动、召回和用户反馈引擎等推荐组件用作API。这些服务托管在Amazon AWS和Microsoft Azure等云平台中。作为系统的结果,视频策展将通过云端推送给用户。
TikTok采用基于Kubernetes的容器化技术。Kubernetes被称为容器编排器,它是自动化应用程序生命周期的工具集。Kubeflow致力于在Kubernetes上部署机器学习工作流。
作为云原生堆栈的一部分,服务网格是另一种处理服务到服务通信的工具。它控制应用程序的不同部分如何相互共享数据。它在平台层而不是应用程序层插入功能或服务。
由于对高并发性的要求,这些服务是用Go语言和gRPC构建的。在TikTok中,Go由于其良好的内置网络和并发支持而成为服务开发中的主导语言。gRPC是一个远程过程控制框架,用于高效地构建和连接服务。
Tiktok的成功在于它会更加努力地提供最佳的用户体验。他们构建内部工具以最大限度地提高低级别(系统级别)的性能。例如,ByteMesh是Service Mesh的改进版本,KiteX是一个高性能的Golang gRPC框架,Sonic是一个增强的Golang JSON库。其他内部工具或系统包括参数服务器、ByteNN和abase等。
正如TikTok机器学习负责人所说,有时底层的基础设施比其上面的(机器学习)算法更重要。
版权声明:本文为企业网D1Net编译,转载需注明出处为:企业网D1Net,如果不注明出处,企业网D1Net将保留追究其法律责任的权利。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK