詳解Facebook全新圖像識別系統:無需依賴標記的自由搜索
Facebook 一直致力於讓用戶能夠輕鬆搜索社交網路上的圖片和視頻內容,而無需依靠手動打上的標籤。昨天,該公司的應用機器學習團隊負責人 Joaquin Qui?onero Candela 宣布這一夢想終於得以實現,新的計算機視覺平台將從兩個方面改善社交網路上的用戶體驗:基於圖片本身(而不是圖片標籤和拍照時間)的搜索;升級的自動圖片描述系統(可向視覺障礙者描述圖片內容)。
回想一下你在社交網路中發的上條信息,內容很可能是一張照片或一個視頻。但是,直到最近,在線搜索還一直是文本驅動的技術,即便你搜索的是圖片。一張圖片是否能夠被找到還得依賴描述充分的標籤或恰當的圖注。
技術正在改變,我們已經將計算機視覺推向了下一個階段,理解像素級別的圖像內容。這有助於我們的系統做一些類似於識別圖像內容、場景,裡面是否包含著名地標的事情。這反過來也會幫助我們為視力受損的人更好地描述圖片,以及為圖像和視頻搜索提供更好的結果。
建立「AI 工廠」
為了將人工智慧納入到 Facebook 工程中來,我們首先需要一個能讓我們的工程師大規模利用的通用目的平台。這個平台叫 FBLearner Flow,設計這個系統是為了讓打造機器學習流程的工程師不需要再擔心硬體限制或因為實時流量而造成的服務質量問題。目前我們每個月要在 FBLearner Flow 上做 120 萬次人工智慧實驗,次數要比一年之前多 6 倍。
這個平台應用的越來越廣,我們正在其之上不斷探索。從工具到機器學習的自動化過程,再到專用的內容理解引擎,我們已經建立了一個活躍的生態系統,讓工程師編寫能多機並行的訓練工作流,因此任何一家公司的任何一位工程師都能使用它。
計算機視覺平台
FBLearner Flow 平台啟動後作為 Facebook AI Research 的一個小研究項目,當它達到能投入生產的規模時,該平台和團隊轉移到了 Applied Machine Learning 團隊。它現在是 Facebook 計算機視覺團隊的引擎。
建立在 FBLearner Flow 之上的 Lumos,是我們為圖像和視頻理解打造的平台。Facebook 的工程師們無需為使用 Lumos 訓練或布置一個新模型而去參加深度學習或計算機視覺的訓練。通過我們給它的新的標籤數據,以及從我們團隊自己建立的應用中來的經過注釋的數據,Lumos 平台一直在改善。
深度學習的進展已經讓我們在圖像分類上做出了巨大的提升——像「圖像中是什麼」和「物體在哪裡?」這樣的問題,系統的回答已經比以前精確很多了。我們設計出了能檢測並分割給定圖像中對象的技術,推進了這個方向上的研究。
當這些技術被應用到 Facebook 中時,照片就可以通過一個能分割圖像並識別其中物體和場景的深度學習引擎,並給這張照片附上更多的意義。這就為我們提供了一個豐富的數據集,Facebook 的任何產品或服務都可以使用。數十個團隊已經在 Lumos 上訓練和部署了 200 多個視覺模型,他們的目的包括檢測敏感內容,過濾垃圾郵件以及自動圖像描述。它的應用的範圍廣泛,從我們的 Connectivity Labs 到搜索團隊到 Accessibility 團隊都在使用。
用語言描述一切
我們目前正在將這個圖像理解成果應用到為照片提升自動轉換文本(automatic alt text,AAT),一種能為視覺受損的人描述照片內容的技術。直到最近,這些描述還智描述照片中的物體。今天我們宣布,我們添加了一組 12 個動作,所以圖像描述將會包括「人在行走」、「人在跳舞」、「人在騎馬」、「人在玩樂器」等這樣的描述。
AAT 的這次更新包括兩個部分,使用 Lumos 能夠實現快速、可升級的迭代。Facebook 上有相當比例的共享照片都包含了人物,因此,我們專註於提供涉及人物的自動描述。該人工智慧團隊收集了一個 130,000 張分享在 Facebook 上涉及人物的公開照片樣本集。人類注釋者被要求寫一個照片的單行描述,假定為一個視力受損的朋友描述照片。然後,我們利用這些注釋建立一個機器學習模型,可以無縫地推斷照片中人的行動。該模型被用於 AAT 的下游技術。
Facebook 對於「騎馬」概念各圖像的評分
Lumos 通過使用一個界面利用之前另一個任務中經過訓練的模型中帶有標籤的樣例,允許在該任務上快速迭代。例如:如果我們正在訓練一個「人騎在一匹馬上」的分類器,並想要添加包含馬(沒人騎的馬)的圖像的樣例,我們就能從一個模型中使用一部分有標籤的例子來判斷一張圖片是包含一匹馬並對其分類。
相似模型對同一張圖的分數對比
Lumos 允許通過檢索和聚類的組合來生成訓練數據。給定一組標籤或搜索項,該平台可以檢索匹配這些標籤的字幕的公共圖像的分數。這些圖像隨後被語義聚類,以便快速進行標記。Lumos 用戶可以選擇注釋集群作為其用例的正選或反選例子,在集群級別或單獨為集群中的每個圖像進行手動標記。這有助於開始一項分類任務,隨後通過迭代訓練以獲得更高精度/回憶的分類器。
AAT 應用非常重要,因為它可以為 Facebook 的視障用戶帶來更棒的訪問體驗,其他應用也能為用戶提供一些方便之處,如發現一個新的搜索參數。
更具描述性的照片搜索
通過 Lumos,我們可以為整個社交網路提供視覺搜索功能。假如你在回想自己的美好記憶,你很難指出具體的事件,更不用說拍攝的人了。而通過 Lumos,我們構建了一個全新的搜索系統,它可以利用圖理解序大量信息,讓你可以輕鬆地搜索到自己想要的東西。換句話說,如果你搜索「穿黑色襯衫的照片」,系統可以「看到」哪些照片中出現了黑色襯衫,並將相關搜索結果呈現在你的眼前,即使這些圖片並沒有貼上相應的標籤。
Facebook 的自動圖像分類器,就像 AAT 的例子中那樣——通過圖片的內容而不是標籤來搜索你自己和朋友圈內的所有照片。
Building scalable systems - 騰訊視頻 https://v.qq.com/x/page/t0371a0fy4f.html
為了確保搜索結果與查詢的內容有關,系統必須對照片的內容有很好的理解。因此,開發團隊使用了最新的深度學習技術,在數十億照片中學習特徵以理解圖片的內容。圖片搜索團隊主要使用了以下表示方法來讓圖片能有更好的排序結果:
對象識別:底層圖像識別模型是一個深度神經網路,具有數百萬可學習的參數。它構建在最先進的深度殘差網路之上,使用了數千萬張帶有標記的圖片進行了識別訓練。它可以自動識別大量概念,包括場景(如花園)、物體(如汽車)、動物(如企鵝)、地區和經典(如金門大橋),也包括衣物(如圍巾)。
圖嵌入:系統同時生成高級語義特徵,這是深度神經網路最後幾層輸出的量化版本。這些信息對於提升搜索結果準確性非常有用。
原始語義特徵是高維浮動向量,它使用了大量的存儲空間用於索引——尤其是當我們要索引大量照片時。通過利用量化技術,特徵被進一步壓縮成數個位元組,同時仍保留絕大多數語義。被壓縮的表徵被用作照片的緊湊嵌入,並且可以直接用於排序,檢索和刪除重複內容等任務。
構建這種方式的辦法是從圖像中提取預測的概念和類別,然後解析搜索查詢以鏈接實體並提取概念,最後使用兩組概念之間的相似性函數來確定相關性。
這是一個好的開始,但開發團隊並沒有停止使用預測的圖像類別:我們更進一步,使用聯合嵌入對圖像進行查詢,顯著提高了搜索和回憶精度。
我們把它作為一個多模態學習的排序問題。此外,我們還使用圖像之間的相似性度量來確保圖像搜索結果是多樣化的。
展望下一步
Lumos 圖像分類器的應用還需要大量團隊通力協作。雖然目前的發展值得肯定,但我們僅僅觸及了自動計算機視覺的表面,後面還有更長的路要走。隨著計算機視覺模型越來越精細,Facebook 正在不斷研究如何處理視頻及其他能讓人身臨其境的表現形式,Lumos 將幫助我們以穩定、快速、可擴展的方式揭開所有這些可能性,它會為將來更為豐富的產品體驗鋪平道路。
選自code.Facebook機器之心編譯
推薦閱讀:
※圖像識別最新的進展有哪些?目前這個領域缺乏的人才多不多?
※Facebook 的人工智慧實驗室 (FAIR) 有哪些厲害的大牛和技術積累?
※圖像學習-驗證碼識別
※matlab對圖像進行濾波,濾波器應該是個幾乘幾的矩陣?
※《Deep Layer Aggregation》論文筆記