原文:【技术分享】用深度学习算法感知你的穿衣风格 - 2017.04.27

出处: 大数据与多模态计算 - 微信公众号

作者: 刘强

论文:Learning User Preferences for Visual Recommendation - 2017

人们常说“所见即所得. ”在推荐系统中,视觉信息也扮演着十分重要的角色,尤其是在服装、珠宝、装饰等外观对人们的选择起着重大作用的领域中. 因此,研究用户喜好和商品特性的视觉维度变成了一个很重要的任务.

近年来,服装等商品的搭配、推荐受到了广泛的关注,并在基于视觉的推荐问题中取得了一定的成果. 但是,目前工作对于商品的表征,往往是在一个通用的视觉特征空间中,比如CNN (Convolutional Neural Networks)网络的输出层特征. 这样的视觉特征表示,对商品的类别比较敏感,却难以建模商品的不同风格.

如下图所示,我们根据CNN网络的输出层特征对Amazon数据中的服装商品进行聚类,每一行表示一个类别. 可以看到,不同类别的服装(比如,上衣、裙子、裤子、鞋等)被聚类到了一起,而不同风格的服装(比如,正式、休闲、运动等)没有被聚类到一起,甚至男装和女装间的区分度也很低.

image

这样的视觉特征表示很难有效地用于推荐系统中,因为相似风格的商品往往会被同一个人同时购买,但在视觉特征空间中却并不相似,这就为提升推荐效果带来了难度. 比如,西裤和皮鞋一般是搭配在一起并被同时购买的,但西裤和皮鞋的相似度要远远小于西裤和牛仔裤的相似度.

根据上面的观察,我们提出了一个假设:一个商品(item)由风格(style)和类别(category)两部分构成,并且满足:

$$ item = style + category $$

1. DeepStyle 方法

基于上面的假设,我们提出了DeepStyle方法,学习用户的喜好和商品的风格属性,并应用于基于视觉的推荐中.

image

在DeepStyle模型中,我们将每个商品的图片输入到CNN网络中,其中这个CNN网络在ImageNet上经过了预训练. 经过CNN,我们可以得到每个商品的视觉特征向量. 然后,根据前文的假设,我们从商品的视觉特征向量中减除了该商品对应类别的隐含表达,进而得到了商品的风格特征向量.

随后,我们将得到的风格特征向量输入到 BPR (Bayesian Personalized Ranking)框架中实现个性化推荐. 对每个用户,采样正负商品样本对(正样本表示实际购买了的商品,负样本表示没有购买过的商品),通过优化,尽量扩大该用户和正样本的相似度,减小和负样本的相似度. 我们的模型以用户的实际购买记录为监督进行训练,以SGD (Stochastic Gradient Descent)进行参数学习,直至模型收敛.

2. 实验效果

我们在Amazon数据的服装子集和家装子集上进行了实验,用AUC指标评判推荐效果,与多个当下最优的方法进行了对比,并进行了热启动和冷启动两种场景下的实验:

image

可以看到,在不同数据和不同的场景下,我们的DeepStyle方法都取得了最优的推荐效果.

除此之外,我们还对模型学习得到的商品风格特征向量进行了聚类,如下图所示,每一个方框中的商品属于一个类别:

image

可以看到,DeepStyle学到的风格特征可以很好地表征商品的不同风格,有效地挖掘用户的喜好,而在训练过程中完全没有商品风格方面的监督信息.

更多详细内容请参考以下文章:

Qiang Liu, Shu Wu, Liang Wang, DeepStyle: Learning User Preferences for Visual Recommendation, ACM SIGIR Conference on Research and Development in Information Retrieval, 2017.

Last modification:May 15th, 2019 at 09:21 pm