解密美圖大規模多媒體數據檢索技術 DeepHash

2020-12-16 雷鋒網

活動

企業:美圖

操作:論文獨家解讀

事項:解密美圖大規模多媒體數據檢索技術

雷鋒網AI科技評論按,本文為美圖雲視覺技術部門哈希項目團隊向AI科技評論提供的獨家稿件,未經許可不得轉載。

「美圖短視頻實時分類挑戰賽 MTSVRC」也於近日正式啟動,本次挑戰賽由中國模式識別與計算機視覺學術會議主辦,由美圖公司承辦,中科院自動化所協辦,詳情可點擊往期內容了解。在雷鋒網(公眾號:雷鋒網)旗下學術頻道AI科技評論資料庫產品「AI 影響因子」中,美圖雲視覺技術部門憑藉 AAAI 2018 oral 論文和舉辦相關賽事表現不俗,本次憑藉獨家技術解讀也獲得了相應加分。

美圖是一家擁有海量多媒體數據的公司,如何有效分析理解這些數據內容並從中挖掘出有效信息,對我們提出了重大挑戰。本文以美拍業務為例,介紹我們在海量短視頻數據的內容分析理解和大規模檢索技術方向的探索和實踐。

多媒體數據相似性檢索可以簡單理解為用不同媒體素材將其進行特徵表達,然後在相應的特徵空間裡進行查找和排序。特徵表達有兩種方式:一種是通過傳統方法提取的視覺特徵,比如關鍵點特徵、顏色直方圖等;另一個是基於深度學習提取它的底層基礎特徵或高層語義特徵(深度特徵)。美圖 DeepHash 是基於深度哈希技術的大規模多媒體數據檢索系統。系統依託於海量多媒體數據,分為算法和服務兩大模塊。

 / DeepHash 視頻哈希算法 / 

我們針對美拍短視頻內容特性,從標籤制定,數據處理到算法網絡設計等層面提出一系列定製化的算法優化策略。

在討論具體技術方案之前,我們先來思考一個問題:如何描述一個視頻?在使用視頻哈希技術之前,我們採用的是用標籤體系來描述視頻。圖 1 所展示的是美拍最常見的標籤體系,音樂、寵物、舞蹈、教程等,用標籤體系描述視頻的缺陷是:標籤主要是對視頻內容進行概括、描述性的詞彙,包含信息量較少,一些細節的信息是無法體現的,標籤是離散型的描述。而人類是如何描述一個視頻呢?以左上角視頻截圖為例,人類看了會說:它是兩個穿著淡藍色衣服的小女孩在彈著吉他唱歌。由此可發現,人類是用視覺特徵來描述視頻,所包含的信息豐富、維度多樣,是連續型的描述,顯然這是一種更合理的描述方式。

圖 1

進一步說,用標籤來描述視頻存在以下問題。

1. 信息表達能力弱,無法體現更細粒度的信息。如圖 2 所示的視頻截圖,是一個穿著綠色漢服的女生在公園裡跳舞。它的內容標籤是舞蹈,很難通過標籤讀取出其他信息。如果嘗試更複雜的標籤體系,比如加上場景、物體、性別等維度,可以發現很難窮舉出所有的狀況,即使做到標註成本也非常大。

圖 2

2. 很難比較信息之間的相似性,信息難以度量。如圖 3 所示的三個視頻標籤都是「狗」,很難通過標籤去辨別哪兩個視頻更相似,如果用視覺特徵很容易就發現左邊的視頻與右上角的視頻更相似。當然我們可以用狗的種類和數量來計算兩幅圖之間的相似性,但是當圖片內容比較複雜,物體較多時,這種方式難以適用。

圖 3

使用特徵表達視頻

視頻哈希算法使用視覺特徵來描述視頻,它具有以下幾個特性:

1. 多樣性。特徵包含更多維度的信息,信息量更多,可表達的內容是多樣的;

2. 魯棒性。如果兩個視頻比較相似,它們表達出來的特徵也比較相似,提取出來的特徵也應該是穩定的;

3. 距離可計算。特徵之間是可以計算距離的,用距離描述兩個特徵的相似性,距離越小,視頻內容越相似。

