亢潔,劉威
(陜西科技大學 電氣與控制工程學院,陜西 西安 710021)
“互聯(lián)網(wǎng)+”背景下,家裝企業(yè)利用互聯(lián)網(wǎng)平臺搭建客服系統(tǒng),以此樹立企業(yè)形象、營銷企業(yè)產(chǎn)品,并為用戶提供與裝修相關(guān)的咨詢和服務。用戶在使用客服系統(tǒng)的過程中,經(jīng)常需要檢索不同風格的裝修案例,因此裝修案例檢索是客服系統(tǒng)中一項重要的功能。目前,在家裝企業(yè)的客服系統(tǒng)中,關(guān)于裝修案例的檢索主要通過人工方式來實現(xiàn),即客服人員根據(jù)用戶需求為其推送具有相應風格標簽的裝修案例。這種方法不僅增加了人力資源的消耗,而且實時性較差,在一定程度上降低了企業(yè)的服務質(zhì)量。裝修案例檢索歸根結(jié)底是一個通過文本信息檢索圖像信息的過程,隨著信息檢索技術(shù)的高速發(fā)展[1-4],這一任務可以通過跨模態(tài)圖文檢索的方法來完成。這類方法僅利用文本和圖像自身包含的內(nèi)容信息,就能實現(xiàn)圖像與文本間的相互匹配[5],這使得客服系統(tǒng)能夠根據(jù)用戶輸入的話語自動檢索相應風格的裝修案例并推送給用戶,從而降低企業(yè)的人力成本,實現(xiàn)信息的實時回復。
目前,構(gòu)建公共子空間已經(jīng)成為跨模態(tài)圖文檢索的主流方法,其核心思想是對不同模態(tài)數(shù)據(jù)間的關(guān)系進行建模,學習一個公共的表示空間,在該空間中可以直接對來自不同模態(tài)的樣本進行比較[6]。其中,代表性工作有典型相關(guān)分析(canonical correlation analysis,CCA)[7],多視角判別分析(multi-view discriminant analysis,MvDA)[8],聯(lián)合表示學習算法(joint representation learning,JRL)[9]等。這些方法是基于傳統(tǒng)統(tǒng)計分析的方法,其通過優(yōu)化統(tǒng)計值來學習公共空間的投影矩陣。近年來,由于深度學習在單模態(tài)信息處理中的優(yōu)異表現(xiàn),相關(guān)學者開始將其應用到跨模態(tài)檢索領(lǐng)域,提出了許多基于深度學習的跨模態(tài)檢索方法[10-12]。其中代表性的工作包括Wei 等[13]提出了一種深度語義匹配(deep semantic matching,Deep-SM)方法來解決帶有一個或多個標簽的跨模態(tài)圖文檢索問題。筆者利用在ImageNet 上預先訓練的卷積神經(jīng)網(wǎng)絡(luò)來提取圖像特征,驗證了使用卷積神經(jīng)網(wǎng)絡(luò)提取的圖像特征在跨模態(tài)檢索中容易獲得更好的結(jié)果。Wang 等[14]提出了一種對抗跨模態(tài)檢索(adversarial cross-model retrieval,ACMR)方法,其以對抗學習的思想來擬合不同模態(tài)數(shù)據(jù)的分布,同時對投影空間施加三元組約束,以最小化不同模態(tài)中語義相同的樣本間的差距,并最大化語義不同的樣本間的距離。Zhen 等[15]提出了一種深度監(jiān)督跨模態(tài)檢索(deep supervised crossmodal retrieval,DSCMR)方法,從3 個角度考慮并設(shè)計了損失函數(shù),使得網(wǎng)絡(luò)學習到的公共空間具有更強的判別能力,顯著提升了跨模態(tài)檢索的性能。然而,上述方法并不能直接應用于家裝客服系統(tǒng)中。因為在這些方法中,一張圖片就是一類信息,當使用文本檢索圖片時,輸出結(jié)果是多張與輸入文本相似的圖片;而本場景中,包含多張圖片的一組裝修案例表示一類信息,當用戶輸入文本進行檢索時,希望得到的結(jié)果應該是多組與輸入文本相似的裝修案例。同時,由于一些風格的裝修案例在視覺上非常接近,如美式和歐式,而另一些裝修案例在視覺上的差別較大,如現(xiàn)代簡約和古典,所以裝修案例多模態(tài)數(shù)據(jù)集中的圖像數(shù)據(jù)存在難易樣本不均衡的問題。
為解決上述問題,本文提出了一種面向裝修案例智能匹配的跨模態(tài)檢索方法,該方法主要有以下3 個創(chuàng)新點:
1)為了緩解人力資源的消耗,實現(xiàn)客服系統(tǒng)中裝修案例自動檢索的功能,本文提出了一種面向家裝領(lǐng)域客服系統(tǒng)的跨模態(tài)圖文檢索模型。
2)結(jié)合應用場景,本文提出了一種風格聚合模塊,該模塊通過對一組裝修案例中所有圖片的風格特征進行處理,得到可以代表這組裝修案例整體風格的一個特征表示,使得裝修圖片可以按組與文本信息建立聯(lián)系。
3)針對裝修案例多模態(tài)數(shù)據(jù)集中圖像樣本難易不均衡的問題,設(shè)計了一種雙重損失函數(shù)來對模型進行監(jiān)督學習。
本文所提出的模型利用深度神經(jīng)網(wǎng)絡(luò)提取文本和圖像的特征,并將兩者投影到一個公共的表示空間,以此來建立文本與圖像之間的對應關(guān)系,從而完成通過指定文本檢索相應風格的裝修案例這一任務。本節(jié)首先介紹了模型的整體框架,之后分別對模型中用到的風格聚合模塊和損失函數(shù)進行了介紹。
本文所提模型的整體框架如圖1 所示,其包含兩個子網(wǎng)絡(luò),分別用于處理文本信息和圖像信息。假設(shè)數(shù)據(jù)集中包含n個文本-圖像對,用表示,其中表示第i個樣本中的文本信息,與客服系統(tǒng)中用戶輸入的話語對應;表示第i個樣本中的圖像信息,與客服系統(tǒng)中被檢索的裝修案例對應。每個樣本對都對應有各自的標簽向量,用表示,其中c表示輸入樣本的類別數(shù)。當?shù)趇個樣本屬于第j類時yji=1,否則yji=0。下面,本文以第i個輸入樣本為例來介紹整個模型的工作流程。

