-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FashionNet: Personalized Outfit Recommendation with Deep Neural Network #1
Comments
概览将推荐加入到搭配中,实现个性化搭配的推荐。采用的也是深度学习的算法-- CNN 模型,具体实现就是用 VGG-16 网络模型作为基础,实现 FashionNet 模型,一个 FashionNet 模型包括两个网络,特征提取网络和实现搭配的匹配网络,这部分作者设计了 3 种网络结构,并做了对比实验,而在训练上采用的两阶段训练策略,即先训练一个通用的搭配模型,然后加入用户信息来微调网络模型,此外网络的最终结构如下所示,输入两套搭配,正样本是训练集 polyvore ,也就是用户自己上传的搭配,负样本就是随机选择衣服的搭配,分别通过 FashionNet,然后计算 RankLoss。 |
主旨作者想解决什么问题?个性化搭配推荐 作者通过什么理论/模型来解决这个问题?基于深度学习,以 VGGNet 为基础,设计了一个 FashionNet 网络模型 作者给出的答案是什么?利用 CNN 进行特征提取,然后采用 FC 层进行衣服的匹配性计算,训练上采用两阶段训练,先训练一个通用的搭配模型,再加入用户信息微调模型。 作者为什么研究这个课题?时尚搭配的需求越来越高,分类、检测、分割等都有在研究,其中搭配推荐的研究和需求也是非常大; 目前这个课题的研究进行到了哪一阶段之前对于搭配的研究,大部分还处于学习任何两个单品之间的匹配性,以及学习比较通用的搭配模型,并没有考虑个性化推荐;最近开始有一个研究个性化搭配推荐,但还是通过手动设计特征的方法; 而在推荐方面,开始应用深度学习的网络,但推荐的都是单独的物品,并没有尝试推荐搭配这样的做法; 作者使用的理论是基于哪些假设?
这篇文章存在哪些缺陷?
作者关于这个课题的构思有哪几点?
|
研究方法本文研究的问题类似于度量学习,度量学习需要学习的是物体间的距离,或者说是相似性,而搭配需要学会的是衣服之间的匹配性; 网络结构设计了三种网络结构,如下图所示。 FashionNet A第一种网络结构,输入的时候将一套搭配里的衣服图片在颜色通道上进行concat,得到的就是一个 这个网络的特点就是将特征学习和匹配性衡量都集成在一起; FashionNet B第二种网络结构,输入的时候并不会将搭配中的衣服图片 concat 起来,而是分别传入单独的 VGGNet 中,但每种衣服经过的网络都是相同的,也就是都被影射到共同的隐空间中,然后提取到的特征 concat 起来,后面跟着 3 个 FC 层 + softmax。 FashionNet C前两个网络的问题:
因此,第三种网络结构,特征提取部分和 FashionNet B 是一样的,但是之后则是将任意的两个衣服提取到的特征 concat,经过各自的匹配网络(3FC+softmax),匹配网络的数量就和搭配数量有关系了;不同的匹配网络应用于不同类型衣服对,比如上装-鞋子,上装-下装对等,匹配网络的结果会累加起来的到搭配的最终得分 s。 训练网络模型最终训练的网络结构如下图所示, 个性化搭配推荐不仅仅涉及到度量学习,还是是一个排序学习(learning-to-rank )问题,输入是正负样本对,分别输入一个 FashionNet ,网络输出的评分 s ,再采用 rank loss 计算 Loss。公式如下图所示: 训练采用两阶段训练策略的原因有:
基于以上的原因,选择两阶段训练网络的策略。 第一阶段的训练时学习一个通用的搭配网络模型,在这一步,会丢弃用户信息,将所有的搭配都混合在一起,然后训练网络。一个训练样本是正样本和负样本的搭配对,采用在 ImageNet 上预训练好的参数初始化 VGGNet,其他的网络层参数则是通过高斯分布进行初始化; 第二阶段是训练用户特定的模型(user-specific model)来进行个性化推荐。初始化是用第一步训练好的网络模型参数,接着使用每个用户的数据来微调网络。 对于上述的 3 种网络结构在第二阶段的微调,是这样设置的:
三种网络结构的参数设置情况如下所示: |
实验数据集采用的 Polyvore 数据集,包含来自 800 个用户上传的搭配数据,每套搭配是三件衣服--上装、下装和鞋子,将 polyvore 作为正样本,负样本则是随机选择上装、下装和鞋子得到的搭配。 数据集分为训练集、验证集和测试集,在每个集合中,每个用户的正样本数量分别是 202,46 和 62,而负样本则是正样本的 6 倍,也就是 1212,276 和 372。 指标NDCG 评价标准,用来评价一个排序的列表,其公式如下所示,第 m 个位置的 NDCG 是: ![](/Users/luocai/Nutstore Files/Study-Notes/paper_reading/images/FashionNet/FashionNet_ndcg.png) NDCG 的最优数值是 1; Mean NDCG 是 NDCG@m (m=1,....M,表示排序的长度)的均值; 最终采用的指标:
参数设置使用的框架是 Caffe,batch 为 30,epoch 是 18。 学习率的策略参考论文《Returnofthedevilinthedetails:Delvingdeep into convolutional nets》。 实验结果实验结果如下图所示: 上图中, 通过实验结果的对比,可以得到这四个结论:
|
论文地址:https://www.ijcai.org/proceedings/2017/0239.pdf
The text was updated successfully, but these errors were encountered: