SkyNet:字节跳动泛客诉问题挖掘与风险监控中台实践
背景
隨著互聯網和智能手機的普及,人們的生活大多時候都離不開移動 App,在信息量與日俱增的大數據時代,用戶反饋數據可以幫助發現熱點問題、避免安全問題、優化產品體驗、提升產品質量等。
簡介
SkyNet 天網平臺專門聚焦于泛客訴問題數據,包括 App 端內離線反饋、IM(Instant Messaging,即時通訊)反饋、電話熱線反饋、舉報反饋、各大應用市場評論、App 端內實時評論、內部運營工單等數據,挖掘其中的價值,為各方業務帶來收益。
SkyNet 天網平臺由互娛研發客服平臺團隊和研發效能團隊聯合出品。
平臺介紹
功能模塊
SkyNet 天網平臺的能力主要包括智能監控預警、異常熱點挖掘、分析看板定制、VoC(Voice of Customer,用戶原聲)展示。
監控預警:對于已知場景,采用 NLP 打標或關鍵詞匹配配置監控告警,基于時序監控算法實現智能閾值和智能告警,可以有效避免因為固定閾值帶來的召回率和準確率不高的問題。
異常挖掘:對于未知場景,采用熱點聚類、多渠道聚合、情感分析、風險詞挖掘及命名體識別等算法,實現高頻高熱和低頻低熱的未知問題智能挖掘和監控。
看板定制:對于一段時期內的數據,生成數據圖表看板,提供日常的可視化分析能力,包括指標分析,文本分析,實驗分析等。
VoC 展示:瞄準反饋數據原文內容,直接傳遞用戶的聲音,為用戶發聲,營造關注用戶反饋的文化氛圍。
SkyNet 系統能力模型
架構設計
Web 平臺:采用前后端分離架構,前端基于 React Hooks 開發,后臺采用微服務方案。為了增強用戶體驗,還提供了小程序、飛書卡片等多種交互方式。
調度側:采用分布式的 Celery 集群,一主多從的架構,同時主控做了雙機房容災。
數據側:包括 API+實時+離線三種模式,API 模式基于 HTTP 封裝的數據查詢服務,實時模式基于 Kafka+Flink+ES/HDFS/ClickHouse 數據處理任務,用于數據處理和存儲,離線模式基于 Spark+Hive 天級和小時級的數據處理任務。
算法側:基于 Bert、LDA、BiLSTM 等模型實現長短文本意圖識別、熱點發現、智能閾值與智能告警,快速理解反饋意圖,更早發現反饋量級異常。
安全側:基于數據隱私和信息安全,分機房部署服務、存儲數據。
SkyNet 架構原理
全球實時數據中心
數據是平臺的核心部分,幾乎所有的功能特性都是通過大數據挖掘出來的;數據的質量和穩定,才能保證有穩定的價值產出。
數據層經歷了關系型數據庫到大數據的改造,至于為什么要改造?下圖已經說明一切,所有的改造都是為了更快更好地處理數據;實時監控、指標分析、模型識別等服務都離不開穩健的數據層。
SkyNet 業務數據應用
平臺數據層在全球各地區都搭建了數據中心,各數據中心之間的存儲和服務都互相隔離、互相獨立。
通用的高吞吐實時數據接入系統
面對復雜的業務場景、多樣化的數據源,我們需要建設一個通用的、實時的異構數據接入系統,旨在將來自不同業務方的異構數據實時轉儲到統一的目標數據庫,為后續的數據分析過程提供便利。
基于這個目標,通過業務抽象,一項數據接入任務一般可分為以下幾個子步驟:
反序列化
格式化
清洗
序列化
持久化
具體步驟如下:提供定制的序列化實例,將特殊處理邏輯限定在單一模塊內。實現配置解析器,提供在線接入配置,實現格式化、清洗、序列化和持久化 4 個子任務的通用處理控制。利用流式處理引擎自身提供的實時性、可拓展性、嚴格一次(Exactly-Once)特性,提供高可用實時數據接入能力。
異構數據通用接入流程
當面臨類似短視頻內容評論數據的接入場景時,每分鐘的實際數據量高達百萬級別,上述的數據處理系統便受到了挑戰。
基于這個難點,進行了下面的優化:把原始數據利用哈希算法進行散列后,同時分發給多個窗口進行處理,每個窗口處理完成后都將數據放入內存緩存,經過均勻散列后再批量寫入目標數據庫,從而達到短時間內處理大量數據的高并發效果。采用改進后的數據處理系統,200 個 Partition,50 個 TaskManager(4C8G),每分鐘能夠處理超過 200 萬的數據,并且延遲下降到毫秒級別,做到真正的異構數據實時接入。
針對大數據場景的優化處理流程
構建千億級在線查詢引擎
整個數據層分為四層,API 層、引擎層、接入層和數據源。引擎層是基于大數據 OLAP 技術建設,針對不同場景使用不同的引擎。目前引入了 ElasticSearch、ClickHouse 和 Presto 三種引擎。
數據層技術架構
不同引擎有不同的特性,例如 Clickhouse 擅長大寬表查詢,ES 聚合查詢和更新速度快,但對 PB 級數據量支持差,Presto 各方面性能均衡,而且支持跨引擎查詢。
對于多引擎情況,我們封裝了統一 SQL 查詢入口,對外屏蔽引擎信息。同時基于業務場景進行優化,部分優化如下:
ClickHouse:
針對查詢場景,建立對應的物化視圖
字節內部自研 HaUniqueMergeTree 表引擎
基于數據主鍵實時去重,套用 Kafka 物化視圖消費模式,維護簡單
支持主鍵更新的表引擎
保留社區版本的查詢性能
ElasticSearch 針對 PB 級存儲優化:
生命周期管理,冷熱分離的集群架構
分片數控制,開啟 Shrink 功能,對老索引進行分片壓縮
新索引的滾動時間控制在 1 小時或 100G
AI 賦能智能化
平臺基于 NLP、CV 和 AIOps 算法,利用文本分類、熱點發現、時序預測等算法模型實現快速準確識別用戶反饋意圖,自動發現熱點反饋內容,智能監控時序反饋量級。
以 App 端內用戶離線反饋數據為例,用戶通過反饋入口提交反饋數據到客服平臺,客服平臺把相關數據寫入指定的 Kafka Topic,平臺數據層的 Flink 任務實時消費和清洗數據,并調用反饋文本分類模型識別用戶意圖,根據用戶在 SkyNet 平臺側配置的標簽告警,建立時序預測模型,實現異常量級反饋智能報警;對于不在打標體系內的“其他”類數據,建立熱點發現聚類模型,基于語義相似度聚合反饋內容,根據聚類簇反饋量級歷史變化趨勢實現未知熱點問題智能告警。
算法能力概覽
AI 能力
SkyNet 平臺智能算法服務包括智能打標、熱點發現、智能監控三部分能力。
智能打標
用戶反饋的數據類型主要是文本和截圖,特別是用戶上傳的截圖語義信息更豐富,因此為更準確識別用戶的反饋意圖不僅僅依靠文本分類模型,還需要具備反饋截圖的識別能力,同時為了更加細化分類標簽,輔助快速定位異常類型,標簽體系實現多級化,SkyNet 意圖識別模型基于文本和圖像,構建了多模態智能反饋多級打標模型。其中文本特征基于 Bert 模型,圖像特征基于 MobileNet V3 模型,在多級標簽輸出層設計層級聯合結構,實現多個產品線打標準確率 90%以上。
智能打標模型
熱點發現
熱點事件包括高頻熱點和低頻熱點,高頻熱點是指短時間較多用戶反饋的異常,低頻熱點是指一定時間內不斷有用戶反饋的新異常。熱點發現能力基于文本聚類算法,通過分詞、文本向量、聚類、相似度計算,將語義相似的反饋進行統計,對于高頻熱點問題通過統計一段時間內反饋量級觸發告警,對于低頻熱點問題通過統計一段時間內反饋量級與歷史最近多天該問題的量級比例觸發告警,通過意圖識別和熱點發現,實現有監督打標和無監督聚類,實現完整覆蓋反饋內容監控。
熱點發現模型
智能監控
時序預測是根據歷史時序數據預測未來趨勢,對于突增和突降異常場景能夠準確監控,其原理是首先對歷史時序數據預處理,過濾異常點并平滑時序曲線,模型基于 BiLSTM 結構,根據最近歷史時序數據預測當前時間點數值,為了更為準確判斷真實值是否異常,基于歷史數據波動、模型預測誤差和預測值計算該點智能上下限閾值,當超過上限或低于下限則觸發告警。同時為了降低尖刺點造成的誤報,根據異常點偏離程度和異常持續時間,計算異常事件概率,不僅有效降低了報警頻率,也大大提高了報警準確率。
智能監控模型
已知場景監控
對于已知場景,根據用戶配置的告警任務的告警頻率(以 10 分鐘為例),平臺引擎層的調度服務每 10 分鐘跑一次最近 10 分鐘的反饋數據,超出特定的閾值則發出告警。告警任務的閾值優先由用戶配置指定,告警任務運行一段時間后,也可以選擇啟用智能閾值,針對不同業務場景,根據歷史告警記錄采用相應的算法給出預測閾值。
已知場景監控原理
未知場景監控
對于未知場景,用戶不用配置告警條件和閾值,只需配置告警接收人。平臺會在后臺開啟定時任務,通過 LDA 主題聚類或者語義聚類方式發現新的熱點問題,同時,根據歷史告警記錄訓練智能閾值,生成具體的告警策略。
具體來講,監控未知場景的方法可以分為兩類,一類是基于單渠道數據跨時間周期發現熱點問題,另一類是基于同時間周期跨渠道發現熱點問題。
第一類可以理解為對同一渠道的數據作跨時間的監控。以每 10 分鐘告警一次為例,取近 10 分鐘的數據進行智能打標分類和關鍵詞語義泛化,結合聚類算法生成語義向量矩陣,與近 3 天的數據計算得出相似度矩陣,找到相似度較高的事件。這個過程可以幫助發現同一渠道的低頻熱點事件,能夠幫助盡早發現潛在的線上事故和安全問題。
未知場景監控原理
第二類可以理解為對同一時間周期的數據作跨渠道的監控。以每 10 分鐘告警一次為例,取各渠道近 10 分鐘的數據分別進行智能打標分類和關鍵詞語義泛化,結合聚類算法生成語義向量矩陣,各個矩陣之間計算得出相似度矩陣,找到相似度較高的事件。這個過程可以幫助發現一段時間內的低頻熱點事件,能夠幫助盡早發現潛在的輿論問題。
多渠道聯合監控
就聯合監控而言,一個問題的發生往往會在多個渠道(離線反饋、IM、電話等)的數據上表現,怎么去提升問題發現的及時性、降低問題發現的噪音(每個渠道都報出了這個事件)、保障問題定級的合理性,是聯合監控要解決的問題。
我們通過全渠道聯合監控,即跨渠道、跨時間線的監控,來保證問題在任意渠道發生后都能及時監控到。同時通過算法去檢查其他渠道,如果識別到相似問題,通過數據追加的方式進行問題描繪,從而避免不同渠道發生同一個問題導致的監控噪音。通過跨渠道串聯,也可以更直觀地看到一個問題在全局的數據表現,保證定級的合理性。
多渠道聯合監控原理
分布式實時調度系統
告警監控作為 SkyNet 的核心功能之一,是保障公司內部很多產品的最后一道防線。運行狀態良好的告警系統,可以及時發現問題,及時引起重視,早介入、早解決、減少重大事故的負面影響。同時,自動化的告警系統還可以節約大量人力,提高運營團隊的效率。
系統架構
告警系統架構
告警系統各個部分的功能如下:
調度節點(scheduler):負責根據告警配置生成并調度告警任務,監測告警任務的狀態避免重跑和漏跑,重試失敗任務。調度節點通過分布式鎖實現主從機制。
告警任務的執行節點(worker):負責執行告警任務。
保存任務信息的隊列(broker):告警任務通過 broker 分發到不同的執行節點( worker)。
保存配置信息使用的數據庫(mysql):保存用戶的告警配置信息。
修改配置信息的頁面(webserver):用戶交互的入口,用戶新增、修改告警配置信息的入口。
系統簡介
我們實現了一套分布式的調度系統,調度節點通過搶占分布式鎖確定主從節點,在根據告警配置信息觸發告警任務的時候,可以進行更多的操作,提高靈活性。
調度節點支持自由配置告警隊列,提高單一隊列故障時的可用性,避免因為單一隊列擁塞,導致所有告警都不能及時觸達用戶的情況;調度節點支持告警任務在多個狀態之間的輪轉,能夠讓任務在因為偶然超時、網絡故障等執行失敗后進行重試,從而提高任務執行成功率,確保告警及時準確地觸達用戶;調度節點支持服務重啟時繼續運行未完成的任務,防止任務漏跑,保證告警無遺漏,給用戶提供可靠的保障。
調度節點還支持告警的屏蔽和跳過機制,用戶可以在收到告警并介入處理的一段時間內,屏蔽對應的告警,還可以在告警數據回溯時,跳過告警卡片的推送,減少對用戶不必要的干擾。此外,告警推送的卡片在信息簡潔明了的同時,還有轉工單功能,支持一鍵將告警轉工單,方便后續跟進。
平臺借助分布式調度系統,目前單日處理告警任務 100w+,告警成功率 99+%。
小試牛刀
目前,SkyNet 天網平臺服務的業務線已經超過 80 個。包括抖音、頭條、火山、西瓜、皮皮蝦、剪映、輕顏、懂車帝等 App 離線反饋、IM 反饋、電話投訴反饋、舉報反饋;各個具備直播能力的 App 看播評論;各個具備電商能力的 App 訂單評論;短視頻內容評論;各大應用市場評論……
牛年春節聯合項目
特別地,抖音作為 2021 年牛年春晚的獨家互動合作伙伴,SkyNet 天網平臺也為抖音支持春節活動貢獻了一份力量。春晚期間 SkyNet 的全產品線反饋數據看板實時展示反饋數據的波動,各業務線監控任務平穩運行。
平臺升級-異地多活
平臺已具備高可用的能力,但針對春節活動的場景還是遠遠不夠,如果機房網絡故障,還是會導致系統故障,所以異地多活的能力必須在春節前上。同時制定了三機房容災方案,核心業務降級策略。
業務保障-多重降級
針對春節期間的紅包雨活動,公司基礎平臺服務制定了多套資源降級策略,應對各種突發情況。基于基礎平臺的統一策略,作為業務側的我們需要制定對應的降級策略應對突發狀況。
參與公司演練,應對不同降級策略,配合升級
業務分優先級,針對不同業務劃分高、中、低三等,非核心業務降級,保核心業務
基礎網絡故障觸發容災
離線資源傾斜到實時資源
短視頻評論數據價值挖掘
產品功能、輿情相關的反饋很容易在站內互動區先被暴露出來。用戶客服中心目前已有 App 內反饋、郵件、應用商店、社媒監聽等渠道,但互動區的監控還是一片盲區,客服中心希望能利用這個渠道的價值,提高用戶反饋數據的覆蓋度,包括不限于產品功能體驗類、用戶情感分析類。
面對大規模的數據量,如何快速有效地進行實時監控分析?如何從千億數據中挖掘有價值的數據?這些都要依賴天網平臺的智能化和大數據的能力。比如,基于實時數據接入系統,結合 NLP 文本分析能力完成分類與分詞;基于大數據 OLAP 技術,完成對數據在線分析,包括指標分析、文本分析、聚類分析等。
短視頻評論挖掘流程
通過監控分析,一個月能暴露 15-20 個問題(含產品 bug、風控、內容安全等問題),同時會基于高贊的評論內容做一些人工分析,比如,一個月內的 4000 條高贊評論大概能暴露 50 個內容問題。
用戶之聲
下面是來自春節期間使用 SkyNet 的用戶的聲音:
“SkyNet 在春節期間給予了小程序/小游戲專項活動強有力支持,幫助項目組快速發現用戶反饋問題,并及時跟進解決,特別是在春節活動高峰期間,分鐘級的活動調整方案,都能完美響應!”
“SkyNet 在春節期間問題發現的時效全部控制在 5min 內!”
“SkyNet 替代了人工監控方式,每日節省值班同學人效 10h 以上!”
“SkyNet 的告警準確率提升明顯,絕大部分的告警都反映了真實的問題!”
……
加入我們
字節跳動互娛研發效能團隊,互娛研發負責抖音、抖音火山版、剪映、FaceU、輕顏、直播、音樂等多款明星產品的研發,目前,抖音日活(DAU)已經突破 6 億,并繼續保持高速增長。
研發效能團隊主打服務化+智能化,旨在通過工具平臺+算法,賦能互娛的各個業務場景,團隊職能包括但不限于提升研發效能,保證內容質量,優化用戶體驗,保障業務安全等。團隊擁有算法,工程(前端、后臺以及客戶端)、數據(大數據、DA)、產品、測試等多種職能崗位,可以高效自閉環進行智能平臺產品的設計研發,具有多個公司級影響力的智能化平臺產品成功落地經驗。
團隊發展迅速,年輕富有朝氣,注重技術氛圍建設,積極參與國內外各頂尖行業技術會議,輸出高質量技術專利和相關論文,工作 Base 地有深圳、杭州、廣州、北京多地可選。
加入我們,讓你的每一行代碼都能服務全球億萬用戶。
簡歷投遞郵箱:iesep@bytedance.com;郵件標題:姓名 - 職能/技術棧 - 研發效能。
總結
以上是生活随笔為你收集整理的SkyNet:字节跳动泛客诉问题挖掘与风险监控中台实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人的顶级能量从哪里获取?
- 下一篇: 苹果用什么蓝牙耳机好?适合苹果的音乐蓝牙