跨域推荐(二) A Deep Framework for Cross-Domain and Cross-System Recommendations (IJCAI-18)

目录

介绍

跨系统

CDR分类

迁移方法的细分

模型

模型变化

基准的计算1

基准的计算2

基准的解释

others

总结


介绍

说好的跨域推荐,跨系统--措手不及呀。跨系统说的是啥呢,我也不知道。

跨系统

于是乎,文章一开始(第一页都算一开始吧)就解释了什么是跨系统。

Like CDR, Cross-System Recommendation (CSR) is also an effective solution for the data sparsity problem. CSR leverages the ratings or the knowledge derived from the source system to improve the recommendation accuracy in the target system, where both systems are in the same domain.

有了上一篇跨域的知识 ,我们从这段文字可以看出,跨系统也是解决推荐中数据稀疏性的一种方法,只不过跨系统是系统不同、域相同,跨域是域不同。所以跨系统到底是个啥,我还是不知道。

CDR分类

好了,言归正传,作者一开始就对CDR进行了分类,与上一篇文章不同的是,他把跨域分为基于内容的方法和基于迁移的方法。不同的论文采用不同的分类方法,看标准喽。那么基于内容的方法是什么呢,我还是上原文吧。

Content-based Approaches in CDR tend to link different domains by identifying similar user/item attributes [Chung et al., 2007], social tags [Fern´andez-Tob´ıas and Cantador, 2014], and user-generated texts [Tan et al., 2014].

基于内容的是根据两域之间相同的属性、标签以及用户产生文字的方法。就是根据共同点迁移嘛。

下面来看基于迁移的原文。

Transfer-based Approaches in CDR mainly focus on transferring latent factors [Pan et al., 2010] or rating patterns [Gao et al., 2013] from the source domain to the target domain. Different from the content-based approaches, transfer-based approaches typically employ machine learning techniques, such as transfer learning [Zhang et al., 2016] and neural networks [Man et al., 2017], to transfer knowledge across domains.

就是说,基于迁移的方法主要关心应用学习的技巧把潜在参数迁移过去。

啥区别呢,一个侧重迁移哪些内容,一个侧重迁移的方法。这。这这这。。。不就是上篇文章中说跨域主要关注的两个点吗?!! 

迁移方法的细分

然后又对基于迁移的方法继续细分:

However, the existing transfer-based approaches cannot effectively obtain an accurate mapping between the latent factors in two domains or systems. They either directly replace a part of the latent factors in the target domain or system with the corresponding latent factors in the source domain or system [Zhao et al., 2017] (Category 1), or map the latent factors of common users/items in the source domain or system to fit those in the target domain or system [Man et al., 2017] (Category 2).

要么是用源域的一部分代替目标域,要么是在源域和目标域中常见的users/items间建立映射。建立完映射呢,个人猜测会把不common的user从源域映射到目标域。本人继续猜测,第一种就是直接映射f(x) = x , 第二种f(x) 更加复杂。而且个人觉得第一种最简单的替代策略就是替代源域中common的,第二中用两域中common的fit,源域common而目标域不common的部分映射。也算是有差距吧。

接着作者就说缺点啦,说第一种忽视了两域之间潜在因素的复杂联系,第二种只用common users 不够有效且not reasonable(作者说的)。强行说不好,因为要提出来的好些,但也不能批的一无是处吧。

为什么对CDR(跨域推荐)分成内容和迁移两类后,又对迁移继续细分呢?既然都尴尬了,多一次也无妨嘛。其实呀,作者是想说,自家提出来的,迁移的内容方面照顾到了不common的,映射函数方面比一般的线性的非线性的都好(DNN hh)。

 

模型

模型变化

和上一篇一样,模型分为三部分,变了哪些呢?映射函数变了,变成DNN了。当然不止这些,否则能发A。作者提出了一个映射的基准(benchmark),DNN 用目标域信息去fit的是这个benchmark,而这个基准呢,different entites也能fit。这才是这篇文章的主要贡献,将源域different entites信息也迁移过去。

先说符号R代表rating矩阵,U V分别代表user item,分别为K*n和K*m 维,上标s t b 分别代表source target benchmark。

模型分为三部分