圖1 所提模型的整體框架Fig.1 Framework of the proposed method
首先,模型需要提取輸入樣本中不同模態(tài)信息的特征。針對文本信息,本文采用在維基百科中文數(shù)據(jù)集上預先訓練的BERT(bidirectional encoder representation from transformers)模型[16]來提取輸入文本的語義特征,將模型輸出中[CLS]標志位對應的一個768 維的向量作為整個文本的特征表示,記作圖像信息是包含k張圖片的一組裝修案例,本文希望得到這組圖片的整體風格特征。由文獻[17]可知,紋理可以描述一個圖像的風格,而卷積神經(jīng)網(wǎng)絡(luò)淺層的特征圖含有大量的紋理信息,所以圖像經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)提取出的淺層特征可以作為該圖像風格的特征表示。因此,本文采用在ImageNet 上預先訓練的VGG19[18]來提取輸入圖像的紋理信息,將網(wǎng)絡(luò)block1 層輸出的特征圖作為對應圖像的紋理特征,紋理特征的大小為 64×112×112,則一組裝修案例的紋理特征表示為其中是指一組裝修案例中第k張圖片的紋理特征。之后,使用本文提出的風格聚合模塊對進行處理,得到一個大小為6 4×64的特征圖,最終將其展開成一個4 096維的向量作為整組裝修案例的風格特征表示,記作。
接著,在兩個子網(wǎng)絡(luò)的后面分別添加兩個具有激活函數(shù)ReLU 的全連接層,用f1、f2、f3和f4表示。利用損失函數(shù)對模型進行監(jiān)督學習,通過這些全連接層將提取到的文本特征和圖像特征投影到一個公共子空間中,為文本和圖像生成統(tǒng)一的特征表征形式,從而使兩者可以直接進行相似性比較。其中,全連接層f1和f3的隱藏單元數(shù)量均為1 024,全連接層f2和f4的隱藏單元數(shù)量均為512,且權(quán)值共享。數(shù)學上等同于為這兩種模態(tài)信息分別學(習一種)映射關(guān)系,表示為:其中vi和wi分別表示第i個樣本中的文本和圖像信息在公共空間中的特征向量,d是它們特征向量的維數(shù),Φα和 Φβ分別代表對應函數(shù)中的可訓練參數(shù)。最后,將參數(shù)矩陣為P的線性分類器分別連接至2 個子網(wǎng)絡(luò)的末端,利用標簽信息來區(qū)分不同類別的特征。
為了建立文本與對應風格的裝修案例之間的聯(lián)系,實現(xiàn)通過文本信息檢索裝修案例的任務,本文提出了一種風格聚合模塊,如圖2 所示。該模塊通過對一組裝修案例中所有圖片的紋理特征進行處理,最終獲得該組圖片統(tǒng)一的風格特征表示,從而便于后續(xù)網(wǎng)絡(luò)學習裝修案例與對應文本之間的語義關(guān)系。

