本發(fā)明涉及數(shù)據(jù)挖掘、機器學(xué)習(xí)及神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,更具體地,涉及一種基于深度表達的圖片素材推薦方法。
背景技術(shù):
現(xiàn)今,圖片推薦應(yīng)用于各大領(lǐng)域,有為視頻內(nèi)容推薦圖片的推薦系統(tǒng),有根據(jù)地理位置推薦圖片的系統(tǒng),也有為某個用戶興趣推薦喜愛的圖片的系統(tǒng),這些系統(tǒng)都為我們帶來了不少的便利。
而對于在新聞媒體去發(fā)布新聞信息的時候,往往會根據(jù)新聞的內(nèi)容加上相應(yīng)的圖片,這樣做會豐富信息的內(nèi)容,使讀者不單單只是閱讀文字而感到枯燥。編者在為文章配上一個圖片素材時對侯選庫的每一幅圖片進行瀏覽,而對一個大型的圖片庫來說,人工為文章匹配一幅合適的圖片需要很大的精力,這就需要我們利用機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等相關(guān)技術(shù),去訓(xùn)練我們的計算機去自動地根據(jù)我們的文章內(nèi)容去推薦出一幅圖片,這樣會大大減輕編者的工作。
在機器學(xué)習(xí)和相關(guān)領(lǐng)域中,神經(jīng)網(wǎng)絡(luò)模型依賴于大量的輸入、傳遞及反饋來估計逼近一個目標函數(shù)。而這樣的估計過程需要大量與我們的實驗?zāi)康南嚓P(guān)的輸入,輸入的準確度和合適程度會直接地影響目標函數(shù)與我們想要的理想的函數(shù)之間的差距。我們的目標是為文章的內(nèi)容推薦一幅相關(guān)的圖片,文章和圖片自然就會成為神經(jīng)網(wǎng)絡(luò)的輸入,但是文章和圖片并不能直接輸入到網(wǎng)絡(luò)中,必須將其表達成一個特征向量或者矩陣等方式(以下簡稱特征輸入),神經(jīng)網(wǎng)絡(luò)才可以接受這樣的特征輸入并進行訓(xùn)練,怎樣將文章或者圖片去轉(zhuǎn)換成一個準確的特征輸入就成為一個難題。近年來,各種各樣的表達技術(shù)層出不窮,如何選取合適的技術(shù)去準確地表達文章和圖片,并將其輸入到神經(jīng)網(wǎng)絡(luò)中進行學(xué)習(xí)它們的匹配程度,從而建立一個為文章推薦圖片的圖片素材推薦系統(tǒng)具有一定的研究價值和意義。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于深度表達的圖片素材推薦方法,該方法能準確、快速地識別文章與圖片的匹配度,為文章推薦最合適的圖片,減輕使用者的勞動強度,為使用者帶來便利。
為達到上述目的,本發(fā)明采用的技術(shù)方案是:
提供一種基于深度表達的圖片素材推薦方法,包括如下步驟:
s1.準備包含m組(d,i)的數(shù)據(jù)集:d1,d2,…dm為文章,i1,i2,…im為圖片,下標相同的d和i為匹配正確的組合,下標不同的d和i為匹配不正確的組合;把d1…dn和i1…in歸入訓(xùn)練集,把dn+1…dm和in+1…im歸入測試集;
s2.showandtell網(wǎng)絡(luò)構(gòu)建:利用showandtell的技術(shù)構(gòu)建出一個能用于生成圖片描述文字的網(wǎng)絡(luò),以將s1中的每張圖片描述成文字;
s3.doc2vec網(wǎng)絡(luò)構(gòu)建:利用語料庫區(qū)根據(jù)上下文的信息訓(xùn)練出一個基于doc2vec技術(shù)的網(wǎng)絡(luò),利用該網(wǎng)絡(luò)計算出文章d1,d2,…dm分別所對應(yīng)的k維的文章特征向量和文章中的單詞向量的w維平均值向量,以及用于計算圖片i1,i2,…im由showandtell技術(shù)生成的圖片描述文字中的單詞向量的w維平均值向量;
s4.image2vec網(wǎng)絡(luò)構(gòu)建:將收集的圖片i1,i2,…im一一輸入進一個cnn網(wǎng)絡(luò),將該網(wǎng)絡(luò)的中間卷積層的任意一層激活值或全部層激活值作為對應(yīng)圖片的特征向量,每張圖片的特征向量的維度為j維;
s5.構(gòu)建用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò):對j維的圖片特征向量利用多層神經(jīng)網(wǎng)絡(luò)方法通過維度遞減的全連接層進行降維,將降維后維度為jn維的圖片特征向量、維度為k的文章特征向量、維度為w的文章中的單詞向量的平均值向量及維度為w的由showandtell技術(shù)生成的圖片描述文字中的單詞向量的平均值向量拼接形成混合特征層,對混合特征層利用多層神經(jīng)網(wǎng)絡(luò)方法通過維度遞減的全連接層進行處理,直至全連接層dm的維度降為一維,將dm作為輸出匹配程度的輸出層;
s6.對步驟s5構(gòu)建的神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練:將步驟s1中的訓(xùn)練集里的數(shù)據(jù)組成匹配正確的組合(d,i)與匹配不正確的組合(d,i)輸入步驟s5構(gòu)建的神經(jīng)網(wǎng)絡(luò)中,根據(jù)輸出和目標值的誤差得到loss函數(shù),基于神經(jīng)網(wǎng)絡(luò)殘差反向傳播的技術(shù),計算出s5構(gòu)建的神經(jīng)網(wǎng)絡(luò)的全連接層中的所有結(jié)點的殘差,利用這些殘差更新全連接層和image2vec網(wǎng)絡(luò)的參數(shù),以使loss函數(shù)的值下降,迭代計算直至loss函數(shù)收斂則結(jié)束訓(xùn)練;
s7.對步驟s6訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進行測試:將測試集里的一篇文章與測試集里的全部圖片進行一一組合得到多組(d,i),并將該文章與圖片的各個組合(d,i)輸入到步驟s6訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)以計算該文章和測試集內(nèi)各個圖片的匹配度,按照匹配度從大到小對(d,i)組合進行排序,以測試該用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)的準確率;如果如果該文章與匹配正確的圖片的組合(d,i)在top10中,則視為已為該文章推薦到正確的圖片,如果該文章與匹配正確的圖片的組合(d,i)不在top10中,則視為不能為該文章推薦到正確的圖片;對測試集內(nèi)的每一篇文章均重復(fù)此過程,最后得到總共已經(jīng)正確推薦的文章占測試集內(nèi)所有文章的比例,若比例大于等于預(yù)設(shè)值,將此時的神經(jīng)網(wǎng)絡(luò)作為測試好的計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò),若比例小于預(yù)設(shè)值,則重復(fù)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與測試直至正確推薦的比例大于等于預(yù)設(shè)值為止;
s8.運用測試好的用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò):將要為其推薦圖片的文章與侯選庫中的多個圖片組成多個組合(d,i),并將多個組合(d,i)輸入該測試好的用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)中,計算出該文章和各個圖片的匹配度,最高匹配度的組合(d,i)中的圖片為該文章最合適的圖片。
本發(fā)明一種基于深度表達的圖片素材推薦方法,在基于反向傳播技術(shù)的神經(jīng)網(wǎng)絡(luò)模型下,利用showandtell技術(shù)、doc2vec技術(shù)及image2vec技術(shù)對文章及圖片進行深度表達處理,并構(gòu)建一個用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)并對其進行訓(xùn)練和測試,最終得到一個準確率高的計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò),將一篇文章和多張圖片組成多個組合(d,i),將多個組合一一輸入該神經(jīng)網(wǎng)絡(luò)計算出各個組合的匹配度,即能為該篇文章推薦出匹配度最高的一幅圖片,減輕使用者的勞動強度,為使用者帶來便利。
優(yōu)選地,步驟s4中將中間卷積層的最頂層的激活值作為對應(yīng)圖片的特征向量。激活值就是結(jié)點的輸出值,用最頂層的激活值做圖片分類時,分來效果最佳,因此最頂層的激活值能更好地表達一張圖片。
優(yōu)選地,步驟s4中的cnn網(wǎng)絡(luò)為圖片分類top-5測試錯誤率達6.67%的googlenetinceptionv1的cnn網(wǎng)絡(luò)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明一種基于深度表達的圖片素材推薦方法,在基于反向傳播技術(shù)的神經(jīng)網(wǎng)絡(luò)模型下,利用showandtell技術(shù)、doc2vec技術(shù)及image2vec技術(shù)對文章及圖片進行深度表達處理,并構(gòu)建一個用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)并對其進行訓(xùn)練和測試,最終得到一個準確率高的計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò),將一篇文章和多張圖片組成多個組合(d,i),將多個組合一一輸入該神經(jīng)網(wǎng)絡(luò)計算出各個組合的匹配度,即可能為該篇文章推薦出匹配度最高的一幅圖片,減輕使用者的勞動強度,為使用者帶來便利;能減少對文章和圖片進行過多的預(yù)處理時丟失的信息,能保留更多的特征信息,強化計算匹配度的能力:通過構(gòu)建混合特征層,對圖片和文章進行不同方位的表達,能更好地獲得圖片和文章的信息:不僅僅對圖片特征向量降維的網(wǎng)絡(luò)和混合特征層降維后的網(wǎng)絡(luò)進行參數(shù)更新訓(xùn)練,而且還會根據(jù)輸出的結(jié)果誤差,對image2vec網(wǎng)絡(luò)進行參數(shù)更新訓(xùn)練,以達到更好的效果。
附圖說明
圖1為本實施例一種基于深度表達的圖片素材推薦方法的處理流程圖。
圖2為本實施例構(gòu)建的用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合具體實施方式對本發(fā)明作進一步的說明。其中,附圖僅用于示例性說明,表示的僅是示意圖,而非實物圖,不能理解為對本專利的限制;為了更好地說明本發(fā)明的實施例,附圖某些部件會有省略、放大或縮小,并不代表實際產(chǎn)品的尺寸;對本領(lǐng)域技術(shù)人員來說,附圖中某些公知結(jié)構(gòu)及其說明可能省略是可以理解的。
本發(fā)明實施例的附圖中相同或相似的標號對應(yīng)相同或相似的部件;在本發(fā)明的描述中,需要理解的是,若有術(shù)語“上”、“下”、“左”、“右”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此附圖中描述位置關(guān)系的用語僅用于示例性說明,不能理解為對本專利的限制,對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語的具體含義。
實施例
本實施例一種基于深度表達的圖片素材推薦方法的處理流程圖如圖1所示,包括如下步驟:
s1.準備包含m組(d,i)的數(shù)據(jù)集:d1,d2,…dm為文章,i1,i2,…im為圖片,下標相同的d和i為匹配正確的組合,下標不同的d和i為匹配不正確的組合;把d1…dn和i1…in歸入訓(xùn)練集,把dn+1…dm和in+1…im歸入測試集;
s2.showandtell網(wǎng)絡(luò)構(gòu)建,即圖文描述文字生成網(wǎng)絡(luò)構(gòu)建:利用showandtell的技術(shù)構(gòu)建出一個能用于生成圖片描述文字的網(wǎng)絡(luò),以將s1中的每張圖片描述成文字;
s3.doc2vec網(wǎng)絡(luò)構(gòu)建,即文章特征向量以及單詞特征向量生成網(wǎng)絡(luò)構(gòu)建:利用語料庫區(qū)根據(jù)上下文的信息訓(xùn)練出一個基于doc2vec技術(shù)的網(wǎng)絡(luò),利用該網(wǎng)絡(luò)計算出文章d1,d2,…dm分別所對應(yīng)的k維的文章特征向量和文章中的單詞向量的w維平均值向量,以及用于計算圖片i1,i2,…im由showandtell技術(shù)生成的圖片描述文字中的單詞向量的w維平均值向量;
s4.image2vec網(wǎng)絡(luò)構(gòu)建,即圖片特征向量生成網(wǎng)絡(luò)構(gòu)建:將收集的圖片i1,i2,…im一一輸入進一個cnn網(wǎng)絡(luò),將該網(wǎng)絡(luò)的中間卷積層的任意一層激活值或全部層激活值作為對應(yīng)圖片的特征向量,每張圖片的特征向量的維度為j維;
s5.構(gòu)建用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò):由于由image2vec網(wǎng)絡(luò)生成的圖片特征向量的維度比文章特征向量的維度高很多,而且圖片特征向量是稀疏的,因此需要對j維的圖片特征向量利用多層神經(jīng)網(wǎng)絡(luò)方法通過維度遞減的全連接層進行降維,具體地,使j維的圖片特征向量先分別通過j1、j2…jn維度遞減的全連接層,快速降維到與文章特征向量維度相近的jn維,再將降維后維度為jn維的圖片特征向量、維度為k的文章特征向量、維度為w的文章中的單詞向量的平均值向量及維度為w的由showandtell技術(shù)生成的圖片描述文字中的單詞向量的平均值向量拼接形成混合特征層,該混合特征層的維度為jn+k+w+w,對混合特征層利用多層神經(jīng)網(wǎng)絡(luò)方法通過d1、d2…dm維度遞減的全連接層進行處理,直至全連接層dm的維度降為一維,將dm作為輸出匹配程度的輸出層,本實施例中,全連接層的結(jié)點的激活函數(shù)為sigmoid函數(shù),圖2為構(gòu)建的用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖,圖2中的省略號為省略的結(jié)點或全連接層;
s6.對步驟s5構(gòu)建的神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練:將步驟s1中的訓(xùn)練集里的數(shù)據(jù)組成匹配正確的組合(d,i)與匹配不正確的組合(d,i)輸入步驟s5構(gòu)建的神經(jīng)網(wǎng)絡(luò)中,匹配正確的組合(d,i)為下標相同的(d,i)且其訓(xùn)練目標為1,匹配不正確的組合(d,i)為下標不同的(d,i)且其訓(xùn)練目標為0,根據(jù)輸出和目標值的誤差得到loss函數(shù),基于神經(jīng)網(wǎng)絡(luò)殘差反向傳播的技術(shù),計算出s5構(gòu)建的神經(jīng)網(wǎng)絡(luò)的全連接層中的所有結(jié)點的殘差,利用這些殘差更新全連接層和image2vec網(wǎng)絡(luò)的參數(shù),以使loss函數(shù)的值下降,迭代計算直至loss函數(shù)收斂則結(jié)束訓(xùn)練;
s7.對步驟s6訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進行測試:將測試集里的一篇文章與測試集里的全部圖片進行一一組合得到多組(d,i),并將該文章與圖片的各個組合(d,i)輸入到步驟s6訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)以計算該文章和測試集內(nèi)各個圖片的匹配度,按照匹配度從大到小對(d,i)組合進行排序,以測試該用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)的準確率;如果如果該文章與匹配正確的圖片的組合(d,i)在top10中,則視為已為該文章推薦到正確的圖片,如果該文章與匹配正確的圖片的組合(d,i)不在top10中,則視為不能為該文章推薦到正確的圖片;對測試集內(nèi)的每一篇文章均重復(fù)此過程,最后得到總共已經(jīng)正確推薦的文章占測試集內(nèi)所有文章的比例,若比例大于等于預(yù)設(shè)值,將此時的神經(jīng)網(wǎng)絡(luò)作為測試好的計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò),若比例小于預(yù)設(shè)值,則重復(fù)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與測試直至正確推薦的比例大于等于預(yù)設(shè)值為止;本實施例中,預(yù)設(shè)值為70%;s8.運用測試好的用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò):將要為其推薦圖片的文章與侯選庫中的多個圖片組成多個組合(d,i),并將多個組合(d,i)輸入該測試好的用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)中,計算出該文章和各個圖片的匹配度,最高匹配度的組合(d,i)中的圖片為該文章最合適的圖片。
本發(fā)明一種基于深度表達的圖片素材推薦方法,在基于反向傳播技術(shù)的神經(jīng)網(wǎng)絡(luò)模型下,利用showandtell技術(shù)、doc2vec技術(shù)及image2vec技術(shù)對文章及圖片進行深度表達處理,并構(gòu)建一個用于計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò)并對其進行訓(xùn)練和測試,最終得到一個準確率高的計算文章和圖片匹配度的神經(jīng)網(wǎng)絡(luò),將一篇文章和多張圖片組成多個組合(d,i),將多個組合一一輸入該神經(jīng)網(wǎng)絡(luò)計算出各個組合的匹配度,即能為該篇文章推薦出匹配度最高的一幅圖片,減輕使用者的勞動強度,為使用者帶來便利。
其中,步驟s4中將中間卷積層的最頂層的激活值作為對應(yīng)圖片的特征向量。激活值就是結(jié)點的輸出值,用最頂層的激活值做圖片分類時,分來效果最佳,因此最頂層的激活值能更好地表達一張圖片。
另外,步驟s4中的cnn網(wǎng)絡(luò)為圖片分類top-5測試錯誤率達6.67%的googlenetinceptionv1的cnn網(wǎng)絡(luò)。
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。