蔣國芝,左劼,孫頻捷
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.上海政法學(xué)院,上海200000)
隨著人們生活水平的不斷提高,人們對(duì)健康以及飲食的關(guān)注度也日益增長。由于美食網(wǎng)站的涌現(xiàn),如下廚房,美食杰等,食物相關(guān)的研究也受到了越來越多人的重視。由于這類美食網(wǎng)站是對(duì)任何注冊(cè)用戶開放的,對(duì)于食譜描述以及食物圖像都沒有要求與限制,所以這類網(wǎng)站的食譜描述不一定準(zhǔn)確詳盡,食物圖像也不一定和食譜描述最后生成的一致。因此食物計(jì)算(Food Computing)[1]中的一個(gè)重要子領(lǐng)域就是跨模態(tài)檢索(Cross-Modal retrieval)??缒B(tài)檢索是以一種模態(tài)的數(shù)據(jù)檢索得到另外一種模態(tài)的數(shù)據(jù),這兩種模態(tài)的數(shù)據(jù)是異質(zhì),在跨模態(tài)檢索在食物計(jì)算里面,是以食物圖像檢索烹飪食譜或者以烹飪食譜檢索食物圖像。
食物計(jì)算對(duì)生活、日常行為、健康、文化、農(nóng)業(yè)都有深遠(yuǎn)影響。食物計(jì)算從不同的數(shù)據(jù)源(如社交網(wǎng)絡(luò)、食譜網(wǎng)站、相機(jī)等)以不同的方式獲取并分析異質(zhì)食物數(shù)據(jù),以進(jìn)行食物的感知、識(shí)別、檢索、推薦、監(jiān)控等任務(wù)。食物相關(guān)的數(shù)據(jù)類型可以分為美食照片、食譜標(biāo)題、食物成份、烹飪指示、食物類別、食物風(fēng)味,食物日志、餐館相關(guān)的食物信息等[1]。食物計(jì)算的總體框架如圖1 所示。
圖1 食物計(jì)算總體框架[1]
隨著多媒體數(shù)據(jù)的快速增長,食物相關(guān)的搜索引擎對(duì)于獲得所需的食物信息是必要的??缒B(tài)檢索是食物計(jì)算里面的一個(gè)重要子領(lǐng)域。該領(lǐng)域任務(wù)用到食物數(shù)據(jù)類型有食物圖像以及食譜(食譜包含了標(biāo)題、成份、烹飪指示、類別),該任務(wù)的目的是用食物圖像檢索得到菜譜信息或者使用菜譜檢索得到食物圖像,目前跨模態(tài)菜譜的方法有JE[2]、ACME[3]、DUCP[4]、AdaMine[5]、SAN[6]等。
跨模態(tài)檢索問題是以一種類型的數(shù)據(jù)作為查詢來檢索另一種類型的相關(guān)數(shù)據(jù),例如使用圖像和視頻之間進(jìn)行相互檢索,圖像和文字之間進(jìn)行相互檢索等??缒B(tài)檢索中大多使用成對(duì)的數(shù)據(jù),跨模態(tài)檢索由于檢索的數(shù)據(jù)是異質(zhì),特征難以對(duì)齊,因此該領(lǐng)域需要解決數(shù)據(jù)對(duì)齊和相似性度量問題。數(shù)據(jù)對(duì)齊分為全局對(duì)齊和局部對(duì)齊,全局對(duì)齊的典型代表的方法有CCA[7],DCCA[8]、KCCA[9],局部對(duì)齊的現(xiàn)有方法有:C2MLR[10]、DFE[11]、HM-LSTM[12],相似性度量是通過學(xué)習(xí)得到可以使得異質(zhì)的數(shù)據(jù)模態(tài)分布一致的公共子空間,計(jì)算相似性判斷他們之間的距離,最后通過排序得到檢索結(jié)果。在度量相似性時(shí),常用的損失函數(shù)有排序損失(Ranking Loss)、對(duì)比損失(Contrastive Loss)、三元組損失(Triplet Loss)等。
圖2 跨模態(tài)檢索通用框架[13]
2014 年Google Mind 在團(tuán)隊(duì)在使用Attention 機(jī)制進(jìn)行圖像分類[14],Attention 機(jī)制基于一個(gè)假設(shè),人類只關(guān)注整個(gè)感知空間的特定部分,即觀察一個(gè)事物或者圖像的時(shí)候,會(huì)對(duì)不同的區(qū)域投入不一樣的關(guān)注度。在食物計(jì)算領(lǐng)域使用Attention 機(jī)制的進(jìn)行跨模態(tài)菜譜檢索的方法有DUCP[4]、SCAN[6]、MCEN[15]、PROTEIN[16]、SAM[17]等。DUCP 認(rèn)為食品準(zhǔn)備過程涉及到原料成份、器皿、切割和烹飪操作,烹飪過程的描述是隱式的,因此提出使用層次化的注意力機(jī)制對(duì)食譜中的標(biāo)題、成份以及烹飪指示進(jìn)行建模。SCAN 和SAM 均使用自注意力機(jī)制對(duì)菜譜文本部分進(jìn)行建模。不同的是SCAN使用LSTM 對(duì)菜譜文本進(jìn)行特征提取,在特征提取之后使用自注意力機(jī)制學(xué)習(xí)文本中的顯著特征,并且用KL 損失函數(shù)改善圖像食譜的匹配度并使不同分類器預(yù)測(cè)的概率保持一致;SAM 使用基于Transformer 網(wǎng)絡(luò)的食譜文本編碼器,改進(jìn)了傳統(tǒng)方法注意力機(jī)制的環(huán)境向量選取方式。MCEN 結(jié)合隨機(jī)潛在變量顯式地捕獲文本和視覺特征之間的相關(guān)性來得到模態(tài)一致性的embedding,使用層次化的注意力機(jī)制對(duì)食譜進(jìn)行特征提取,利用潛在變量在訓(xùn)練過程中將跨模式注意機(jī)制納入檢索任務(wù)。PROTEIN 中首先利用并行注意力網(wǎng)絡(luò)來獨(dú)立學(xué)習(xí)圖像和食譜中的注意力權(quán)重,再使用跨注意力網(wǎng)絡(luò)學(xué)習(xí)圖像和食譜之間的相互作用。
PROTEIN 是基于parallel-and cross-attention 的一種方法,該方法認(rèn)為食物成份對(duì)跨模態(tài)食譜檢索任務(wù)的貢獻(xiàn)均不相同,且圖像和文本是作為獨(dú)立通道em?bedding 到公共子空間的,不足以捕獲圖像圖像和食譜之間細(xì)微的相互作響,圖像和食譜的embedding 由于獨(dú)立的建模在,因此如何有效地發(fā)現(xiàn)不同embdding 的重要性成為了要解決的問題。為了解決以上問題,使用parallel-attention 網(wǎng)絡(luò)分別調(diào)整圖像和食譜中各組分的注意權(quán)重。使用cross-attention 網(wǎng)絡(luò)發(fā)現(xiàn)圖像區(qū)域和單詞之間的對(duì)齊方式,并進(jìn)一步推斷圖像和食譜之間的相互作用。使用pair-ranking loss 連接并優(yōu)化來自parallel-attention 和cross-attention 網(wǎng)絡(luò)的圖像和食譜的embdding。
(1)Parallel-attention 網(wǎng)絡(luò)
圖像區(qū)域隱藏狀態(tài)和背景信息作為輸入數(shù)據(jù)計(jì)算image-channel 的注意力權(quán)重αj,n為:
食物圖像的表示由圖像區(qū)域所有已轉(zhuǎn)換為隱藏狀態(tài)的加權(quán)總和來構(gòu)造:
Recipe-channel 的注意力和image-channel 相似,表示為:
Recipe 的特征表示由所有轉(zhuǎn)換后的單詞隱藏狀態(tài)的加權(quán)總和來構(gòu)造:
(2)cross-attention 網(wǎng)絡(luò)
cross-attention 網(wǎng)絡(luò)能夠?qū)D像區(qū)域和單詞之間的相互作用進(jìn)行建模。
①單詞指導(dǎo)圖像
第i 個(gè)食譜說明的第m 個(gè)單詞的第j 個(gè)圖像的第n 個(gè)圖像區(qū)域的相似度表示為:
關(guān)于第i 個(gè)食譜說明的第m 個(gè)單詞的第j 個(gè)圖像的第n 個(gè)圖像區(qū)域的注意力分?jǐn)?shù)表示為:
第i 個(gè)食譜說明中第m 個(gè)單詞的第j 個(gè)圖像表示形式是圖像區(qū)域所有已轉(zhuǎn)換隱藏狀態(tài)的基于注意的組合表示為:
整個(gè)圖像的矢量表示:
②圖像指導(dǎo)單詞
第i 個(gè)食譜說明中第m 個(gè)單詞相對(duì)于第j 個(gè)圖像的第n 個(gè)圖像區(qū)域的注意力分?jǐn)?shù)表示為:
關(guān)于第j 個(gè)圖像的第n 個(gè)圖像區(qū)域的第i 個(gè)食譜描述的表示形式是單詞的所有已轉(zhuǎn)換隱藏狀態(tài)的基于注意的聚合,表示為:
多模式融合模塊首先用超參數(shù)λ平衡兩個(gè)注意力網(wǎng)絡(luò)的重要性,輸入是來自并行注意網(wǎng)絡(luò)(即和)和交叉注意網(wǎng)絡(luò)(即和)的學(xué)習(xí)結(jié)果的嵌入。融合策略表示為:
其中xi表示食譜,yj表示圖像,cos(? ,?)表示余弦相似度。
Ian J.Goodfellow 等人于2014 年10 月提出了一個(gè)通過對(duì)抗過程估計(jì)生成模型的新框架[18]。GAN(Gener?ative Adversarial Networks)由生成器G 和判別器D 組成,訓(xùn)練生成器G 捕獲真實(shí)數(shù)據(jù)分布pdata并生成偽造的圖像,以欺騙識(shí)別器D。另一方面,識(shí)別器D 被訓(xùn)練以區(qū)分真實(shí)和偽造圖像。G 和D 玩一個(gè)minmax 游戲來優(yōu)化以下目標(biāo)函數(shù):
其中x為pdata數(shù)據(jù)分布的真實(shí)圖像,Z 是具有先驗(yàn)分布pz的噪聲。在食物計(jì)算領(lǐng)域的跨模態(tài)檢索任務(wù)中,使用對(duì)抗網(wǎng)絡(luò)的有ACME[3]以及R2GAN[19]。在AC?ME 中使用hard-example mining 采樣策略,來決解trip?let loss 難以迅速收斂的問題,使用GAN 網(wǎng)絡(luò)來對(duì)齊不同模態(tài)的特征,使以使烹飪食譜和食物圖像的特征分布無法區(qū)分。在R2GAN 中,認(rèn)為烹飪指示暗示著某種烹飪的因果關(guān)系并且跨模態(tài)檢索本質(zhì)是無法解釋的,該文章使用GAN 網(wǎng)絡(luò)實(shí)現(xiàn)了從文本生成圖像證明了包含某種因果關(guān)系并也使食譜生成的圖像來解釋搜索結(jié)果。
在R2GAN 中,使用一個(gè)生成器,和兩個(gè)判別器來學(xué)習(xí)兼容的跨模態(tài)特征,并且可以顯示的從食譜生成圖像來解釋搜索結(jié)果??偟膿p失函數(shù)表示為:
其中γ和λ為權(quán)衡的超參數(shù),Lrank兩級(jí)的triplet loss,函數(shù)表示為:
其中d(.,.) 表示測(cè)量給定查詢與候選對(duì)象相似度的距離函數(shù),其中(Eq,Ep)表示正的embedding 對(duì),(vq,vp)表示相應(yīng)的圖像對(duì),一對(duì)數(shù)據(jù)分別屬于不同的模態(tài),α1和α2表示正負(fù)樣本之間的邊界,μ表示權(quán)衡的超參數(shù)。
Lrecon是考慮了特征和圖像級(jí)別的兩級(jí)損失,可以使重構(gòu)圖像保留盡可能多的原始圖像信息。該函數(shù)表示為:
Φ(.) 表示輸入圖像的特征提取器,vreal表示真實(shí)的食物圖像表示從圖像和菜譜embedding 重建的圖像,Φ(v1)-Φ(v2)表示特征級(jí)別的損失,v1-v2圖像級(jí)別的損失。
Lsem表示語義損失,表示為:
Ec表示圖像或者食譜的embbding 種類。
生成器的參數(shù)是由對(duì)抗損失和重建損失來進(jìn)行更新,損失函數(shù)表示為:
其中Lrecon同上面公式一樣,其中LG的公式計(jì)算如下:
其中LD1和LD2分別表示辨別器1 和辨別器2 的損失函數(shù),EV和ER分別表示圖像和食譜的embedding特征。
本文介紹了在食物計(jì)算領(lǐng)域,基于Attention 機(jī)制的跨模態(tài)檢索和基于GAN 的跨模態(tài)檢索,這兩種的方法的相同點(diǎn)在于:他們都是實(shí)值特征學(xué)習(xí)方法,關(guān)注的點(diǎn)都在于提高模型的準(zhǔn)確度。在提取圖像和食譜特征時(shí),都使用不用的網(wǎng)絡(luò)分別對(duì)圖像和食譜進(jìn)行特征抽取。使用Attention 機(jī)制和GAN 都是為了使特征更好的對(duì)齊。不同的點(diǎn)在于:基于Attention 機(jī)制的跨模態(tài)檢索使用了更細(xì)膩度的監(jiān)督信息來使圖像和食譜的特征得到對(duì)齊,損失函數(shù)僅使用Pairwise ranking,而基于GAN 的跨模態(tài)檢索使用GAN 網(wǎng)絡(luò),利用文本的特征來生成食物圖像,來證實(shí)了食譜包含因果關(guān)系,能夠使圖像和文本的特征更好得到對(duì)齊,也增加了網(wǎng)絡(luò)的可解釋性,也使用了多種損失函數(shù)來進(jìn)行學(xué)習(xí)。從以上內(nèi)容可以看出,跨模態(tài)檢索在食物計(jì)算領(lǐng)域受到了廣泛的關(guān)注,且在已發(fā)表的文獻(xiàn)中呈現(xiàn)的實(shí)驗(yàn)效果也充分證明了跨模態(tài)檢索在食物計(jì)算領(lǐng)域的有效性和進(jìn)一步的研究價(jià)值。