圖2 風格聚合模塊Fig.2 The module of style aggregation
風格聚合模塊具體的工作內(nèi)容如下:
1)生成格拉姆(Gram)矩陣:由文獻[17]可知,圖像經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)提取到的淺層特征含有更多的紋理特征,這些特征可以用來描述一個圖像的風格。之后,通過計算這些特征的Gram 矩陣,可以度量各個特征之間的相關(guān)性,從而得知哪些特征是同時出現(xiàn)的,哪些特征是此消彼長的等。同時,Gram 矩陣的對角線元素還反映了每個特征在圖像中的重要程度,所以Gram 矩陣可以被用于表征圖像的風格。本模塊的輸入是k張圖片經(jīng)過VGG19 第一個block 層輸出的所有特征圖其中每張圖片對應特征圖的大小為 64×112×112。之后,計算每張圖片對應特征圖的Gram 矩陣,得到k張圖片的風格特征,大小為 64×64。Gram 矩陣計算為

式中:C、H、W分別表示輸入特征圖的通道數(shù)、高和寬;Fim表示輸入特征圖第i個通道的第m個元素;Fjm表示輸入特征圖第j個通道的第m個元素;Gij表示Gram 矩陣中第i行第j列的元素。
2)風格聚合:經(jīng)過第一步運算后,最終得到一組裝修案例中k張圖片的風格特征,大小為6 4×64。接著,將全部的風格特征拼接成一組k×64×64的特征圖,并使用大小為k×3×3的卷積核對其進行處理,學習這一組特征圖整體的風格特征,獲得了一個大小為 64×64的特征圖,其聚合了一組裝修案例中所有圖片的風格信息。最后,為了方便后續(xù)網(wǎng)絡(luò)的使用,將得到的特征圖展開成一個4096維的向量作為一組裝修案例的風格特征。
本文提出的圖文檢索模型為來自不同模態(tài)的特征學習一個公共的向量空間,使得語義類別相同的樣本在這個空間是相似的,語義類別不同的樣本是不相似的。為此,本文設(shè)計了一種雙重損失函數(shù)L,它由分類損失L1和 檢索損失L2組成。本文通過最小化L來訓練網(wǎng)絡(luò)參數(shù),下面對上述損失函數(shù)進行詳細介紹。
首先,考慮單模態(tài)內(nèi)的分類損失L1。對于數(shù)據(jù)集中的圖像樣本,因為一些風格的裝修案例在視覺感官上非常相似,如美式和歐式,屬于不好區(qū)分的困難樣本;而另一些裝修案例在視覺感官上的差別較大,如現(xiàn)代簡約和古典,屬于容易區(qū)分的簡單樣本,所以數(shù)據(jù)集中存在圖像樣本難易不均衡的問題。為此,受文獻[19]的啟發(fā),利用損失函數(shù)lf來優(yōu)化圖像樣本的分類,即


之后,考慮跨模態(tài)間的檢索損失L2。通過約束公共空間中文本特征和圖像特征的相似程度,來消除跨模態(tài)差異,優(yōu)化網(wǎng)絡(luò)模型。損失函數(shù)為

式中:n為輸入樣本的個數(shù);是一種指示函數(shù),當函數(shù)中的兩個元素屬于同一類別時,其值為1,反之為表示矩陣的F范數(shù);V=[v1v2···vn]表示所有文本樣本在公共空間中的特征矩陣;W=[w1w2···wn]表示所有圖像樣本在公共空間中的特征矩陣。公式(2)中的第1 項是根據(jù)似然函數(shù)重新定義的跨模態(tài)負對數(shù)似然函數(shù),用于度量不同模態(tài)數(shù)據(jù)間的相似性,似然函數(shù)定義為

綜合式(1)和式(2),可以得到本模型最終的損失函數(shù):

