?姓名:樊松松
?學(xué)號:17021211234
?轉(zhuǎn)載自https://www.leiphone.com/news/201807/ApUfHo92dZfCSRuY.html,有刪節(jié)
【嵌牛導(dǎo)讀】:本文以美拍業(yè)務(wù)為例贮匕,介紹美圖團隊在海量短視頻數(shù)據(jù)的內(nèi)容分析理解和大規(guī)模檢索技術(shù)方向的探索和實踐。
【嵌牛鼻子】:數(shù)據(jù)檢索技術(shù)DeepHash
【嵌牛提問】:DeepHash還有更高性能的應(yīng)用嗎?
【嵌牛正文】:
「美圖短視頻實時分類挑戰(zhàn)賽 MTSVRC」也于近日正式啟動铅乡,本次挑戰(zhàn)賽由中國模式識別與計算機視覺學(xué)術(shù)會議主辦夏漱,由美圖公司承辦,中科院自動化所協(xié)辦霉囚,詳情可點擊往期內(nèi)容了解谭溉。在雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))旗下學(xué)術(shù)頻道AI科技評論數(shù)據(jù)庫產(chǎn)品「AI 影響因子」中墙懂,美圖云視覺技術(shù)部門憑借 AAAI 2018 oral 論文和舉辦相關(guān)賽事表現(xiàn)不俗,本次憑借獨家技術(shù)解讀也獲得了相應(yīng)加分扮念。
美圖是一家擁有海量多媒體數(shù)據(jù)的公司损搬,如何有效分析理解這些數(shù)據(jù)內(nèi)容并從中挖掘出有效信息,對我們提出了重大挑戰(zhàn)柜与。本文以美拍業(yè)務(wù)為例巧勤,介紹我們在海量短視頻數(shù)據(jù)的內(nèi)容分析理解和大規(guī)模檢索技術(shù)方向的探索和實踐。
多媒體數(shù)據(jù)相似性檢索可以簡單理解為用不同媒體素材將其進行特征表達(dá)弄匕,然后在相應(yīng)的特征空間里進行查找和排序颅悉。特征表達(dá)有兩種方式:一種是通過傳統(tǒng)方法提取的視覺特征,比如關(guān)鍵點特征迁匠、顏色直方圖等剩瓶;另一個是基于深度學(xué)習(xí)提取它的底層基礎(chǔ)特征或高層語義特征(深度特征)。美圖 DeepHash 是基于深度哈希技術(shù)的大規(guī)模多媒體數(shù)據(jù)檢索系統(tǒng)城丧。系統(tǒng)依托于海量多媒體數(shù)據(jù)延曙,分為算法和服務(wù)兩大模塊。
?/ DeepHash 視頻哈希算法 /?
我們針對美拍短視頻內(nèi)容特性亡哄,從標(biāo)簽制定枝缔,數(shù)據(jù)處理到算法網(wǎng)絡(luò)設(shè)計等層面提出一系列定制化的算法優(yōu)化策略。
在討論具體技術(shù)方案之前磺平,我們先來思考一個問題:如何描述一個視頻魂仍?在使用視頻哈希技術(shù)之前拐辽,我們采用的是用標(biāo)簽體系來描述視頻拣挪。圖 1 所展示的是美拍最常見的標(biāo)簽體系,音樂俱诸、寵物菠劝、舞蹈、教程等睁搭,用標(biāo)簽體系描述視頻的缺陷是:標(biāo)簽主要是對視頻內(nèi)容進行概括赶诊、描述性的詞匯笼平,包含信息量較少,一些細(xì)節(jié)的信息是無法體現(xiàn)的舔痪,標(biāo)簽是離散型的描述寓调。而人類是如何描述一個視頻呢?以左上角視頻截圖為例锄码,人類看了會說:它是兩個穿著淡藍(lán)色衣服的小女孩在彈著吉他唱歌夺英。由此可發(fā)現(xiàn),人類是用視覺特征來描述視頻滋捶,所包含的信息豐富痛悯、維度多樣,是連續(xù)型的描述重窟,顯然這是一種更合理的描述方式载萌。
圖 1
進一步說,用標(biāo)簽來描述視頻存在以下問題巡扇。
1. 信息表達(dá)能力弱扭仁,無法體現(xiàn)更細(xì)粒度的信息。如圖 2 所示的視頻截圖厅翔,是一個穿著綠色漢服的女生在公園里跳舞斋枢。它的內(nèi)容標(biāo)簽是舞蹈,很難通過標(biāo)簽讀取出其他信息知给。如果嘗試更復(fù)雜的標(biāo)簽體系瓤帚,比如加上場景、物體涩赢、性別等維度戈次,可以發(fā)現(xiàn)很難窮舉出所有的狀況,即使做到標(biāo)注成本也非常大筒扒。
圖 2
2. 很難比較信息之間的相似性怯邪,信息難以度量。如圖 3 所示的三個視頻標(biāo)簽都是「狗」花墩,很難通過標(biāo)簽去辨別哪兩個視頻更相似悬秉,如果用視覺特征很容易就發(fā)現(xiàn)左邊的視頻與右上角的視頻更相似。當(dāng)然我們可以用狗的種類和數(shù)量來計算兩幅圖之間的相似性冰蘑,但是當(dāng)圖片內(nèi)容比較復(fù)雜和泌,物體較多時,這種方式難以適用祠肥。
圖 3
使用特征表達(dá)視頻
視頻哈希算法使用視覺特征來描述視頻武氓,它具有以下幾個特性:
1. 多樣性。特征包含更多維度的信息,信息量更多县恕,可表達(dá)的內(nèi)容是多樣的东羹;
2. 魯棒性。如果兩個視頻比較相似忠烛,它們表達(dá)出來的特征也比較相似属提,提取出來的特征也應(yīng)該是穩(wěn)定的;
3. 距離可計算美尸。特征之間是可以計算距離的垒拢,用距離描述兩個特征的相似性,距離越小火惊,視頻內(nèi)容越相似求类。
基于特征的視頻檢索技術(shù)的應(yīng)用場景廣泛,如視覺相似視頻推薦屹耐,特定視頻檢索尸疆,視頻審核,視頻去重等等惶岭;此外寿弱,還可以利用提取的視頻特征進行特征聚類和內(nèi)容挖掘,挖掘其中的熱點內(nèi)容和發(fā)現(xiàn)新類按灶。
特征表達(dá)方式
常用特征表達(dá)方式有兩種:浮點型特征和二進制特征症革。
二進制特征在存儲、檢索速度兩方面有顯著優(yōu)勢:使用二進制存儲鸯旁,十分高效噪矛;計算距離使用漢明距離,檢索速度更快铺罢。而浮點型特征距離計算一般使用歐式距離或余弦距離艇挨,計算復(fù)雜度較高,檢索速度較慢韭赘;另外浮點特征還存在極值干擾的問題缩滨,會影響距離計算。二進制特征都是 0 和 1泉瞻,特征較為穩(wěn)定脉漏。基于以上情況袖牙,我們業(yè)務(wù)中采取了基于二進制形式的特征表達(dá)方式侧巨。
哈希特征提取
圖 4
視頻哈希特征的一般提取流程為:卷積神經(jīng)網(wǎng)絡(luò)提取視頻特征,將特征映射成固定長度的浮點型特征贼陶,在浮點型特征后面接 sigmoid 層映射到 [0,1] 區(qū)間范圍內(nèi)刃泡,通過閾值化量化為二進制形式巧娱。
用于提取哈希特征的網(wǎng)絡(luò)模型的訓(xùn)練可以分為有監(jiān)督和無監(jiān)督兩種形式碉怔。有監(jiān)督學(xué)習(xí)基于有標(biāo)簽的數(shù)據(jù)進行訓(xùn)練烘贴,加以特定的損失函數(shù)提升特征的表達(dá)能力。它的特點是特征表達(dá)是可控的撮胧,可以通過標(biāo)簽來告訴這個網(wǎng)絡(luò)重點學(xué)習(xí)哪些特征桨踪;無監(jiān)督學(xué)習(xí)基于無標(biāo)簽數(shù)據(jù)進行訓(xùn)練,通常通過圖像自身變換學(xué)習(xí)特征表達(dá)能力芹啥,所以特點就是特征表達(dá)不好控制锻离,較難干預(yù)網(wǎng)絡(luò)應(yīng)該學(xué)習(xí)哪種特征。無監(jiān)督學(xué)習(xí)目前還處于學(xué)術(shù)研究階段墓怀,業(yè)務(wù)難以直接應(yīng)用汽纠。因此,我們當(dāng)前采用的方案也是基于有監(jiān)督的視頻哈希算法傀履。
圖 5
美拍視頻哈希算法流程主要分為五個模塊:標(biāo)簽虱朵、數(shù)據(jù)、網(wǎng)絡(luò)钓账、訓(xùn)練和預(yù)測碴犬。對于每個模塊,我們都基于美拍的數(shù)據(jù)特點和業(yè)務(wù)邏輯做出了一些定制化的優(yōu)化策略梆暮。下面分別介紹這五個模塊的相關(guān)工作服协。
標(biāo)簽
美拍有上百類的標(biāo)簽體系用于內(nèi)容運營,涵蓋了美拍短視頻常見的內(nèi)容和類別啦粹。但這些現(xiàn)業(yè)務(wù)標(biāo)簽并不適合直接拿來做算法的訓(xùn)練偿荷,主要存在以下問題:
1. 數(shù)據(jù)不均衡
圖 6 是美拍熱門視頻的標(biāo)簽分布,可以看出各個類別數(shù)據(jù)量極度不均衡唠椭。而在算法訓(xùn)練的時候如果有一些類別數(shù)據(jù)量比較小遭顶,那么網(wǎng)絡(luò)就很難學(xué)習(xí)到這些類別的特征學(xué)習(xí)表達(dá)能力。
圖 6
2. 視覺不可分
業(yè)務(wù)標(biāo)簽體系沒有針對視覺特性進行劃分泪蔫,造成不同類別的視頻在視覺上不可分棒旗。直接拿這種標(biāo)簽進行訓(xùn)練就會造成很多誤分,網(wǎng)絡(luò)難以學(xué)到各個類別之間的特點撩荣。
圖 7
3. 維度單一
業(yè)務(wù)標(biāo)簽體系是針對最主要語義內(nèi)容上的劃分铣揉,無法體現(xiàn)其它維度的信息。如服飾餐曹、場景逛拱、性別等維度不能通過這個標(biāo)簽體系來體現(xiàn)。通過這個標(biāo)簽體系訓(xùn)練網(wǎng)絡(luò)無法學(xué)習(xí)到其它維度的特征表達(dá)台猴。
針對以上三個問題我們提出了多維度多級標(biāo)簽體系朽合。「多維度」指可以根據(jù)業(yè)務(wù)需求給標(biāo)簽體系增加維度俱两;「多級」體現(xiàn)在它是分級的,建立第一層級時要在視覺上是可分的曹步,如刺繡宪彩、美妝、手指舞等這些類別在視覺上都和自拍比較相似讲婚,就將這些類別在第一層級分為一個類尿孔,保證視覺可分性。
但是筹麸,多維度多級標(biāo)簽體系會帶來一些新的問題活合。首先,海量數(shù)據(jù)都進行多維度打標(biāo)物赶,標(biāo)注成本太高白指。其次,我們采取的模型網(wǎng)絡(luò)結(jié)構(gòu)是級聯(lián)的方式酵紫,每個第一層級的類別都有相應(yīng)的第二層級模型進行特征提取告嘲,模型數(shù)量很多,計算復(fù)雜度也會很高憨闰。為解決這兩個問題状蜗,我們在數(shù)據(jù)標(biāo)注和網(wǎng)絡(luò)設(shè)計兩方面進行了優(yōu)化。
數(shù)據(jù)
數(shù)據(jù)方面我們采用自動標(biāo)注的方法鹉动,降低標(biāo)注成本轧坎。如對一批已經(jīng)標(biāo)注了內(nèi)容標(biāo)簽的視頻數(shù)據(jù),我們需要對它進行服飾維度的打標(biāo)泽示。那么自動標(biāo)注的流程是:
1. 標(biāo)注少量的數(shù)據(jù)缸血。
2. 用少量數(shù)據(jù)訓(xùn)練單獨的分類器,通過調(diào)整置信度等方式使分類器的準(zhǔn)確率在 99% 以上械筛,即該分類器輸出結(jié)果置信度高于某閾值則結(jié)果是可信的捎泻。
3. 用這個分類器對數(shù)據(jù)進行自動標(biāo)注,置信度高的部分保留它們的服飾標(biāo)簽埋哟。置信度低的這部分由于不確信服飾標(biāo)簽是否準(zhǔn)確,所以服飾標(biāo)簽統(tǒng)一記為 -1抛计。在網(wǎng)絡(luò)更新的時候這部分?jǐn)?shù)據(jù)只更新內(nèi)容標(biāo)簽的損失凝危,不更新服飾標(biāo)簽損失咏花。
網(wǎng)絡(luò)?
為了使視頻特征可以包含多維度的信息,訓(xùn)練時采用多標(biāo)簽聯(lián)合訓(xùn)練的方法,減少多維度的模型復(fù)雜度。
圖 8
針對上文提到的二級模型計算復(fù)雜度高的問題另假,我們采用共享特征的方法進行優(yōu)化。即對視頻網(wǎng)絡(luò)提取共享的基礎(chǔ)特征思杯,共享特征先送入一級類目模型進行分類和特征提取,根據(jù)一級類目模型分類結(jié)果調(diào)用相應(yīng)的二級類目模型進行特征提取。采用 MobileNet 作為基礎(chǔ)網(wǎng)絡(luò)于宙,每個視頻提取 5 幀數(shù)據(jù)谱俭,推理兩級模型术陶,在 Titan X 上可以到達(dá) 100 個視頻/秒的處理速度塘匣。
訓(xùn)練
在網(wǎng)絡(luò)訓(xùn)練的階段采取 Triplet loss 的方式增強特征的表達(dá)能力埠巨。Triplet loss 會拉近相似視頻之間特征的距離脱衙,拉遠(yuǎn)不相似視頻間的距離荤胁。
圖 9
訓(xùn)練 Triplet loss 的時候如何有效選取正負(fù)樣本對是一個比較關(guān)鍵的問題。我們通過提取間隔幀的方式選取正樣本視頻屎债,假設(shè)一個視頻提取 10 幀仅政,其中第 1垢油、3、5圆丹、7 滩愁、9 幀作為目標(biāo)視頻截幀,第 2辫封、4硝枉、6、8倦微、10 幀作為正樣本視頻截幀妻味,而負(fù)樣本視頻截幀來自不同類別的其它視頻。這樣做的好處有兩點:1. 正樣本視頻與目標(biāo)視頻比較相似璃诀,容易收斂弧可;2. 無需標(biāo)注指攒,減少標(biāo)注成本鸦致。
預(yù)測
在得到特征哈希碼之后氯庆,我們通過類別掩碼的處理方式提高檢索準(zhǔn)確率。類別掩碼的作用是隱去低貢獻(xiàn)度的特征位凿将,保留重要的特征位。?
圖 10
如圖 10 所示价脾,我們認(rèn)為特征不同的位置之間存在分工牧抵。而找到重要特征的比特位置所需要的信息保存在網(wǎng)絡(luò)最后一層的權(quán)重參數(shù)里。
圖 11
圖 11 展示了類別掩碼的提取方法侨把,中間部分是網(wǎng)絡(luò)的分類層權(quán)重參數(shù)犀变。它的形狀等于類別個數(shù)乘以特征長度,權(quán)重的每一列都代表著相應(yīng)的類別秋柄。當(dāng)我們把視頻輸入到網(wǎng)絡(luò)里得到它的類別后就可以找出相對應(yīng)的類別權(quán)重获枝,對這列權(quán)重值取絕對值,從大到小進行排序骇笔,我們發(fā)現(xiàn)這些絕對值比較大的權(quán)重位置就是哈希特征中比較重要的位置省店。
關(guān)于類別掩碼的細(xì)節(jié)描述可參考論文《Deep Hashing with Category Mask for Fast Video Retrieval》
論文地址:https://arxiv.org/pdf/1712.08315.pdf
圖 12
圖 12 展示了網(wǎng)絡(luò)的整體流程。采用多標(biāo)簽聯(lián)合訓(xùn)練的方式笨触,加上 Triplet loss 提升表達(dá)能力懦傍,網(wǎng)絡(luò)結(jié)構(gòu)采用級聯(lián)模型以及共享特征的方法。最后采用類別掩碼提高檢索精度芦劣。
效果
圖 13
圖 13 展示了該模型的準(zhǔn)確率和檢索效果圖粗俱。其中檢索效果圖里左上角的視頻為目標(biāo)視頻,其后為檢索結(jié)果虚吟。
?/ DeepHash 多媒體檢索服務(wù) /?
前面提到 DeepHash 系統(tǒng)包含兩大模塊:算法和服務(wù)寸认。前面以美拍視頻為例娱俺,介紹了我們視頻哈希特征提取算法。接下來我們介紹 DeepHash 系統(tǒng)的服務(wù)部分废麻。
DeepHash 服務(wù)分為離線任務(wù)和在線任務(wù)荠卷。離線任務(wù)負(fù)責(zé)生成海量視頻數(shù)據(jù)的哈希碼,作為目標(biāo)特征庫烛愧。具體內(nèi)容包括模型訓(xùn)練和特征生成兩個模塊油宜。UGC 短視頻數(shù)據(jù)具有較強的時效性,不同時間段的視頻主題內(nèi)容不同怜姿,所以業(yè)務(wù)上需要使用最新數(shù)據(jù)定期訓(xùn)練并更新模型慎冤。在得到新的網(wǎng)絡(luò)模型之后,需要批量處理歷史視頻生成新的哈希碼沧卢,并更新到目標(biāo)特征庫中蚁堤。
在線任務(wù)負(fù)責(zé)實時處理檢索請求,并將相似結(jié)果返回給調(diào)用方但狭。當(dāng)一個檢索請求過來披诗,查詢模塊會先去海量目標(biāo)特征庫中查詢當(dāng)前請求的視頻哈希是否存在,如果存在立磁,則使用當(dāng)前哈希碼呈队,與目標(biāo)特征庫的哈希碼計算距離,返回 top 相似結(jié)果唱歧;如果不存在宪摧,那么服務(wù)會調(diào)用預(yù)測模型,提取該視頻的哈希碼颅崩,使用該哈希碼到目標(biāo)庫里檢索几于,同時將預(yù)測得到的哈希碼加入目標(biāo)特征庫。
架構(gòu)演化
DeepHash 服務(wù)從最初的單庫熱門池視頻支持到最新版本能支撐全量視頻檢索沿后,經(jīng)歷了三個階段的版本迭代和優(yōu)化沿彭。
圖 14
V1.0 最初版本運行在單節(jié)點上,只對于特征庫進行分片得运、并行查找的優(yōu)化膝蜈,該版本支持百萬以內(nèi)的基礎(chǔ)特征庫檢索。
V2.0 版本支持更多形態(tài)的媒體數(shù)據(jù)的檢索熔掺,在這個版本我們接入了音頻特征提取算法饱搏。同時支持視頻和音頻兩種形式的相似檢索。為了支持多種類型的媒體特征置逻,V2.0 進行了索引統(tǒng)一推沸,對于基礎(chǔ)特征庫進行分組分片 (分組:分類,先定位到類別,再進行數(shù)據(jù)分片查詢)鬓催,同時提高檢索穩(wěn)定性肺素。視頻截幀采用異步調(diào)用方式減少 IO 阻塞。
V3.0 是目前正在開發(fā)的版本宇驾,運行在容器化集群上倍靡,同時進行了檢索集群化的優(yōu)化,目標(biāo)是支持億級的海量特征基礎(chǔ)庫的實時檢索课舍。
圖 15
圖 15 是檢索集群的業(yè)務(wù)邏輯分層結(jié)構(gòu)塌西。其中,代理層負(fù)責(zé)請求分發(fā)筝尾,高并發(fā)時可無狀態(tài)擴容捡需;業(yè)務(wù)層對數(shù)據(jù)進行預(yù)處理包裝、調(diào)用數(shù)據(jù)層的檢索服務(wù)筹淫,并把結(jié)果封裝成用戶可讀的形式站辉;數(shù)據(jù)層運行檢索算法,分片加載特征庫數(shù)據(jù)损姜,進行并行檢索饰剥,保證檢索的時效性、穩(wěn)定性薛匪。
性能
接下來我們展示 DeepHash 系統(tǒng)的檢索性能捐川。存儲性能上,使用一個 128 位的哈希碼表示一個視頻逸尖,存儲 1 億條視頻,需要的存儲空間只有不到 1.5 GB瘸右。檢索速度上娇跟,運行 8 個實例,對 100 萬的基礎(chǔ)特征庫進行全量視頻檢索太颤,需要 0.35 S苞俘;使用 50 個實例,對 3 億的基礎(chǔ)特征庫進行全量視頻檢索龄章,只需要 3 秒吃谣。
圖 16:DeepHash 實時搜索引擎解決方案
展望
DeepHash 是一個通用型多媒體檢索系統(tǒng),除了已經(jīng)支持的視頻和音頻相似性檢索做裙,接下來會接入更多類型的媒體數(shù)據(jù)岗憋,如增加對圖像和文本等數(shù)據(jù)的檢索支持。
?/ 業(yè)務(wù)應(yīng)用 /?
目前 DeepHash 系統(tǒng)正在服務(wù)于推薦業(yè)務(wù)中的相似視頻檢索和運營業(yè)務(wù)中的視頻去重锚贱。接下來也會接入審核業(yè)務(wù)仔戈。