丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

本文作者: AI研習(xí)社-譯站 2018-07-31 16:24
導(dǎo)語:會讀心的深度學(xué)習(xí),越來越知道你喜歡什么。

雷鋒網(wǎng)按:本文為 AI研習(xí)社 編譯的技術(shù)博客,原標(biāo)題 The unreasonable effectiveness of Deep Learning Representations,作者為 Emmanuel Ameisen 。

翻譯 |  付騰 王飛 汪鵬       校對 |  余杭       整理 | MY


手把手教你從零起步構(gòu)建自己的快速語義搜索模型

訓(xùn)練電腦以人類的方式去看圖片


為什么從相似性搜索做起?

一張圖片勝千言,甚至千行代碼。

很多的產(chǎn)品是基于我們的感知來吸引我們的。比如在瀏覽服裝網(wǎng)站上的服裝,尋找 Airbnb 上的假期租房,或者領(lǐng)養(yǎng)寵物時,物品的顏值往往是我們做決定的重要因素。想要預(yù)測我們喜歡什么樣的東西,看看我們對于事物的感知方法大概就能知道了,因此,這也是一個非常有價值的考量。

但是,如何讓計算機(jī)以人類的視角來理解圖片長久以來是計算機(jī)科學(xué)領(lǐng)域的一大挑戰(zhàn)。直到 2012 年,深度學(xué)習(xí)在某些感知類任務(wù)(比如圖像分類或者目標(biāo)探測)中開始慢慢地超過了傳統(tǒng)的機(jī)器學(xué)習(xí)方法(比如 方向梯度直方圖,HOG)。關(guān)于學(xué)界的這次轉(zhuǎn)變,一個主要的原因就要歸功于深度學(xué)習(xí)對于在足夠大訓(xùn)練數(shù)據(jù)集上面自動提取出有意義的表征的能力。

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

Pinterest 中的視覺搜索

這也是為什么很多開發(fā)團(tuán)隊,比如 PinterestStitchFix 以及 Flickr 等,開始使用深度學(xué)習(xí)來學(xué)習(xí)他們獲得的圖片當(dāng)中的表征,基于這些提取的表征以及用戶對于視覺內(nèi)容是否歡迎的反饋來為用戶提供內(nèi)容推薦。類似的,insight 的研究員也使用深度學(xué)習(xí)來建立一系列的模型,比如幫助用戶找到適合領(lǐng)養(yǎng)的貓咪,推薦適合購買的太陽鏡,或者搜索具體的藝術(shù)風(fēng)格。  

許多推薦系統(tǒng)是基于協(xié)同過濾的:利用用戶關(guān)聯(lián)來提出建議(“喜歡這個物品的用戶可能還喜歡···”)。但是,這類模型需要非常大量的數(shù)據(jù)才能比較準(zhǔn)確,而且這類模型在應(yīng)對新的還未被用戶瀏覽過的新物品的時候會表現(xiàn)不佳。物品表征是另一個解決辦法,那就是基于內(nèi)容的推薦系統(tǒng),這種推薦系統(tǒng)并不會受到上面提到的未被瀏覽的新物品問題的影響。

此外,這些表征允許消費(fèi)者有效地搜索圖像庫,(通過圖像查詢)來獲取與他們剛拍攝的自拍相似的圖像,或者搜索某些特定物品的照片,比如汽車(通過文本查詢)。這方面的常見示例包括 Google 反向圖片搜索服務(wù)以及 Google 圖片搜索服務(wù)。

根據(jù)我們?yōu)樵S多語義理解項目提供技術(shù)指導(dǎo)的經(jīng)驗,我們編寫了一個教程,讓讀者了解如何構(gòu)建自己的表征模型,包括圖像和文本數(shù)據(jù),以及如何有效地進(jìn)行基于相似性的搜索。到本文結(jié)束時,讀者自己應(yīng)該能夠從零起步構(gòu)建自己的快速語義搜索模型,無論數(shù)據(jù)集的大小如何。

本文配有一個帶有代碼注釋的 notebook,使用了 streamlit 和一個獨立的代碼庫來演示和使用所有相關(guān)技術(shù)。代碼可以自由使用,請讀者自便。


我們的計劃是什么?

來聊聊優(yōu)化吧

在機(jī)器學(xué)習(xí)中,有時也和軟件工程一樣,方法總比問題多,每種方法都有不同的權(quán)衡。如果我們正在進(jìn)行研究或本地的產(chǎn)品原型設(shè)計,我們可以暫時擺脫效率非常低的解決方案。但是如果我們的目標(biāo)是要構(gòu)建一個可維護(hù)和可擴(kuò)展的相似圖像搜索引擎,我們必須考慮到兩點:1. 如何適應(yīng)數(shù)據(jù)演變 2. 模型的運(yùn)行速度。

讓我們先想象幾種解決方案:

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

方案 1 的工作流程

方案 1:我們建立一個端對端的模型,這個模型使用了我們所有的模型進(jìn)行訓(xùn)練。這個模型的輸入是一個圖片,輸出一個數(shù)組,這個數(shù)組里的每個元素是輸入圖片和圖片訓(xùn)練集中的每一個圖片的相似性數(shù)值。模型的預(yù)測過程運(yùn)行速度快(因為是單獨的前向計算),但是我們每次添加了新的圖片到圖片訓(xùn)練集中就需要重新訓(xùn)練一個新的模型。我們同樣會在模型迭代的過程中碰到一個大問題就是模型的輸出包含太多的類,導(dǎo)致模型的正確優(yōu)化極端困難。這的確是一個很快的方案,但是在可擴(kuò)展性上有限制,不能擴(kuò)展到比較大的數(shù)據(jù)集上。此外,我們還需要手動給我們的訓(xùn)練集進(jìn)行圖片相似性的標(biāo)定,這將是極其耗時的一項工作。 

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

