Press "Enter" to skip to content

[NLP]智能服饰搭配的方案讨论

近期做的一个工作是关于智能穿搭的,任务背景是在线上虚拟试衣间中,给定上衣,需要推荐下衣作为搭配。从整体上看,是一个推荐问题,技术思路是标准的召回和排序两阶段任务。在具体实现上,可以仅从NLP的角度求解,也可以从CV的角度求解,还可以从Graph的角度求解,本质上是利用的信息模态不同,当然可以做多模态信息融合。从学术角度上看,这个工作在CV的同学圈子中似乎做的更多一些,这里简单梳理一下相关经典工作。

 

一个基于专家模型的方案设计如下:

 

 

流程上看主要是结构化引擎和业务规则引擎两个重点工作。这里关注其他的解决思路。

 

《Context-Aware Visual Compatibility Prediction》

 

这篇文章是基于GCN的建模方式,具体思路如下。将服饰搭配转化为一个基于Graph的Link Prediction或者Edge Classification问题,采用Triplet Loss作为损失函数。

 

 

其中,需要关注的是待预测商品(作为节点)的表征问题,一般采用基于BFS算法找到满足给定周围节点数的节点表征做融合,具体如下:

 

《Fashion Outfit Generation for E-commerce》

 

这篇文章采用二分类的方式来做。在特征表示阶段的做法如下,利用了多模态的信息,具体包括图片本身的信息,商品标题信息和商品类目(在电商体系下,这三类数据都比较容易获取)。

 

 

二分类阶段的工作如下(比较朴素的做法):

 

 

《Learning Type-Aware Embeddings for Fashion Compatibility》

 

这篇工作也是比较经典的,基于度量学习的方式,整体上的解决方案也相对朴素,模型架构如下:

 

对比三篇工作,第一篇主要亮点在基于Graph来做,这样理论上能够获取更加Structural的Context信息;第二篇的工作中规中矩,体现在Compatibality Prediction任务中,多模态信息融合的必要性;第三篇主要特色在于Metric Learning范式的使用,同时融合了多模态信息作为Regularization(学术灌水的标准套路)。

 

作为Compatibality Prediction任务的特色,三篇文章都在讨论的问题是:Similarity和Compatibality。在第三篇文章中,描述了二者的区别:

 

Similarity:when two tops are interchangeable
Compatibality:items of possibly different type that can go together in an outfit

 

一个好的模型,通常希望能够学到上述两个概念。在博主之前的问答匹配任务中,提到的两个概念是:相似性和相关性。和该任务相比,在概念学习上,有异曲同工之妙。

 

除此之外,还有很多其他有趣的基于Graph的任务,如下:

 

 

服饰搭配推荐研究综述 中,总结了该领域的问题和难点,数据集,评测方法和主流算法。从另外一个角度来看,也就是FashionAI的角度,相关工作为 FashionAI全球挑战赛决赛现场答辩 ,具体内容为服饰关键点定位(服饰属性标签识别)。

 

除了基于CV和Graph的解决思路,还有基于NLP的方案,比如在 2015年天池大赛-淘宝穿衣搭配大赛:第一名方案 中,有一些相关讨论。由于比赛数据是脱敏的,因此无法直接使用。该比赛的基本解决思路有两种:第一种是给定商品,直接找可以搭配的商品;第二种是利用达人的搭配结果,通过计算商品相似性,得到可以搭配的商品。类比于问答系统,第一种给定Q,借助问答模型(生成模型等)直接得到A;第二种,利用QA知识库,通过QQ匹配,得到A作为返回结果。

 

Graph结构是一种通用的数据组织方式,适用于图片和文本,在上文中讨论了基于GCN的商品穿搭任务,Graph用于NLP的相关工作,可以参考 GNN4NLPbenchmarking-gnns 。考虑到Graph的组成元素,基本任务包括:Node Classification,Graph Regression, Graph Classification, Edge Classification/Link Prediction。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注