一种服饰风格特征指导下的服装搭配学习模型
2022-07-06彭敦陆
刘 锐,彭敦陆
(上海理工大学 光电信息与计算机工程学院,上海 200093)
1 引 言
随着生活观念的改变,人们更多地追求在精神层面的满足与自我肯定,一个人的衣着通常能够表达出自己的审美和生活态度,越来越多的人愿意在自己的衣着上投入资金.从电子商务的发展可以看出,服饰行业已经并将会在很长一段时期中都有着很高的商业价值,电商平台根据用户浏览操作和购买记录把握用户喜好,为用户推荐合适的搭配商品或许能够成为未来的一个发展方向.目前好的服饰搭配都需要时尚专家花费大量时间,从海量服饰中根据其所呈现的视觉属性进行搭配,这无疑需要很高的成本.所以,一个能够把握服饰视觉属性信息、高效地提供服饰搭配方案和服饰搭配推荐系统是被要求存在的.
现有服饰搭配模型重点在于学习海量套装内服饰之间潜在的搭配模式,他们[1-4]将服饰表示为图-文特征,设计模型学习这些特征之间相互依赖关系.一些研究者也强调了服饰风格在服饰搭配中重要的作用,他们通过无监督编码实现服饰风格特征的提取,Liu等人[5]认为服饰风格特征向量可以表示为服饰图像特征向量与类别特征向量的差,并将其用于服饰推荐系统.Nakamura等人[6]使用的双向长短时记忆网络和自动编码器网络来无监督地学习套装风格,并且可以针对同一件服饰生成不同风格的套装.Veit等人[7]利用Siamese卷积神经网络学习图像空间到风格空间的特征变换,使用最近邻搜索来生成可相互搭配的服饰.
通常,服饰风格受多方面因素的影响(如颜色、面料及穿着场景等),导致对服饰风格和判别标准的定义不够清晰.本研究试图把服饰风格看作其视觉属性集合的一个映射,并用映射后的特征(风格特征向量)来指导服饰搭配模型的学习.
2 相关工作
2.1 服饰兼容性学习和服饰套装生成的研究
学习服饰单品视觉兼容性是服饰搭配领域中一个重要的问题.度量学习是解决这一问题中常用的方法之一,即学习的目标是将所有的服饰单品映射到同一个空间中,使得同一套装内服饰单品之间距离尽量小,不同套装间服饰单品之间距离尽量大.Song等人[3]用自动编码器来学习上下衣的兼容性,Polania等人[8]强调颜色在决定服饰兼容性方面起着重要的作用,他们采用全连接网络学习服饰单品的兼容性.Han等人[9]基于时尚领域已经广泛认可的服饰搭配规则,采用加入注意力机制的教师-学生网络构建服饰兼容性学习模型.Li等人[10]融合了服饰的图像和文本特征,训练了一个循环神经网络来预测套装的时尚性.Han等人[2]、Jiang等人[11]将搭配好的一套时尚单品看作序列,对时尚单品所组成的序列进行建模,从而挖掘时尚单品搭配规则,Han等人[2]同时收集了Polyvore数据集,其给出了上万套的高质量服饰搭配套装,为服饰搭配学习领域做出了很大的贡献,此数据集被提出后,大量的实验在此数据集上展开,Lin等人[12]提出的CSA-Net模型和Tan等人[13]提出的SCE-Net模型在服饰填空和服饰兼容度预测上都获得了较优的实验效果.
2.2 服饰风格建模的研究
在早期的服饰风格建模中,风格的标签往往都是来自专家的标注[1],Yamamoto等人[14]提出CD-CNN的级联输出和支持向量机进行有监督的风格分类学习;Hidayati等人[15]从人工标注的服饰风格和体型数据中学习二者的兼容性模型.一些研究者认为用户共同购买或者共同浏览的单品具有相似风格,如Lee等人[16]认为在同一套搭配中的单品或者被共同购买的服饰具有潜在相似风格,他们通过最大化共现概率来学习服饰风格特征.在对服饰风格的定义上,Liu等人[5]等人认为一件服饰是由两个基本组件组成:风格和类别,他们将服饰图像经卷积神经网络的输出减去服饰类别信息,从而得到服饰风格信息而建模服饰风格,并利用BPR网络进行个性化推荐;刘洪麟等人[17]使用Gram矩阵提取图像纹理特征,并把它作为图像的风格特征;Natsuki等人[18]提出了针对与人类视觉感知相近的图像纹理自动估计方法.
2.3 主题模型用于多模态融合的研究
多语言主题模型(PolyLDA)[19]最初是用来学习不同自然语言之间的联系,可以学习跨语言单词之间的关系.在时尚领域,多语言主题模型用于发现不同模态信息之间的关系.Hsiao等人[20]使用一个多语言主题模型,学习关于上装和下装位置坐标及其色彩特征的协同信息,从而完成上下装的搭配和推荐任务.Iqbal等人[21]使用PolyLDA将家具的图像特征与文本特征结合起来,并认为所得到的特征能够描述家具的视觉风格.
3 服饰风格特征指导下的服装搭配学习模型
提取服饰的视觉属性集合在风格空间上的映射,得到风格特征向量,并将服饰风格特征引入服装搭配学习模型的损失计算,是本文研究的主要内容.
本文提出方法如图1、图2所示:1)如图1,首先使用预训练的卷积神经网络(CNN)提取出服饰图像的视觉属性集合,使用one-hot编码服饰文本描述的特征,然后使用PolyLDA融合两种模态的信息,并无监督地学习得到服饰的风格特征向量;2)其次使用了多任务学习来训练服装搭配模型的参数,如图2,在多任务模型中主任务是:将套装中的服饰单品视作一个有序的序列,使用双向长短时记忆网络学习套装中每件单品之间的兼容关系,并在损失计算中加入服饰单品的风格向量,作为服饰兼容关系学习的重要指导;在多任务学习中副任务是:将图像和文本映射到同一个空间,目标是最小化同一件单品的图像和对应文本描述距离,最大化图像和不对应的文本描述距离,通过这种方法,可以增加模型的泛化效果,并且能够融合多模态信息[22].
图1 风格特征向量的提取Fig.1 Extraction of style vectors
图2 服装搭配学习模型Fig.2 Model of fashion compatibility learning
3.1 无监督多模态服饰风格特征向量提取
卷积神经网络的可视化研究[23,24]表明,在图像数据集上预训练卷积神经网络,位于其浅层的卷积核对粒度较低的视觉属性(比如颜色、亮度及单一方向纹路等)比较敏感,容易被低粒度的特征激活;随着网络的加深,位于较深层次的卷积核对于颜色和纹理的组合敏感,容易被中粒度的视觉属性激活;到了网络的中后段,卷积核对于高粒度的视觉属性敏感(比如椭圆形、波浪纹及斑点等);当接近输出层时,卷积核对不同类别图像所呈现出来的细致而准确的纹理敏感,从而能够很好的完成图像分类的任务.
受到Iqbal等人[21]的启发,在本文的研究中,使用预训练卷积神经网络作为服饰视觉属性特征提取器.具体来说,本研究将预训练卷积神经网络中,位于不同层次的卷积核视作不同粒度的视觉单词提取器;服饰图像在一次正向传播中,较大程度地激活的卷积核表示在该服饰图像中存在对应不同粒度的视觉单词,通过这一过程可以得到服饰图像的视觉属性文档.
对于一个预训练卷积神经网络,选择N个位于其不同深度层的卷积核作为服饰视觉属性特征提取器,相当于服饰图像的视觉单词词典共有N个词汇.对于一个服饰图像而言,它的视觉属性文档可以表示为VW=[vw1,vw2,…,vwN],相对应地有一个0-1向量BW=[bw1,bw2,…,bwN],bwi∈{0,1},bwi用来表示第i个卷积核是否被激活.awi为一个服饰图像在一次正向传播中,在第i个卷积核上的平均激活值在同一层的所有激活值中归一化到0-1区间后的结果,若awi大于阈值τ,表明服饰图像激活了第i个卷积核,那么bwi=1,反之bwi=0,最终有vwi=bwi·awi.
对于服饰的文本描述t,使用twi来表示单词wi在t中的频率,根据文本中出现的每个单词的频率生成一个d维文本文档TW=[tw1,tw2,…,twd].本文将PolyLDA用作视觉风格主题模型,PolyLDA从文档主题模型迁移到视觉风格主题模型的基本映射如下:1)将每个视觉风格看作一个主题;2)将一个服饰单品描述信息看作一个元组,它包括两种语言表示的文档,即视觉属性文档和文本文档.将这两种模态的文档作为PolyLDA的输入,融合两种不同语言描述的内容进行服饰风格建模.PolyLDA的概率图如图3所示.
图3 PolyLDA的概率图Fig.3 Graphical model of PolyLDA
图3中,wi,j表示第i个服饰的第j个词;α,βlv,βlt为迪利克雷分布的超参数;ki,j是词wi,j对应的风格编号,Si表示第i个服饰在风格上的概率分布;φk,l表示第k个风格在语言l上的词分布,l∈{lt,lv}.给定M个文档和K个风格数,PolyLDA的生成过程如下:
a.对于两种语言的K个风格,初始化一系列单词的分布φk,l~Dir(βl);
b.对于每一个具有两种语言的文档i,初始化其风格分布Si~Dir(α);
c.对于第i个时尚单品的第l种语言的第j个单词:
i)选择一个风格ki,l~Multinomial(Si)
ii)选择一个词wi,l,j~Multinomial(φki,l)
上述方法的服饰风格建模是完全无监督的,它是从没有任何风格标签的服装样本中学习并区分出服饰风格.这种方法能够节省大量的人工标注成本,也可以解决风格无法拥有客观定义的挑战.从本质上来说,因为本文提出的模型关注的是服饰在颜色,花纹,质感等视觉属性上的集合,以及不同服饰之间在这些属性集合上的差别,所以即使服装的视觉效果不断变化,服装风格的定义不断更新,本研究提出的模型仍然能够在本质上捕捉视觉上的差异从而在视觉风格上对服饰进行区分.
3.2 双向长短时记忆网络用于服装搭配学习
长短期记忆网络(LSTM)一般在自然语言处理领域中使用,它可以学习文本与上下文之间的关系和搭配规律.本研究认为,搭配完善的套装也与自然语言具有相似之处,将单个服饰图像的特征视作句子中的一个词汇,将排列规律、搭配完善的套装序列视为词汇组成的句子(在这里,排列规律一般是上衣、下衣、鞋、包、配饰的顺序),利用LSTM网络对服饰之间的搭配关系进行学习.LSTM网络可以学习到前n件服饰的特征,并且基于之前的状态预测下一件服饰,同样,反向的预测也是有意义的,所以使用双向长短时记忆网络(Bi-LSTM)模型对服饰兼容性进行建模.
给定一套服装序列O={X1,…,Xt,…,XT},Xt={St,vt}是当前套装中第t件服饰单品的特征集合,其中St是由3.1节得出的服饰单品的风格特征向量,vt是预训练卷积神经网络提取出的图像特征.将套装序列的图像特征vt按照顺序作为Bi-LSTM模型的输入.具体来说,对于正向LSTM网络将之前的状态ht-1和当前的输入vt映射到当前的状态ht,这是一个从t=1到t=T的递归计算的过程,具体计算过程如公式(1)所示:
it=σ(Wvivt+Whiht-1+Wcict-1+bi)
ft=σ(Wvfvt+Whfht-1+Wcfct-1+bf)
ct=ftct-1+ittanh(Wvcvt+Whcht-1+bc)
ot=σ(Wvovt+Whoht-1+Wcoct+bo)
ht=ottanh(ct)
(1)
其中vt是输入,ht是t时间步长的隐藏向量,it、ft、ct、ot是输入门、遗忘门、存储单元和输出门的激活向量,Wαβ是向量α和β之间的权重矩阵,bα是α的偏置项,σ是Sigmoid函数.
(2)
(3)
(4)
反向LSTM的损失函数可以表示为:
(5)
3.3 视觉-文本空间嵌入任务
通过将图像与描述图像的文本投影到一个空间中,模型可以捕获图像和文本的多模态信息,将此任务作为服装搭配学习的副任务,可以更好地指导服装搭配主模型的训练.
dis(d′,v′)=d′·v′
(6)
希望属于同一个样本的视觉特征和文本特征之间的距离小于m,不属于同一个样本的视觉特征和文本特征之间的距离尽可能大,可以得到视觉-文本嵌入的损失函数:
(7)
其中θVSE={MT,MI},v′k表示与d′不属于同一样本的视觉特征,d′k表示与v′不属于同一样本的文本特征.
3.4 服装搭配的多任务学习
为了让文本描述参与Bi-LSTM模型的服饰搭配学习中,本研究将视觉-文本嵌入(VSE)任务作为Bi-LSTM模型训练的副任务.最终可以得到总体的优化目标为:
(8)
4 实 验
4.1 数据集
在本文中使用的是被广泛使用的Polyvore数据集[2],此数据集中包含了21889组套装,其中17316组用于训练,1497组用于验证,3076组用于测试.数据集总共包含164379件服饰单品,每一件单品包含服饰图像和其对应文本描述,如图4所示.在训练过程中,对于套装内单品数量大于8件的套装,选择前8件作为训练样本.在套装中,服饰单品的顺序是根据用途由前至后排列的,如上衣、裤子、鞋、包、配饰.对于服饰单品的文本描述信息,去除出现次数小于30次的单词,最终得到了2575个单词作为文本词典.
图4 套装图像和文本描述示例Fig.4 Example of image and text description in an outfit
4.2 实验参数设置
在风格特征向量提取模型中,使用的是在ImageNet上预训练的ResNet-50,本研究选择了ResNet-50网络中由浅至深,并且是残差单元跳层连接输出的层,分别为1、22、40、49层,作为不同粒度视觉属性的特征提取层,它们分别有64、512、1024、2048个卷积核,将这些卷积核按照顺序编号,作为3648个视觉单词.因为激活值被归一化到0-1区间,所以选择中间值0.5作为τ的取值以筛选出被较大程度激活的通道.经过多次实验,风格特征向量的维度被固定为10维.如图5所示,经过聚类后,数据集中一些能代表特定风格的服饰单品图像被挑选出作为直观的展示.
图5 风格聚类直观展示Fig.5 Visualize of style cluster
4.3 对比模型
SetRNN[10]对于给定的套装,SetRNN使用RNN模型预测套装的流行程度.使用SetRNN的流行度预测作为套装兼容性分数.
Bi-LSTM+VSE[2]本实验的基线模型.
Bi-LSTM+VSE+SE[6]Nakamura等人将一个用自动编码器实现的无监督风格提取模块(SE)合并到Bi-LSTM+VSE模型上,构建了一个有服饰风格参与的服装搭配学习模型.
SCE-Net[13]此网络在没有明确的类别或属性监督的情况下,从图像中学习不同相似概念获得服装的特征.他们与本研究使用了相同的数据集和相同的评价指标.
CSA-Net[12]此网络是一种基于类别的子空间注意网络,其任务与本研究有相似之处.
4.4 服装填空任务
服装填空任务(FITB)是指在给定一套搭配好的服装,将其中一件单品随机地用空白代替,同时从其他的套装中任意地挑选3件作为错误选项,与正确选项一起作为备选答案,让模型选择其中之一填充题目中的空白.这一任务的目标函数可以被写作:
(9)
C是备选答案的集合,t是被空白代替的位置,对于每一个备选答案,模型在经过一次正向和一次反向计算后选择满足公式(9)的单品作为最终答案.部分实验可视化如图6所示,本模型预测准确率与对比模型的数据如表1所示.
图6 服装填空直观展示Fig.6 Visualize of fill-in-the-blank task
4.5 服装搭配兼容度预测
本文提出的模型还可以有效地对搭配好的套装的兼容性进行打分,为了评判方法的效果,本文使用ROC曲线的AUC对性能进行评估,本模型与对比模型的数据如表1所示.
表1 服装填空和兼容性预测对比实验结果Table 1 Comparison on the fill-in-the-blank and compatibility prediction tasks
5 总 结
服饰风格是时尚专家在服装搭配中一个重要的指导,在服装搭配学习模型中同样需要注重服饰风格.本文通过一种多模态、无监督的方法,为服饰风格建模,并且为每一个服饰单品生成风格特征向量.在传统的服装搭配学习模型中,本研究加入了服饰在风格空间上预测的损失,作为模型学习的指导.经过实验,证明了加入风格空间上的损失能够提升服装搭配模型的学习效果.