龙空技术网

解密TikTok背后的人工智能

正直阅迹 87

前言:

今天朋友们对“apachestorm安装”可能比较看重,小伙伴们都想要学习一些“apachestorm安装”的相关知识。那么小编同时在网摘上收集了一些有关“apachestorm安装””的相关文章,希望兄弟们能喜欢,兄弟们快快来了解一下吧!

TikTok 是一款视频分享应用,可让用户创建和分享短视频。它以“只为你”的个性化推荐给用户留下深刻印象。本篇给大家解读这款应用背后的人工智能技术。

TikTok架构

TikTok推荐系统的架构包括三个组成部分:大数据框架、机器学习和微服务架构。

1. 大数据框架是系统的起点。它提供实时数据流处理、数据计算和数据存储。

2. 机器学习是推荐系统的大脑。一系列机器学习和深度学习算法和技术被应用于构建模型并生成适合个人偏好的建议。

3. 微服务架构是底层的基础设施,使整个系统服务快速高效。

大数据框架

没有数据,就没有智慧。大多数数据来自用户的智能手机。这包括操作系统和安装的应用程序等。更重要的是,TikTok 特别关注用户的活动日志,例如观看时间、滑动、点赞、分享和评论。

日志数据通过flume scribe进行收集和汇总。它们通过管道传输到Kafka 队列中。然后Apache Storm与 A​pache Hadoop生态系统中的其他组件实时处理数据流。

Apache Hadoop生态系统是一个用于数据处理和存储的分布式系统。这包括第一代分布式数据处理系统MapReduce 。它与批处理并行处理数据。YARN是一个用于作业调度和集群资源管理的框架。

HDFS 是一个分布式文件系统。HBase是一个可扩展的分布式数据库,支持大型表的结构化数据存储。Hive是提供数据汇总和查询的数据仓库基础架构。 Zookeeper是一个高性能的协调服务。

随着数据量的快速增长,实时数据处理框架应运而生。Apache Spark是第三代框架,有助于对大数据工作负载进行近乎实时的分布式处理。Spark 通过在内存中处理来增强 MapReduce 的性能。最近几年,TikTok 应用了第四代框架Flink。它旨在本地进行实时流处理。

数据库系统包括 MySQL、MongoDB 等。

机器学习

这就是 TikTok 如何赢得家喻户晓的超个性化、令人上瘾的算法的核心。

在大量数据集涌入之后,接下来是内容分析、用户分析和上下文分析。TensorFlow等神经网络深度学习框架用于执行计算机视觉和本地语言处理 ( NLP )。计算机视觉将用照片和视频破译图像。NLP 包括分类、标签和评估。

使用了经典的机器学习算法,包括逻辑回归 ( LR )、卷积神经网络 ( CNN )、递归神经网络 ( RNN ) 和梯度提升决策树(GBDT)。应用了常见的推荐方法,例如基于内容的过滤(CBF)、协同过滤(CF)和更高级的矩阵分解(MF)。

TikTok用来读心的秘密武器是:

1. 算法实验平台:工程师对LR、DNN等多种机器学习算法的混合进行实验,然后运行测试(A/B测试)并进行调整。

2. 广泛的分类和标签:模型基于用户的参与度,例如观看时间、滑动以及常用的点赞或分享(你所做的作为你潜意识的反映比你说的更多地说明了你)。用户特征、向量和类别的数量超过了世界上大多数推荐系统——而且它们还在不断增加。

3. 用户反馈引擎:多次迭代获取用户反馈后更新模型。体验管理平台是建立在这个引擎之上的,并最终改善了灾难和建议。

为了解决推荐中的冷启动问题,使用了召回策略。就是从数以千万计的视频中挑选出成千上万的候选人,这些视频已经被证明是受欢迎的和高质量的。

同时,部分人工智能工作已移至客户端,以实现超快速响应。这包括在设备上进行的实时培训、建模和推理。在客户端使用机器学习框架,例如TensorFlow LiteByteNN 。

微服务架构

TikTok 采用了云原生基础架构。用户分析、预测、冷启动、召回和用户反馈引擎等推荐组件用作 API。这些服务托管在Amazon AWSMicrosoft Azure等云中。作为系统的结果,视频策展将通过云端推送给用户。

TikTok 采用基于 Kubernetes 的容器化技术。Kubernetes被称为容器编排器。它是自动化应用程序生命周期的工具集。Kubeflow致力于在 Kubernetes 上部署机器学习工作流。

作为云原生堆栈的一部分,服务网格 是另一种处理服务到服务通信的工具。它控制应用程序的不同部分如何相互共享数据。它在平台层而不是应用程序层插入功能或服务。

由于高并发的需求,服务使用Go语言和gRPC 构建。在 TikTok 中,Go 因其良好的内置网络和并发支持而成为服务开发的主导语言。gRPC 是一个远程过程控制框架,用于高效地构建和连接服务。

Tiktok 的成功在于它会更加努力地提供最佳的用户体验。他们构建内部工具以最大限度地提高低级别(系统级别)的性能。例如,ByteMesh是 Service Mesh 的改进版本,KiteX是一个高性能的 Golang gRPC 框架,Sonic是一个增强的 Golang JSON 库。其他内部工具或系统包括参数服务器、ByteNN 和 abase - 仅举几例。

正如 TikTok 机器学习负责人向亮所说,有时底层的基础设施比上面的(机器学习)算法更重要。

最后说说你了解TicTok这款应用吗,欢迎在评论区留言~

同时也欢迎关注我,定期为你分享更多技术干货~

标签: #apachestorm安装