眾所周知,TikTok 是一款視頻分享應(yīng)用,可讓用戶創(chuàng)建和分享短視頻,對(duì)于不少人來(lái)說(shuō),雖然是一個(gè)日常的娛樂、刷刷視頻的平臺(tái),但同時(shí)卻也是能夠變現(xiàn)的渠道,但是對(duì)于tiktok這個(gè)平臺(tái)的具體運(yùn)作是比較不清楚的,那么tiktok背后的AI怎么運(yùn)作的呢?
tiktok背后的AI怎么運(yùn)作的?
TikTok架構(gòu)
TikTok推薦系統(tǒng)的架構(gòu)包括三個(gè)組件:大數(shù)據(jù)框架、機(jī)器學(xué)習(xí)和微服務(wù)架構(gòu)。
大數(shù)據(jù)框架是系統(tǒng)的起點(diǎn)。它提供實(shí)時(shí)數(shù)據(jù)流處理,數(shù)據(jù)計(jì)算和數(shù)據(jù)存儲(chǔ);
機(jī)器學(xué)習(xí)是推薦系統(tǒng)的大腦。使用一系列機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法與技術(shù)用于構(gòu)建模型并生成適用
機(jī)器學(xué)習(xí)
這就是 TikTok 如何贏得家喻戶曉的超個(gè)性化、令人上癮的算法的核心。
在大量數(shù)據(jù)集涌入之后,接下來(lái)是內(nèi)容分析、用戶分析和上下文分析。TensorFlow等神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)框架用于執(zhí)行計(jì)算機(jī)視覺和本地語(yǔ)言處理 ( NLP )。計(jì)算機(jī)視覺將用照片和視頻破譯圖像。NLP 包括分類、標(biāo)簽和評(píng)估。
使用了經(jīng)典的機(jī)器學(xué)習(xí)算法,包括邏輯回歸 ( LR )、卷積神經(jīng)網(wǎng)絡(luò) ( CNN )、遞歸神經(jīng)網(wǎng)絡(luò) ( RNN ) 和梯度提升決策樹(GBDT)。應(yīng)用了常見的推薦方法,例如基于內(nèi)容的過(guò)濾(CBF)、協(xié)同過(guò)濾(CF)和更高級(jí)的矩陣分解(MF)。
TikTok用來(lái)讀心的秘密武器是:
1. 算法實(shí)驗(yàn)平臺(tái):工程師對(duì)LR、DNN等多種機(jī)器學(xué)習(xí)算法的混合進(jìn)行實(shí)驗(yàn),然后運(yùn)行測(cè)試(A/B測(cè)試)并進(jìn)行調(diào)整。
2. 廣泛的分類和標(biāo)簽:模型基于用戶的參與度,例如觀看時(shí)間、滑動(dòng)以及常用的點(diǎn)贊或分享(你所做的作為你潛意識(shí)的反映比你說(shuō)的更多地說(shuō)明了你)。用戶特征、向量和類別的數(shù)量超過(guò)了世界上大多數(shù)推薦系統(tǒng)——而且它們還在不斷增加。
3. 用戶反饋引擎:多次迭代獲取用戶反饋后更新模型。體驗(yàn)管理平臺(tái)是建立在這個(gè)引擎之上的,并最終改善了災(zāi)難和建議。
為了解決推薦中的冷啟動(dòng)問(wèn)題,使用了召回策略。就是從數(shù)以千萬(wàn)計(jì)的視頻中挑選出成千上萬(wàn)的候選人,這些視頻已經(jīng)被證明是受歡迎的和高質(zhì)量的。
同時(shí),部分人工智能工作已移至客戶端,以實(shí)現(xiàn)超快速響應(yīng)。這包括在設(shè)備上進(jìn)行的實(shí)時(shí)培訓(xùn)、建模和推理。在客戶端使用機(jī)器學(xué)習(xí)框架,例如TensorFlow Lite或ByteNN 。
微服務(wù)架構(gòu)
TikTok已經(jīng)運(yùn)用了云原生基礎(chǔ)設(shè)施。推薦組件(如用戶分析、預(yù)測(cè)、冷啟動(dòng)、召回和用戶反饋引擎)用作 API。這些服務(wù)托管在Amazon AWS和Microsoft Azure等云中。作為系統(tǒng)的結(jié)果,視頻策展將通過(guò)云推送給用戶。
TikTok采用基于Kubernetes的容器化技術(shù)。Kubernetes 被稱為容器編排器。它是自動(dòng)化應(yīng)用程序生命周期的工具集。Kubeflow致力于在Kubernetes上部署機(jī)器學(xué)習(xí)工作流。
作為云原生堆棧的一部分,Service mesh 是另一個(gè)處理服務(wù)到服務(wù)通信的工具。它控制應(yīng)用程序的不同部分如何相互共享數(shù)據(jù)。它在平臺(tái)層插入功能或服務(wù),而不是在應(yīng)用程序?qū)硬迦搿?/p>
由于高并發(fā)性的要求,服務(wù)是使用 Go 語(yǔ)言和 gRPC 構(gòu)建的。在TikTok中,Go因其良好的內(nèi)置網(wǎng)絡(luò)和并發(fā)支持而成為服務(wù)開發(fā)中的主導(dǎo)語(yǔ)言。gRPC 是一個(gè)遠(yuǎn)程過(guò)程控制框架,用于有效地構(gòu)建和連接服務(wù)。
Tiktok的成功在于,它將加倍努力提供最佳的用戶體驗(yàn)。他們構(gòu)建內(nèi)部工具,以最大限度地提高低級(jí)別(系統(tǒng)級(jí)別)的性能。例如,ByteMesh是Service Mesh的改進(jìn)版本,KiteX是高性能的Golang gRPC框架,Sonic是增強(qiáng)的Golang JSON庫(kù)。其他內(nèi)部工具或系統(tǒng)包括參數(shù)服務(wù)器、ByteNN 和 abase等。
正如TikTok機(jī)器學(xué)習(xí)負(fù)責(zé)人Xiang Liang所說(shuō),有時(shí)下面的基礎(chǔ)設(shè)施比上面的(機(jī)器學(xué)習(xí))算法更重要。
字節(jié)跳動(dòng)于2017年在美國(guó)推出了TikTok,而tiktok的上市也在一夜之間成了香餑餑,不僅吸引了無(wú)數(shù)的用戶前往使用,甚至也引來(lái)美國(guó)的注視,可以說(shuō)火爆程度是不言而喻的。