方案 2 的工作流程

方案 2:另外一種方案是建一個相似性預(yù)測模型,這個模型的輸入是兩張圖片,輸出是一個落在區(qū)間 0 到 1 范圍內(nèi)的相似性配對值。這些模型在大型數(shù)據(jù)集上也能比較準(zhǔn)確,但是卻受限于另一個可擴(kuò)展問題。我們經(jīng)常需要從一大堆的圖片集中找到相似的圖片,因此我們需要對我們的數(shù)據(jù)集中的所有可能圖片配對集運(yùn)行一次相似性模型。假設(shè)我們的模型是卷積神經(jīng)網(wǎng)絡(luò)(CNN),而且我們有不小的圖片量,那么整個系統(tǒng)的處理速度就太慢了,簡直無法忍受。此外,這種方案只能用于基于圖片相似性搜索,不能擴(kuò)展到基于文本的相似性搜索。這種方案可以擴(kuò)展到大數(shù)據(jù)集,但是總體的運(yùn)行時間太慢了。

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

方法3的工作流程圖

方案 3:有一種更簡單的方法,類似于字嵌入。如果我們?yōu)閳D像找到一個很有代表性的表示或者嵌入,我們就可以通過觀察它們的矢量彼此之間的距離來計算它們的相似性。這種類型,許多庫都實現(xiàn)了快速解決方案(我們將在這里使用 Annoy)。此外,如果我們能提前計算出我們數(shù)據(jù)庫中所有圖像的這些向量,那么這種方法便可表現(xiàn)出既快速(一次正向傳遞,一種有效的相似性搜索),又可擴(kuò)展的特點。最后,如果我們設(shè)法為我們的圖像和單詞找到常見的嵌入,我們可以使用它們來進(jìn)行文本到圖像的搜索!

由于其簡單性和高效性,第三種方法將成為本文的重點。


我們該怎樣實現(xiàn)這個過程?

那么,我們該如何在實際中使用深度學(xué)習(xí)表示來創(chuàng)建搜索引擎?

我們的最終目標(biāo)是擁有一個搜索引擎,它可以接收圖像并輸出相似的圖像或標(biāo)簽,可以接收文本并輸出類似的單詞或圖像。為實現(xiàn)這一目標(biāo),我們將經(jīng)歷以下三個連續(xù)的步驟:

  • 為輸入圖片尋找相似的圖片 (圖片 → 圖片)

  • 為輸入的文字尋找相似的文字 (文本 → 文本)

  • 為圖像生成標(biāo)簽,并使用文本搜索圖像 (圖像 ? 文本)

為此,我們將使用嵌入 (embeddings),圖像和文本的矢量表示。一旦我們有嵌入 (embeddings),搜索只是找到靠近我們的輸入向量的向量。

尋找這個向量的方法是計算我們的圖像的嵌入和其他圖像之間的嵌入之間的余弦相似度。類似的圖像將具有類似的嵌入,意味著嵌入之間的高余弦相似性。

讓我們從一個數(shù)據(jù)集開始試驗。


數(shù)據(jù)集

圖片

我們的圖像數(shù)據(jù)集由總共 1000 張圖像組成,分為 20 個類別,每個類別下 50 張圖像。此數(shù)據(jù)集可在此處找到。您可以隨意使用鏈接代碼中的腳本自動下載所有圖像文件。另外感謝 Cyrus Rashtchian,Peter Young,Micah Hodosh 和 Julia Hockenmaier 的數(shù)據(jù)集。

此數(shù)據(jù)集包含每個圖像的類別和一組標(biāo)題。為了使問題的難度增加,并且為了驗證我們的方法的泛化性能,我們將只使用類別,而忽略標(biāo)題。數(shù)據(jù)集中總共有 20 個類,如下所示:

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

圖像示例,我們能看到,標(biāo)簽很繁雜

我們可以看到我們的標(biāo)簽非常繁雜:許多照片包含多個類別,標(biāo)簽并不總是來自最突出的標(biāo)簽。例如,在右下角,圖像被標(biāo)記為 chair 而不是 person,雖然 3 人站在圖像的中心,椅子幾乎看不見。


文本

此外,我們加載已在 Wikipedia 上預(yù)訓(xùn)練的單詞嵌入(本教程將使用 GloVe 模型中的單詞嵌入)。我們將使用這些向量將文本合并到我們的語義搜索中。有關(guān)這些單詞向量如何工作的更多信息,請參閱我們的 NLP 教程的第 7 步。


圖像 -> 圖像


......

想要繼續(xù)閱讀,請移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/605

更多精彩內(nèi)容盡在 AI 研習(xí)社。

不同領(lǐng)域包括計算機(jī)視覺,語音語義,區(qū)塊鏈,自動駕駛,數(shù)據(jù)挖掘,智能控制,編程語言等每日更新。

手機(jī)端可以掃描二維碼訪問:

手把手教你從零起步構(gòu)建自己的快速語義搜索模型雷鋒網(wǎng)雷鋒網(wǎng)



雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

手把手教你從零起步構(gòu)建自己的快速語義搜索模型

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學(xué)習(xí)知識的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說