式中 λ是超參數(shù),負責控制兩類損失的貢獻程度。
為了貼合真實的應用場景,本文從某互聯(lián)網(wǎng)家裝企業(yè)獲取到部分用戶的查詢語料和相應的裝修案例,通過對數(shù)據(jù)進行整理,最終構(gòu)建了一個關(guān)于裝修案例的多模態(tài)數(shù)據(jù)集。本文創(chuàng)建的數(shù)據(jù)集共包含7200 個文本-圖像對,并根據(jù)裝修風格設(shè)置了8 個類別標簽,分別為中式、歐式、美式、日式、地中海、現(xiàn)代簡約、古典和田園,每個樣本對共用一個類別標簽。在一個樣本對中,文本信息是一個與樣本標簽語義相同的句子,句子的平均長度為10.43 個字;圖像信息是與樣本標簽類別相同的一組裝修案例,不同裝修案例中包含9~13 張數(shù)量不等的圖片。在實驗時,本文按照90%和10%的比例將數(shù)據(jù)集隨機劃分為訓練集和測試集。
本文通過計算文本特征和圖像特征之間的余弦值來度量兩者的相似性,并采用了在圖文檢索中廣泛使用的2 種評估標準:召回率(Recall@N)和平均精度均值(mean average precision,mAP)對檢索算法的性能進行評價。Recall@N表示輸入文本信息后得到的跨模態(tài)檢索結(jié)果中,前N個圖像中出現(xiàn)與文本信息類別相同的概率。mAP 與召回率不同,其綜合考慮了所有的檢索結(jié)果,對每個測試樣本的平均精度進行了再平均,反映了檢索模型的整體性能。上述2 種評估指標的值越大,則表示模型的檢索能力越強。
根據(jù)本文應用場景的實際需求,本文只考慮以文本檢索圖像任務中模型的性能。本文實驗均在Python 3.6.12 上進行,硬件平臺為Intel Coreli7-8700CPU,內(nèi)存為16 GB,GPU 為11 GB 的NVIDIA GeForce GTX 2080Ti。模型使用Adam 優(yōu)化器進行訓練,學習率為1 0?4,平滑常數(shù) β1和 β2分別為0.5和0.999,batch size 為100,epoch 為500。本文提出的損失函數(shù)中的超參數(shù) γ 為2,λ為0.2。
2.3.1 與現(xiàn)有模型的對比實驗
為了驗證本文所提模型的有效性,在本文自建的裝修案例多模態(tài)數(shù)據(jù)集上,將本文提出的模型與多種常見的圖文檢索模型進行比較,包括CCA[7],MvDA[8],JRL[9],CCL[10],ACMR[14]和DSCMR[15]。其中,CCA,MvDA 和JRL 是基于傳統(tǒng)統(tǒng)計分析的方法,其余3 種是基于深度學習的方法。為了公平,文本和圖像樣本均采用BERT 和VGG19 預訓練模型來提取特征。表1 所示為不同模型在裝修案例多模態(tài)數(shù)據(jù)集上的召回率和平均精度均值,由實驗結(jié)果可知,本文方法相較于次優(yōu)方法,在Recall@5,Recall@10,Recall@15 和mAP 上分別有了4.1%,2%,3.4%和4.4%的提升,證明了本文方法在裝修案例多模態(tài)數(shù)據(jù)集上的檢索性能全面優(yōu)于其它方法。同時可以看出,采用深度學習方法學習到的公共表示空間較于傳統(tǒng)統(tǒng)計分析的方法具有更好的辨識能力,可以為跨模態(tài)數(shù)據(jù)建立更強的語義聯(lián)系,實現(xiàn)更好的檢索性能。

表1 不同模型的對比實驗Table 1 Comparison of results using different methods
2.3.2 不同風格特征對模型性能的影響
本文利用在ImageNet 上預先訓練的VGG19來提取輸入圖像的紋理信息。為了研究由VGG19不同卷積層的輸出特征生成的風格特征對本文所提模型性能的影響,本文通過提取以下5 個不同層的圖像特征來獲得裝修案例的風格特征表示,這5 個層分別是:block1、block2、block3、block4和block5。為了保證這些特征可以在統(tǒng)一的網(wǎng)絡(luò)中參與計算,使用卷積操作對block2、block3、block4 和block5 輸出的特征進行降維,使得輸出特征的通道數(shù)都變?yōu)?4,從而獲得大小相同的風格特征。表2 所示為本文模型在使用不同風格特征時,其在數(shù)據(jù)集上的召回率和平均精度均值。可以看出,當模型使用block1 層的特征生成風格特征時,Recall@5,Recall@10,Recall@15 和mAP的值是最高的,此時模型的檢索性能也是最好的。而隨著模型使用的卷積層越深,模型的檢索性能也隨之下降。這是因為卷積網(wǎng)絡(luò)的淺層特征包含更多的紋理信息,深層特征則包含更多的內(nèi)容信息。而在不同風格的裝修案例中,圖片的內(nèi)容信息包含很多重疊的內(nèi)容,如客廳、臥室、廚房和衛(wèi)生間等,因此包含更多內(nèi)容信息的深層特征不利于裝修案例的跨模態(tài)檢索。