基於特徵的視頻檢索技術的應用場景廣泛,如視覺相似視頻推薦,特定視頻檢索,視頻審核,視頻去重等等;此外,還可以利用提取的視頻特徵進行特徵聚類和內容挖掘,挖掘其中的熱點內容和發現新類。

特徵表達方式

常用特徵表達方式有兩種:浮點型特徵和二進位特徵。

二進位特徵在存儲、檢索速度兩方面有顯著優勢:使用二進位存儲,十分高效;計算距離使用漢明距離,檢索速度更快。而浮點型特徵距離計算一般使用歐式距離或餘弦距離,計算複雜度較高,檢索速度較慢;另外浮點特徵還存在極值幹擾的問題,會影響距離計算。二進位特徵都是 0 和 1,特徵較為穩定。基於以上情況,我們業務中採取了基於二進位形式的特徵表達方式。

哈希特徵提取

圖 4

視頻哈希特徵的一般提取流程為:卷積神經網絡提取視頻特徵,將特徵映射成固定長度的浮點型特徵,在浮點型特徵後面接 sigmoid 層映射到 [0,1] 區間範圍內,通過閾值化量化為二進位形式。

用於提取哈希特徵的網絡模型的訓練可以分為有監督和無監督兩種形式。有監督學習基於有標籤的數據進行訓練,加以特定的損失函數提升特徵的表達能力。它的特點是特徵表達是可控的,可以通過標籤來告訴這個網絡重點學習哪些特徵;無監督學習基於無標籤數據進行訓練,通常通過圖像自身變換學習特徵表達能力,所以特點就是特徵表達不好控制,較難幹預網絡應該學習哪種特徵。無監督學習目前還處於學術研究階段,業務難以直接應用。因此,我們當前採用的方案也是基於有監督的視頻哈希算法。

 

圖 5

美拍視頻哈希算法流程主要分為五個模塊:標籤、數據、網絡、訓練和預測。對於每個模塊,我們都基於美拍的數據特點和業務邏輯做出了一些定製化的優化策略。下面分別介紹這五個模塊的相關工作。

標籤

美拍有上百類的標籤體系用於內容運營,涵蓋了美拍短視頻常見的內容和類別。但這些現業務標籤並不適合直接拿來做算法的訓練,主要存在以下問題:

1. 數據不均衡

圖 6 是美拍熱門視頻的標籤分布,可以看出各個類別數據量極度不均衡。而在算法訓練的時候如果有一些類別數據量比較小,那麼網絡就很難學習到這些類別的特徵學習表達能力。

圖 6

2. 視覺不可分

業務標籤體系沒有針對視覺特性進行劃分,造成不同類別的視頻在視覺上不可分。直接拿這種標籤進行訓練就會造成很多誤分,網絡難以學到各個類別之間的特點。

圖 7

3. 維度單一

業務標籤體系是針對最主要語義內容上的劃分,無法體現其它維度的信息。如服飾、場景、性別等維度不能通過這個標籤體系來體現。通過這個標籤體系訓練網絡無法學習到其它維度的特徵表達。

針對以上三個問題我們提出了多維度多級標籤體系。「多維度」指可以根據業務需求給標籤體系增加維度;「多級」體現在它是分級的,建立第一層級時要在視覺上是可分的,如刺繡、美妝、手指舞等這些類別在視覺上都和自拍比較相似,就將這些類別在第一層級分為一個類,保證視覺可分性。

但是,多維度多級標籤體系會帶來一些新的問題。首先,海量數據都進行多維度打標,標註成本太高。其次,我們採取的模型網絡結構是級聯的方式,每個第一層級的類別都有相應的第二層級模型進行特徵提取,模型數量很多,計算複雜度也會很高。為解決這兩個問題,我們在數據標註和網絡設計兩方面進行了優化。

數據

數據方面我們採用自動標註的方法,降低標註成本。如對一批已經標註了內容標籤的視頻數據,我們需要對它進行服飾維度的打標。那麼自動標註的流程是:

1. 標註少量的數據。

2. 用少量數據訓練單獨的分類器,通過調整置信度等方式使分類器的準確率在 99% 以上,即該分類器輸出結果置信度高於某閾值則結果是可信的。