part1 求参  用MF(MMMF PMF 和 BPR)得到隐含参数 U^{s} V^{s} U^{t} V^{t} 四个矩阵 。

part2 映射  根据已有的 U^{s} V^{s} U^{t} V^{t} R^{s} R^{t} 六个矩阵得到 U^{b} V^{b} 基准矩阵,用目标域对应信息去fit 这俩中的一个,比如U^{b} ,得到映射函数,映射采用DNN映射,DNN之前需要normalize 到[0, 1],之后要denormalize 。

part3 推荐  根据 \hat{U^{b}} 和 R^{t} 得到 \hat{V^{b}} ,然后进行推荐。

第二部分怎么做的呢?

因为common user在源域中也比较稀疏,精度不能保证,因此提出benchmark的概念。

基准的计算1

对于common entites, 定义符号 CU 表示common users CV同理 

common entity稀疏度定义:

对于common entity e_{i} \in CU \cup CV ,已知其源域和目标域中rating数为n_{i}^{s} 和  n_{i}^{t} , 则两域稀疏度分别为 \alpha _{i}^{s} 和 \alpha _{i}^{t} , 其计算公如下:\alpha _{i}^{s} = n_{i}^{t} / (n_{i}^{t} + n_{i}^{s}) ,  \alpha _{i}^{t} = 1 - \alpha _{i}^{s} . 源域rating的数目越少,源域稀疏度越大。

那对应benchmark的计算为 CU_{i}^{b} = (1 - \alpha _{i} ^{s}) \cdot U_{i} ^{s} + \alpha _{i} ^{s} \cdot U_{i} ^{t} CU是common user

基准的计算2

对于different entites, 首先是符号的定于 DU ^{t} = U^{t} - CU 为different user ,同理于different item DV^{t},对于DU^{t} 中每一个user u_{i}CU^{t} 中选择k个最相似的users SU_{i} 同理于 SV_{i}^{t} 。

different entity稀疏度定义:

对于different entity e_{i} \in DU^{t} \cup DV^{t} ,已知其目标域中rating数为 n_{i}^{t} , e_{i} 的top-k 相似的entities 在源域的rating数的平均数为sn _{i} ^{s} , 则目标域稀疏度 \beta _{i}^{t} 定义为 \beta _{i}^{t} = sn_{i}^{s} / (n_{i}^{t} + sn_{i}^{s}) .

其对应benchmark的计算为 DU_{i}^{b} = (1 - \beta _{i} ^{t}) \cdot U_{i} ^{t} + \beta _{i} ^{t} \cdot SU_{i} ^{s}  其中

 SU_{i}^{t} = \sum_{u_{j} \in SU_{i}} (sim(u_{j}, u_{i}) \cdot U_{j} ^{s}) / \sum_{u_{j} \in SU_{i}} sim(u_{j}, u_{i})

基准的解释

different entity和common entity 稀疏度以及benchmark的计算有何异同呢?本质上两者都是对源域和目标域信息的加权平均,且目标域信息简单的就是其隐含参数,源域信息的处理两者不同,对于common entity,源域信息就是隐藏参数,而对于 different entity 源域信息可以简单的理解为目标域中最相似entities信息的平均。权重正比于所对应能提供的信息量。

这样,我们就能用上源域所有的common entites信息了,至于为什么用这些信息,为甚么不在目标域找最相似的k个entites呢,我也不知道。而且这样做,就能处理源域或目标域中common entites比较稀疏的情况,解决了之前提出了问题。

others

实验部分就是 数据集 对比方法 自身参数作用 等,不多赘述。结论部分就是 采用DNN映射的模型 迁移更多信息 以及效果更好。懒得说了。

总结

总结一下,文章首先说明自己跨域跨系统都ok,然后对跨域进行分类说明劣势(迁移哪部分、迁移方法以及映射函数),并据此提出模型。然后就是模型,映射函数采用的DNN,DNN去fit的内容是输入为目标域信息,输出为基准信息。基准信息的计算就是源域信息和目标域信息的根据稀疏度的加权平均。我们可以学到的就是拿不到的信息用相似的信息近似,嘿嘿嘿。

转载来源 https://blog.csdn.net/qq_32813967/article/details/81095219

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值