Explainable Fashion Recommendation: A Semantic Attribute Region Guided Approach, In IJCAI,2019.
1. 简介
本文主要是提出了一种基于语义属性的可解释个性化服装推荐模型,即根据用户的喜好推荐服装,并从服装语义属性(袖长,领口等属性)的角度对推荐结果给出合理的解释。本文的motivation是:用户往往会有一些对服装属性的偏好,如下图展示了两个用户的购买记录,第一个用户明显倾向于购买有V领的衣服,第二个用户倾向于购买鞋头比较尖以及鞋跟比较高的鞋。
2. 挑战
- 由于许多大规模的电商数据缺少细粒度的服装属性标注,所以服装属性的语义特征表示难以学习;
- 用户的偏好比较复杂,传统的方法是将服装图片映射成一个特征表示去建模,这难以生成可解释性的推荐。
3. 方法
为了解决以上两个挑战,文中提出了一种基于与语义属性的可解释系统(Semantic Attribute Explainable Recommender System,SAERS)。该系统包含两部分,第一部分是语义提取网络(Semantic Extraction Network, SEN), 它利用无监督的方式定位属性相关区域并进一步提取特征;第二部分是基于注意力机制的细粒度偏好建模机制(Fine-grained Preferences Attention,FPA),该模块主要是匹配用户的偏好和细粒度的服装属性;最后利用贝叶斯个性化排序(Bayesian Personalized Rank, BPR)算法来进行优化 (由于文本的实验室将用户购买记录中的上品作为正例,其余没购买的商品作为负例,因此相当于利用了隐反馈,所以采用BPR进行建模)。
模型框架图:
1). 语义提取网络(Semantic Extraction Network, SEN):
由于实验所主要采用的数据集缺少细粒度的属性标注,所以利用了两个附属数据集来帮助预训练SEN。如果中绿框所示,首先通过将服装图片经过卷积网络进行多任务分类(每个子网络分类一个属性),分类loss如:
N是样本个数,A是属性个数,y_{I_a}是预测值,hat{y}_{I_a}是真实值。
借助grad-AAM (AAM的改进版,AAM去掉了全连接层,Grad-AAM不限制网络结构)的思想。以属性a为例,其概率最大预测类别为a_c(即a的第c个属性值),将其概率值y^{a_c}对最后一层卷积层得到的特征图上的每个元素求导并求平均(具体思想可以参考Grad-AAM论文),得到该特征图对预测出该属性值的重要性:
对每一个属性a而言,将求得特征图的权重和对应特征图加权求和得到一张新的特征图,该图上每个值的大小表示这个区域与该属性预测类别的相关程度:
然后利用得到的Grad-AAM进行简单阈值化操作便可以得到相关区域的bounding box,按照该bounding box对最后一层卷积层得到的特征图进行ROI pooling(其实就是只对特征图中相关区域的激活值进行全局平均池化),最后就可以提取出对应属性的特征表示。
2). 基于注意力机制的细粒度偏好建模机制(Fine-grained Preferences Attention,FPA)
为了得到一件服装图片的最终特征表示,最直接的办法是将所属性特征做一个平均池化,即:
f(i)表示第i个样本的最终特征表示,E^k是第k个属性的降维矩阵,f^k_a(i)是第i个样本第k个属性的特征表示。
但用户是否购买一件商品i,由于用户对每个属性的偏好不同,所以每个属性的贡献度也是不同的,为了灵活的考虑不同属性特征的权重,因此引入了注意力机制,综合考虑每个属性和用户的偏好关系,表达式形式化如下:
f(u)是用户的特征表示。
因此,我们可以采用一种新的方式来计算每件服装属性的整体表示(属性特征按照用户对其的偏好加权求平均),即:
最终的表示是属性的整体表示再加上服装的全局特征f_g(i):
最后可以通过一个预测函数P来计算用户u对服装i的喜好得分,P可以是任意的预测函数,论文中为了克服过拟合,采用了简单的点积运算:
3)优化
由于实验采用了隐反馈机制,即将用户购买记录中的服装作为正例,未购买的作为负例,因此引入了BPR机制来优化结果:
训练集是三元组形式,用户u以及买过的服装i和未购买过的服装j,优化目标希望u对i的喜好得分大于对j的喜好得分,公式(9)最后一项是正则项,用于克服过拟合。
4. 可解释性
模型可解释的方法主要从两个角度:第一个是Grad-AAM得到的热力图,即体现用户偏好的区域;第二个是用户对属性的偏好值(对应的attention值)。但个人觉得attention作为可解释的方法是值得怀疑的,因为attention大小并不一定和最后用户对服装i的喜好程度是正相关的,因为中间经过了许多非线性的转变,很难说y_ui得分高是因为attention score大的缘故。
5.实验
实验采用的主要数据集是Amazon Fashion,评价指标是AUC和NDCG。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。