3. 用這個分類器對數據進行自動標註,置信度高的部分保留它們的服飾標籤。置信度低的這部分由於不確信服飾標籤是否準確,所以服飾標籤統一記為 -1。在網絡更新的時候這部分數據只更新內容標籤的損失,不更新服飾標籤損失。

網絡 

為了使視頻特徵可以包含多維度的信息,訓練時採用多標籤聯合訓練的方法,減少多維度的模型複雜度。

圖 8

針對上文提到的二級模型計算複雜度高的問題,我們採用共享特徵的方法進行優化。即對視頻網絡提取共享的基礎特徵,共享特徵先送入一級類目模型進行分類和特徵提取,根據一級類目模型分類結果調用相應的二級類目模型進行特徵提取。採用 MobileNet 作為基礎網絡,每個視頻提取 5 幀數據,推理兩級模型,在 Titan X 上可以到達 100 個視頻/秒的處理速度。

訓練

在網絡訓練的階段採取 Triplet loss 的方式增強特徵的表達能力。Triplet loss 會拉近相似視頻之間特徵的距離,拉遠不相似視頻間的距離。

圖 9

訓練 Triplet loss 的時候如何有效選取正負樣本對是一個比較關鍵的問題。我們通過提取間隔幀的方式選取正樣本視頻,假設一個視頻提取 10 幀,其中第 1、3、5、7 、9 幀作為目標視頻截幀,第 2、4、6、8、10 幀作為正樣本視頻截幀,而負樣本視頻截幀來自不同類別的其它視頻。這樣做的好處有兩點:1. 正樣本視頻與目標視頻比較相似,容易收斂;2. 無需標註,減少標註成本。

預測

在得到特徵哈希碼之後,我們通過類別掩碼的處理方式提高檢索準確率。類別掩碼的作用是隱去低貢獻度的特徵位,保留重要的特徵位。 

圖 10

如圖 10 所示,我們認為特徵不同的位置之間存在分工。而找到重要特徵的比特位置所需要的信息保存在網絡最後一層的權重參數裡。

圖 11

圖 11 展示了類別掩碼的提取方法,中間部分是網絡的分類層權重參數。它的形狀等於類別個數乘以特徵長度,權重的每一列都代表著相應的類別。當我們把視頻輸入到網絡裡得到它的類別後就可以找出相對應的類別權重,對這列權重值取絕對值,從大到小進行排序,我們發現這些絕對值比較大的權重位置就是哈希特徵中比較重要的位置。

關於類別掩碼的細節描述可參考論文《Deep Hashing with Category Mask for Fast Video Retrieval》

論文地址:https://arxiv.org/pdf/1712.08315.pdf

圖 12

圖 12 展示了網絡的整體流程。採用多標籤聯合訓練的方式,加上 Triplet loss 提升表達能力,網絡結構採用級聯模型以及共享特徵的方法。最後採用類別掩碼提高檢索精度。

效果

圖 13

圖 13 展示了該模型的準確率和檢索效果圖。其中檢索效果圖裡左上角的視頻為目標視頻,其後為檢索結果。

 / DeepHash 多媒體檢索服務 / 

前面提到 DeepHash 系統包含兩大模塊:算法和服務。前面以美拍視頻為例,介紹了我們視頻哈希特徵提取算法。接下來我們介紹 DeepHash 系統的服務部分。

DeepHash 服務分為離線任務和在線任務。離線任務負責生成海量視頻數據的哈希碼,作為目標特徵庫。具體內容包括模型訓練和特徵生成兩個模塊。UGC 短視頻數據具有較強的時效性,不同時間段的視頻主題內容不同,所以業務上需要使用最新數據定期訓練並更新模型。在得到新的網絡模型之後,需要批量處理歷史視頻生成新的哈希碼,並更新到目標特徵庫中。

在線任務負責實時處理檢索請求,並將相似結果返回給調用方。當一個檢索請求過來,查詢模塊會先去海量目標特徵庫中查詢當前請求的視頻哈希是否存在,如果存在,則使用當前哈希碼,與目標特徵庫的哈希碼計算距離,返回 top 相似結果;如果不存在,那麼服務會調用預測模型,提取該視頻的哈希碼,使用該哈希碼到目標庫裡檢索,同時將預測得到的哈希碼加入目標特徵庫。