表2 不同風格特征的對比實驗Table 2 Comparison of results using different style features
2.3.3 不同損失函數(shù)對模型性能的影響
1)損失函數(shù)中的超參數(shù)分析
本文提出的損失函數(shù)L包含兩部分,分別是單模態(tài)內(nèi)的分類損失L1和跨模態(tài)間的檢索損失L2,并通過超參數(shù) λ來調(diào)節(jié)兩類損失的貢獻程度。圖3 表示本文所提模型使用含有不同 λ值的損失函數(shù)L訓練后,其在數(shù)據(jù)集上的mAP 值??梢钥闯觯?λ為0 時,損失函數(shù)只包含分類損失L1,沒有考慮跨模態(tài)樣本間的檢索損失;當 λ為0.2 時,使用損失函數(shù)L訓練的模型在數(shù)據(jù)集上的mAP 值最高,此時模型的檢索性能最好。之后,隨著 λ值的增大,模型在數(shù)據(jù)集上的mAP 值呈下降趨勢,模型的檢索性能變差。

圖3 參數(shù) λ的對比實驗Fig.3 Comparison of results using different λ
2)不同損失函數(shù)的對比實驗
單模態(tài)內(nèi)的分類損失L1由文本分類損失和圖像分類損失組成。為了解決數(shù)據(jù)集中圖像樣本難易不均衡的問題,本文利用損失函數(shù)lf來優(yōu)化圖像樣本的分類,同時使用標簽平滑的交叉熵損失le來學習文本分類。為了研究不同損失函數(shù)對本文所提模型性能的影響,本文對以下4 種形式的損失函數(shù)進行了評估,分別是:L1(le+le)(僅使用le學習文本和圖像分類)、L1(le+lf)(使用le學習文本分類,并使用lf學習圖像分類)、L2(僅使用跨模態(tài)檢索損失)和L1(le+lf)+λL2(使用本文提出的損失函數(shù),其中 λ設(shè)為0.2)。表3 所示為使用不同損失函數(shù)訓練本文模型后,模型在困難樣本(如歐式和美式,中式和古典)上的mAP和所有樣本上的mAP??梢园l(fā)現(xiàn),使用分類損失L1(le+lf)訓練的模型,其在困難樣本上的mAP高于使用L1(le+le)訓練的模型,這說明分類損失L1(le+lf)緩解了數(shù)據(jù)集中圖像樣本難易不均衡的問題,提高了模型整體的檢索性能。同時,通過比較L1(le+lf)、L2和L1(le+lf)+λL2可知,單獨一種損失函數(shù)訓練的模型在數(shù)據(jù)集上的mAP都低于共同訓練的模型,證明只有同時考慮單模態(tài)內(nèi)的分類損失L1(le+lf)和跨模態(tài)間的檢索損失L2,使用L1(le+lf)+λL2損失函數(shù)訓練的模型才具有更好的跨模態(tài)檢索性能。

表3 不同損失函數(shù)的對比實驗Table 3 Comparison of results using different loss function
本文針對家裝客服系統(tǒng)中裝修案例的檢索問題,提出了一種基于深度學習的裝修案例跨模態(tài)檢索方法。該方法設(shè)計了一種風格聚合模塊,該模塊通過對一組裝修案例中所有圖片的紋理特征進行處理,得到該組裝修案例統(tǒng)一的風格特征表示,方便網(wǎng)絡(luò)建立查詢語句與裝修案例之間的聯(lián)系。同時,本文提出了一種改進的損失函數(shù),用于學習多模態(tài)數(shù)據(jù)在公共空間中的特征表示,并提升了數(shù)據(jù)集中圖像難樣本的分類效果。實驗結(jié)果表明,本文所提方法在自建的數(shù)據(jù)集上有較好的檢索效果,可以將其應用在家裝客服系統(tǒng)中,以實現(xiàn)裝修案例自動檢索的功能。
在未來的工作中,將會構(gòu)建類型更加多樣、內(nèi)容更加具體的數(shù)據(jù)集,研究針對某一特定裝修案例的跨模態(tài)檢索模型,進一步完善家裝客服系統(tǒng)中裝修案例檢索這一功能。