天津网站建设维护,河南搜索引擎推广价格,网站开发的系统需求,学习怎么做网站总第 111 篇文章#xff0c;本文大约 3000 字#xff0c;阅读大约需要 10 分钟今天介绍的是一篇个性化搭配推荐的论文#xff0c;是 2017 年时候的论文#xff0c;这也是比较早的开始结合搭配和个性化推荐的一个工作#xff0c;基于度量学习和排序学习的方法。论文题目本文大约 3000 字阅读大约需要 10 分钟今天介绍的是一篇个性化搭配推荐的论文是 2017 年时候的论文这也是比较早的开始结合搭配和个性化推荐的一个工作基于度量学习和排序学习的方法。论文题目FashionNet: Personalized Outfit Recommendation with Deep Neural Network论文地址https://www.ijcai.org/proceedings/2017/0239.pdf概览将推荐加入到搭配中实现个性化搭配的推荐。采用的也是深度学习的算法-- CNN 模型具体实现就是用 VGG-16 网络模型作为基础实现 FashionNet 模型一个 FashionNet 模型包括两个网络特征提取网络和实现搭配的匹配网络这部分作者设计了 3 种网络结构并做了对比实验而在训练上采用的两阶段训练策略即先训练一个通用的搭配模型然后加入用户信息来微调网络模型此外网络的最终结构如下所示输入两套搭配正样本是训练集 polyvore 也就是用户自己上传的搭配负样本就是随机选择衣服的搭配分别通过 FashionNet然后计算 RankLoss。研究方法本文研究的问题类似于度量学习度量学习需要学习的是物体间的距离或者说是相似性而搭配需要学会的是衣服之间的匹配性网络结构设计了三种网络结构如下图所示。FashionNet A第一种网络结构输入的时候将一套搭配里的衣服图片在颜色通道上进行concat得到的就是一个 w*h*9 的输入图片然后输入 VGGNet 网络提取特征接着是 1 个 FC(全连接)层 softmax输出两个数值表示喜欢和不喜欢的概率这个网络的特点就是将特征学习和匹配性衡量都集成在一起FashionNet B第二种网络结构输入的时候并不会将搭配中的衣服图片 concat 起来而是分别传入单独的 VGGNet 中但每种衣服经过的网络都是相同的也就是都被影射到共同的隐空间中然后提取到的特征 concat 起来后面跟着 3 个 FC 层 softmax。FashionNet C前两个网络的问题在获取高阶关系的时候会有困难造成数据空间的扩大原始数据或者特征空间这要求大量的训练样本但实际上并没有足够数量的训练样本因此第三种网络结构特征提取部分和 FashionNet B 是一样的但是之后则是将任意的两个衣服提取到的特征 concat经过各自的匹配网络3FCsoftmax匹配网络的数量就和搭配数量有关系了不同的匹配网络应用于不同类型衣服对比如上装-鞋子上装-下装对等匹配网络的结果会累加起来得到搭配的最终得分 s。训练网络模型最终训练的网络结构如下图所示个性化搭配推荐不仅仅涉及到度量学习还是是一个排序学习learning-to-rank 问题输入是正负样本对分别输入一个 FashionNet 网络输出的评分 s 再采用 rank loss 计算 Loss。公式如下图所示训练采用两阶段训练策略的原因有每个用户的搭配数量是比较少的特别是如果需要训练一个性能很好的神经网络很多用户的搭配都比较相似这些相似的搭配数量并不少尽管每个用户的搭配审美都不完全相同但还是存在很多通用的搭配尝试比如衬衫通常都会搭配牛仔裤基于以上的原因选择两阶段训练网络的策略。第一阶段的训练是学习一个通用的搭配网络模型在这一步会丢弃用户信息将所有的搭配都混合在一起然后训练网络。一个训练样本是正样本和负样本的搭配对采用在 ImageNet 上预训练好的参数初始化 VGGNet其他的网络层参数则是通过高斯分布进行初始化第二阶段是训练用户特定的模型user-specific model来进行个性化推荐。初始化是用第一步训练好的网络模型参数接着使用每个用户的数据来微调网络。对于上述的 3 种网络结构在第二阶段的微调是这样设置的FashionNet A 的微调是对整个网络都微调特征提取和匹配网络对于 B 和 C 两个网络有两种策略微调整个网络特征提取网络和匹配网络都会有个性化的参数也就是对不同的用户同样的衣服会有不同的特征表示固定特征提取网络仅微调匹配网络。这种做法会加快训练速度实际应用中更多的微调都是这种做法。三种网络结构的参数设置情况如下所示实验数据集采用的 Polyvore 数据集包含来自 800 个用户上传的搭配数据每套搭配是三件衣服--上装、下装和鞋子将 polyvore 作为正样本负样本则是随机选择上装、下装和鞋子得到的搭配。数据集分为训练集、验证集和测试集在每个集合中每个用户的正样本数量分别是 20246 和 62而负样本则是正样本的 6 倍也就是 1212276 和 372。指标NDCG 评价标准用来评价一个排序的列表其公式如下所示第 m 个位置的 NDCG 是 表示一个理想排序的得分对于正样本 是 1负样本是 0NDCG 的最优数值是 1Mean NDCG 是 NDCGm m1,....M表示排序的长度的均值最终采用的指标mean NDCG所有用户的 mean NDCGm也就是先计算不同m数值的NDCG然后求平均再除以用户数量average of NDCG m所有用户的NDCGm不同m值的均值仅除以用户数量top-k 结果中正样本的数量特定的 k 数量参数设置使用的框架是 Caffebatch 为 30epoch 是 18。学习率的策略参考论文《Return of the devil in the details: Delving deep into convolutional nets》。实验结果实验结果如下图所示上图中Initial 是采用初始化参数的结果也就是预训练模型的结果Stage one 就是训练好第一阶段的模型Stage two (partial) 和 Stage two(whole) 就是第二阶段的微调的两种策略前者就是固定特征提取网络微调匹配网络后者就是整个网络都微调Stage two(direct) 是不经过第一阶段的训练直接微调网络的结果应该就是直接用每个用户的数据来训练一个网络模型的结果。通过实验结果的对比可以得到这四个结论FashionNet A vs B、C 前者是将特征提取和匹配计算都放在一个网络中而后面两种网络是分开这两种功能实验结果表明采用不同网络实现不同的功能可以取得更好的性能FashionNet B vs C 两个网络的区别是在匹配网络的设计前者是仅设计了一个匹配网络后者是任何两种不同类别的衣服的特征进行 concat 后输入一个单独的匹配网络实验结果是后者的效果更好这表明将高阶关系分开成一系列成对组合是更佳的解决办法两阶段训练策略 对比第一阶段和第二阶段的结果后者效果更好这也说明微调是非常有用的技术Stage two (partial) vs Stage two(whole) 实验结果表明后者的效果更好这表明学习一个特定用户的特征表示对于推荐任务很有帮助但这种策略的训练时间会更久它需要重新计算所有衣服的特征因此实际应用会采用效果稍差的第一种方法仅仅微调匹配网络。小结这篇论文的思路是结合了度量学习和排序学习的方法并且应用了 CNN 来进行特征提取然后计算衣服之间的匹配性训练策略上也是从训练通用的搭配模型到训练个性化搭配模型。不过这里我也还是存在一个小小的疑问的按照论文的介绍第二步采用用户的搭配来训练个性化推荐模型那最终就是每个用户都会训练得到一个模型也就是用户越多训练得到的模型数量也就越多了当然这可能也是我的理解不到位如果看过这篇论文的也欢迎和我讨论一下。欢迎留言跟我进行交流欢迎关注我的微信公众号--算法猿的成长或者扫描下方的二维码大家一起交流学习和进步如果觉得不错在看、转发就是对小编的一个支持