架構演化

DeepHash 服務從最初的單庫熱門池視頻支持到最新版本能支撐全量視頻檢索,經歷了三個階段的版本迭代和優化。

圖 14

V1.0 最初版本運行在單節點上,只對於特徵庫進行分片、並行查找的優化,該版本支持百萬以內的基礎特徵庫檢索。

V2.0 版本支持更多形態的媒體數據的檢索,在這個版本我們接入了音頻特徵提取算法。同時支持視頻和音頻兩種形式的相似檢索。為了支持多種類型的媒體特徵,V2.0 進行了索引統一,對於基礎特徵庫進行分組分片 (分組:分類,先定位到類別,再進行數據分片查詢),同時提高檢索穩定性。視頻截幀採用異步調用方式減少 IO 阻塞。

V3.0 是目前正在開發的版本,運行在容器化集群上,同時進行了檢索集群化的優化,目標是支持億級的海量特徵基礎庫的實時檢索。

圖 15

圖 15 是檢索集群的業務邏輯分層結構。其中,代理層負責請求分發,高並發時可無狀態擴容;業務層對數據進行預處理包裝、調用數據層的檢索服務,並把結果封裝成用戶可讀的形式;數據層運行檢索算法,分片加載特徵庫數據,進行並行檢索,保證檢索的時效性、穩定性。

性能

接下來我們展示 DeepHash 系統的檢索性能。存儲性能上,使用一個 128 位的哈希碼表示一個視頻,存儲 1 億條視頻,需要的存儲空間只有不到 1.5 GB。檢索速度上,運行 8 個實例,對 100 萬的基礎特徵庫進行全量視頻檢索,需要 0.35 S;使用 50 個實例,對 3 億的基礎特徵庫進行全量視頻檢索,只需要 3 秒。

圖 16:DeepHash 實時搜尋引擎解決方案

展望

DeepHash 是一個通用型多媒體檢索系統,除了已經支持的視頻和音頻相似性檢索,接下來會接入更多類型的媒體數據,如增加對圖像和文本等數據的檢索支持。

 / 業務應用 / 

目前 DeepHash 系統正在服務於推薦業務中的相似視頻檢索和運營業務中的視頻去重。接下來也會接入審核業務。

