作者| 阿里文娛開發專家 崇懿、
阿里文娛開發專家慧善
責編 | 屠敏
頭圖 | CSDN 下載自視覺中國
出品 | CSDN(ID:CSDNnews)
優酷視頻搜索在文本搜索系統的基礎上,不斷探索視頻搜索的方案,在多模態輸入、多級多模態索引、跨模態檢索上積累了豐富經驗,並應用到C端B端場景中。本次分享將揭開多模態圖引擎的面紗。
背景
隨著智慧型手機及移動網際網路的快速發展,人們接觸到的多模態數據在數量和類別上都在飛速增長。計算、存儲能力不斷突破,人工智慧技術也得以發展,在雲、端測中CV技術、AR/VR技術都為人們提供更便利、智能的體驗。
優酷作為視頻平台擁有海量OGC、UGC視頻內容,視頻內容數據是一個高維度多模態的數據,有標題、簡介、評論等文本信息,有視頻幀的圖像信息,有聲音,也有連貫的動作視頻片段。傳統的基於倒排索引的搜尋引擎只適合檢索文本信息,對於多媒體內容檢索能力不足。
為了讓用戶更便捷的找到多媒體內容,增加多模態搜索能力,開創性設計與研發多級多模態搜尋引擎(MMS)。提供分布式大規模多層級多模態索引能力,低延時跨模態級聯檢索能力,多層級檢索、融合、排序能力。
系統概況
基於阿里平台的Hippo(在線服務調度)、SAP(應用服務框架)等基礎設施開發部署。MMS主要是在索引結構、檢索控制、執行框架、部署等方面做了系統設計和選型。
關鍵技術
1. 分布式多級多模態索引結構設計
每層級獨立構建分布式索引,索引類型包括倒排及向量索引。以視頻、幀(圖片)、人臉舉例,索引結構如下:
1. 視頻meta 文本,視頻的元信息包括視頻的名字,節目信息等,相對於線上的視頻全庫檢索,這裡只包含少量比較的欄位,保證對視頻的搜索精確召回。
2. 視頻幀向量,我們把優質視頻按關鍵幀切割,生成幀embeding 向量供檢索,同時包含一些其他的幀的meta文本信息。
視頻、幀、人臉存在層級關係;同時幀圖片及人臉都有表征向量建的向量索引,支持億級別規模,分10個分片,Top10的召回率90%以上。
2. 向量檢索 視頻幀索引和人臉索引都集成了向量內容,通過算法提取到 8.6 億的高維視頻幀向量,3800萬的人臉向量,如此巨大的索引數據同時也考驗我們對向量存儲召回的選擇,在經過多次的索引構建測試以後,我們選擇aitheta 作為向量的執行召回引擎,aitheta 是拍立淘團隊開發的向量檢索引擎,在數據規模非常大時aitheta 的召回延時和召回率均優於faiss,同時indexlib 插件已經集成aitheta,可以很方便的使用,即使使用aitheta,對於10億級別的高維向量檢索,aitheta 的支持性也不是很好,我們團隊專門做了一些優化,比如向量降維、自動化調參等。在上層應用檢索上我們使用 Ha3 的向量查詢能力,並且在這基礎上進行功能擴充和優化,首先支持了向量檢索的匹配分的返回,使用方可以更容易的進行按查詢匹配的相關性進行截斷和多維度打分,其次對於多個向量的查詢,對返回結果添加來源向量標記,方便上層應用進行打散等業務邏輯。
向量召回架構3. 檢索調度
MMS的複雜性在於其在線檢索邏輯,在支持層級及多模態query輸入的基礎上,如何控制跨層級、跨模態的檢索。通過定義標準的跨層級和跨模態準則,根據用戶的輸入形成在線檢索邏輯。
基本的檢索流程如下圖:
會由multi-call進行多層級、多模態擴展查詢邏輯,其中關鍵是多級、跨模態的擴展查詢邏輯。
1)跨層級
跨層級的檢索由用戶輸入的層級作為起始檢索點,用戶想要的輸出作為終點作為擴展,系統具有自適應推理能力。
2)跨模態
跨模態檢索會有兩種形式的解決方案,使用不同場景,索引構建前,不同模態數據做統一表征,映射到統一空間,在線進行向量檢索,此處內容表征的占主要,MMS主要解決是在文本、向量間進行跨模態檢索。
4. 圖化執行引擎
複雜檢索邏輯及低延遲服務能力要求,需要有高效的執行框架,圖化執行引擎具備最大限度並行能力。同時對運算元進行抽象,可以更自由編排及復用。
MMS選擇Suez圖化執行引擎,採用DAG執行引擎+業務邏輯運算元的實現方式。
DAG 全圖化引擎是阿里搜索AI·OS 的重要部分,主要思路是把業務邏輯和基礎組件拆分並封裝成tensorflow 的運算元形式,在運行時數據以流(tensorflow里的Tensor)的方式傳遞,然後根據業務需求組裝運算元成靜態執行圖。正是 tensorflow 這種靜態圖的靈活性,我們甚至可以把MMS作為子圖嵌入到其他應用中,也可以在MMS中嵌入其他的深度模型作為子圖。全圖化以後的應用支持異構設備,異步並行計算等tensorflow特性。
5. 通用性運算元實現
搜索邏輯中會設計query parser、merge、sort通用邏輯,基於圖化執行引擎接口實現通用運算元:
1)query parser運算元負責解析請求,查詢串使用簡單文本方式,相對於pb/binary方式,可視化的查詢串更加直觀,同時查詢語法簡單且強大。查詢串支持查詢文本查詢,向量查詢,或者同時有兩者,支持高級語法,可以控制的查詢參數粗排精排等;
2)merge融合多層級doc,補全所需要的正排、summary信息;
3)sort是搜索排序邏輯,排序後選取Top N返回;
4)result是結果返回和處理邏輯,基於查詢使用文本方式,我們希望結果也是直接可視化,所以在構建結果的時候支持了json/xml,同時為了兼顧性能,我們也支持protobuf 的返回格式,同時還加入snappy/lz4 方式壓縮,使返回結果集更小,傳輸效率更高;為了方便調試,我們加入了調試參數,可以保存聚合調試參數,輸出引擎內部的調試內容。
產品應用
1. 優酷智能搜索
採用MMS對視頻、幀、元素(人物、動作)等多級內容進行索引,召回出視頻解構後的信息,可以實現定幀播放,支持用戶對於精準視頻內容片斷的需求。
2. 以圖搜劇
總結&展望
多媒體信息不斷豐富,直播、小視頻等相關應用增長迅猛,5G移動通信技術的進一步普及,多媒體信息的生產、傳播將會持續爆髮式增長。人工智慧技術日臻成熟,對於多模態內容理解、表征會進一步加強。多模態的人機互動體現會滲透到生活、生產各個環節。多級多模態的檢索能力是必須要面臨的核心問題。
優酷的多級多模態搜尋引擎(MMS)提供了低延遲的跨模態、跨層級搜索能力,支持大規模多模態的索引。在視頻分發、視頻創作中都有著十分關鍵的應用場景。MMS技術在更多的智能交互場景也將發揮更廣泛的應用場景。