坤哥笑侃跨域推荐(一) Cross-Domain Recommendation, An Embedding and Mapping Approach (IJCAI-17)

本文主要是介绍坤哥笑侃跨域推荐(一) Cross-Domain Recommendation, An Embedding and Mapping Approach (IJCAI-17),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是本人看的第一篇跨域推荐的文章,刚接触这一领域,有所错误,请多指正。

目录

跨域分类

面临挑战

模型

实验对比

总结


跨域分类

正如文章一开始说,跨域推荐是解决推荐领域数据稀疏性(sparsity)的一种方法。紧接着,文章介绍了两种跨域的方式以及缺点:

    1)非对称方式,利用源领域知识降低目标领域知识的稀疏性。这时源领域的知识在目标领域充当先验或正则化项的作用(不是我说的,我负责翻译哈,错了别打我)。作者说方法的核心是确定哪些知识可以被迁移过去,但笔者觉得还有一个重点就是如何迁移。

    2)第二种方式就是对称方式,将两领域同等看待,互为补充。他们有自己独立的特征(factor)以及共享的特征。作者认为这些过多的特征会加剧稀疏性(作者的解释哈)。

其实笔者认为,两种分类的区别在于:非对称方式中源域的知识足够多而目标域知识相对少,,换句话说,源域需要的知识目标域无法提供,而目标域需要源域的知识,,formally ,源域知识与目标域知识的交集为目标域知识(交集符号太好看了), 这样目标域的知识没必要迁移或迁移过去没多大作用;而对称方式中源域和目标域知识都不太多,有一定交集,也有各自的部分,需要互为补充提高精度。作者说他们的方法属于第二种。

面临挑战

接着作者就摆明面临的挑战。一是源域与目标域的映射函数的格式,作者认为线性和非线性是个问题,因为他觉得,非线性映射需要的数据量大,容易过拟合,但笔者认为应该考虑两者有什么内部联系使得可以映射,如何利用内部联系构造映射(但会局限于一类数据集哦),另一篇后来的文章中直接用神经网络(DNN)映射,解释上也只能说效果好了。二是哪一部分知识可以映射过去,因为有些知识本身不够精确,迁移过去就是误人子弟嘛。

模型

然后就是模型了。三步走。

    1)求隐含参数(latent factor modeling),即两个域的U^{s} V^{s} U^{t} V^{t}(四个矩阵,谢谢), s上标为源域(source),t上标为目标域(target)。了解过推荐的应该知道rating矩阵R = U^{T}V 其中U是K*U维的,V是K*V维的,K为隐含参数的维数,U为用户user数,V为item数。方法为MF(Matrix Factorization)和BPR。
    2)潜在空间映射(latent space mapping),即在U^{s} 和 U^{t} 某一部分(都有,且隐含参数都比较精确的部分)之间找个映射使得f(U^{s}) =  U^{t} ,item中V同理。作者采用的映射方法为线性映射(LM Linear Mapping)和非线性多层感知器映射(MLP-based Nonlinear Mapping)。

    3)推荐。简单的说吧,就是在源域目标域都充足的知识(笔者理解,例如用户相同时,知识就是用户的latent factor,一些由于rating矩阵相应部分信息少(rating数少,嘿嘿)而导致求得的latent factor不精确,个人认为这就是知识不足吧)部分之间建立映射,在源域中充足、目标域不充足的知识之间利用映射得到目标域的隐含参数,并作推荐。

实验对比

接着就是实验的对比,由于求潜在参数以及映射函数的多样性,自身的模型有许多不同的实现,与基本的baseline对比展示优越性,并调整自身模型参数说明参数的作用,这是对比实验的常规操作。数据集用的是Netflix-Movielens和Douban(自己爬的),训练集测试集的划分是对目标域rating矩阵随机采样,即sample(以user举例)U * i% 行作为测试,剩下的rating信息和源域rating矩阵作为训练。

最后的结论就是把一件事分成几部分说,如本文把模型三部分重新说了一遍以及实验效果好。

总结

总结一下,这篇文章中,作者成功地将跨域推荐分为两类,实际是数据集本身问题采取的不同应对策略(能互相促进,干嘛单方面提供帮助呀呢);说明了两大挑战,是因为其他关键点现有方法基本都ok了,就剩俩了;提出了模型三步走,知识提取、知识映射、(用)知识推荐,没看过之前的跨域论文,不知道之前的模型长啥样,不做评价;实验和总结嘛,常规formal喽。所以我们学到的就是这个three part的model啦。

 

 

这篇关于坤哥笑侃跨域推荐(一) Cross-Domain Recommendation, An Embedding and Mapping Approach (IJCAI-17)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810314

相关文章

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1