圖 17

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • Shin』ichi Satoh:多媒體檢索的快速、靈活、可擴展的未來
    Shin』ichi Satoh是東京大學信息工程博士,日本國立情報學研究所多媒體資訊研究部教授,研究方向包括圖像和視頻分析與資料庫建設及管理、圖像和視頻檢索以及基於圖像和視頻分析的知識發現。現場,Shin』ichi Satoh以"Fast, Flexible, and Scalable Multimedia Retrieval」為題,介紹了四種檢索方法。
  • CCKS 2020「基於標題的大規模商品實體檢索」競賽冠軍,DeepBlueAI...
    原創 Synced 機器之心機器之心發布作者:羅志鵬(深蘭北京 AI 研發中心)這篇文章介紹了 DeepBlueAI 團隊在第十四屆全國知識圖譜與語義計算大會(CCKS 2020)中「基於標題的大規模商品實體檢索
  • 簡單介紹多媒體技術的作用及多媒體計算機系統
    標準化:多媒體標準化。那麼,多媒體技術的作用是什麼呢?小編通過搜集整理資料,對有關多媒體技術的作用及不同多媒體計算機系統作了簡單的歸納總結。多媒體技術涉及的內容多媒體數據壓縮:多模態轉換、壓縮編碼;多媒體處理:音頻信息處理,如音樂合成、語音識別、文字與語音相互轉換;圖像處理,虛擬實境;多媒體數據存儲:多媒體資料庫;多媒體數據檢索:基於內容的圖像檢索,視頻檢索;多媒體著作工具:多媒體同步、超媒體和超文本;多媒體通信與分布式多媒體
  • 多媒體技術運用及主要特點
    多媒體信息的交互性主要針對用戶而言,指的是用 戶在標引、加工、著錄、存儲、檢索利用時。多媒體信息系統能夠提供更加有效地控制及使用 信息的手段和空間。交互可以更有效地控制和使用信息,增加對信息的理解。當引入多媒 體技術後,藉助交互性,用戶可以獲得更多的信息。提高對信息的注意力和理解,延長信息保 留的時間。
  • 美圖IT 老兵:關於大規模圖片處理和全球雲端處理架構思考
    5 月 25 日,全球最具影響力的高端技術人學習成長社交平臺——TGO 鯤鵬會邀請了不同領域的技術管理者,從案例和實踐出發,一起分享討論自己在架構設計方面的想法和寶貴經驗,深入解讀可擴展、高可用架構。在活動現場,美圖公司技術總監王靜波結合美圖公司現狀為大家分享了在大規模的場景及其需要支撐全球用戶的場景下,美圖如何運用面向未來的雲端流程處理系統,從根本上解決處理時長、可用性和成本等問題。6 月 14—15 日,由 TGO 鯤鵬會主辦的 GTLC 全球技術領導力峰會總站將在上海舉行。
  • 多媒體技術特徵有哪些_多媒體技術的關鍵特性介紹
    多媒體技術是指以數位化為基礎,能夠對多種媒體信息進行採集、加工處理、存儲、和傳遞,並能使各種媒體信息之間建立起有機的邏輯聯繫,集成為一個具有良好交互性的系統技術。 多媒體技術是利用計算機技術把聲、文、圖像等多媒體集合成一體的技術,它具有如下的主要特徵: (1)交互性。交互性是多媒體技術的關鍵特徵。它使用戶可以更有效地控制和使用信息,增加對信息的注意和理解。它體現了在通信系統中人與系統之間的相互控制能力。 (2)同步性。指的是在多媒體通信終端上顯現的圖像、聲音和文字是以同步方式工作的。
  • 圖解MySQL | [原理解析] Adaptive Hash Index 是如何建立的
    這就是 AHI(中文名:自適應哈希索引)中"自適應"的用途:建立一個"不大不小剛剛好"的哈希表。本文主要討論 MySQL 是如何建立起一個"剛剛好"的 AHI 的,如圖 1 所示:需要經歷三個關卡,才能為某個數據頁建立 AHI,之後的查詢才能使用到該 AHI。AHI 是為某個索引樹建立的(當該索引樹層數過多時,AHI 才能發揮效用)。如
  • 美圖秀秀與華為合作:提升美圖秀秀App相機功能在華為手機上表現
    昨日,美圖方面公布,日前在2019年華為開發者大會,為了進一步滿足用戶的專業化需求,美圖秀秀已經與華為合作,美圖可以使用華為多媒體能力提升美圖秀秀App相機功能在華為手機上表現。美圖秀秀華為技術負責人現場表示,「美圖秀秀在修圖界的實力與地位毋庸置疑,其相機功能的升級迭代一直在追求自然的質感和相機的創新玩法。有不少華為用戶經常使用美圖秀秀相機拍照,於是我們邀請美圖秀秀團隊為此做了專門的優化和強化。」
  • 基於深度學習的商品檢索技術
    主要從事商品檢索技術的研發。所在的識圖策略組包括商品搜索、相似搜索、相同搜索與圖像猜詞等方向。摘要商品檢索是一門綜合了物體檢測、圖像分類以及特徵學習的技術。近期,很多研究者成功地將深度學習方法應用到這個領域。
  • 第二屆中國人工智慧·多媒體信息識別技術大賽在廈門啟動
    人民網廈門9月17日電(陳博)9月17日下午,由中央網信辦、公安部指導,廈門市人民政府主辦的第二屆中國人工智慧·多媒體信息識別技術大賽在廈門啟動。啟動現場,中央網信辦副主任趙澤良、公安部副部長林銳、大賽專家委主任潘雲鶴院士和組委會主席倪光南院士分別發表了視頻致辭。
  • 如何使用Pandas處理超過內存容量的大規模數據
    處理大規模數據集時常是棘手的事情,尤其在內存無法完全加載數據的情況下。在資源受限的情況下,可以使用 Python Pandas 提供的一些功能,降低加載數據集的內存佔用。可用技術包括壓縮、索引和數據分塊。 開展數據科學項目中的一個重要步驟,就是從 API 下載數據並加載到本地內存,之後才能處理數據。在上述過程中需要解決一些問題,其中之一就是數據量過大。
  • 2014年甘肅省三支一扶考試公共基礎:多媒體的基本概念及關鍵技術
    利用計算機及相應的多媒體設備,採用數位化處理技術,將文字、聲音、圖形、圖像、動畫和視頻等多種媒體有機結合起來進行處理的技術。三、多媒體的關鍵技術1.多媒體數據存儲技術2.多媒體數據壓縮/解壓縮技術3.虛擬實境技術:利用計算機生成一種模擬環境,創建了一種適人化的多維信息空間。
  • 數據結構-PHP 哈希表(Hash Table)的實現
    $hash; for ($i = 0; $i < $len; $i++) { $h = $hash << 5; $h -= $hash; $h += ord($str[$i]); $hash = $h;
  • 重學算法:Hash 算法原理及應用漫談
    點擊藍色「五分鐘學算法」關注我喲加個「星標」,天天中午 12:15,一起學算法本文作者:jeffhe,騰訊 IEG 開發工程師提到hash,相信大多數同學都不會陌生,之前很火現在也依舊很火的技術區塊鏈背後的底層原理之一就是hash,下面就從hash算法的原理和實際應用等幾個角度,對hash算法進行一個講解。
  • 你了解HASH是什麼東東嗎?
    檢索時,用同樣的方法計算地址,然後到相應的單元裡去取要找的結點。通過散列方法可以對結點進行快速檢索。散列(hash,也稱「哈希」)是一種重要的存儲方式,也是一種常見的檢索方法。按散列存儲方式構造的存儲結構稱為散列表(hash table)。散列表中的一個位置稱為槽(slot)。散列技術的核心是散列函數(hash function)。
  • java工程師必知必會的 hashcode 和 hash 算法!
    限時折扣 99元(原價199元)僅限 7.22 ~ 7.28 預售周本文來源頭條號:實用架構技術自從有了阿里的規約插件,每次樓主都要初始化容量,如果我們預計我們的散列表中有2個數據,那麼我就初始化容量為2嘛?
  • ElasticSearch 億級數據檢索案例實戰!
    分片備份,用於保障數據安全與分擔檢索壓力ES依賴一個重要的組件Lucene,關於數據結構的優化通常來說是對Lucene的優化,它是集群的一個存儲於檢索工作單元,結構如下圖:在Lucene中,分為索引(錄入)與檢索(查詢)兩部分,索引部分包含 分詞器
  • 【譯】Oracle調優技巧22:Hash Outer Join
    這種方式的邏輯活動圖如下所示:從父表中讀取所有需要的數據,應用 hash 函數後在 RAM 中建立 hash 表。如果驅動表無法在RAM中一次性執行完hash( in single pass,即at one shot or one go),那麼hash表中的一部分會溢出到磁碟上(實際上,這裡將使用臨時表空間(TEMP tablespace )來保存驅動表中溢出的數據集)。
  • DataFunCon:2020大數據、AI的最新技術實踐
    本次主要分享愛奇藝在視頻精彩度分析中的技術方案,並簡單介紹典型應用場景。嘉賓簡介:愛奇藝科學家,智能平臺部視頻分析組負責人,負責對視頻內容的理解和生成,並應用到廣告、創作、分發等業務。嘉賓簡介:劉林,資深搜索算法專家,目前就職於京東搜索與推薦平臺部,擔任搜索算法總監。14年加入京東以來一直從事電商搜索相關領域的研究應用和實踐開發工作,對搜索系統和算法在電商行業的演進和發展有豐富的實戰經驗。
  • Python文檔精要研讀系列:hash函數
    Python中的hash函數用於求取一個字符串或者數值的哈希值,由於Python中任何數據類型都可以轉換為字符串,所以我們利用這個函數來進行簡單的哈希值計算,比如:hash('test')如此便可以求得字符串'test'的哈希值