深度学习在推荐系统上的应用

7岁 7岁     2022-10-09     602

关键词:

近些年,深度学习在语音识别、图像处理、自然语言处理等领域都取得了很大的突破与成就。相对来说,深度学习在推荐系统领域的研究与应用还处于早期阶段。

  携程在深度学习与推荐系统结合的领域也进行了相关的研究与应用,并在国际人工智能顶级会议AAAI 2017上发表了相应的研究成果《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》,本文将分享深度学习在推荐系统上的应用,同时介绍携程基础BI团队在这一领域上的实践。

  一、推荐系统介绍

  推荐系统的功能是帮助用户主动找到满足其偏好的个性化物品并推荐给用户。推荐系统的输入数据可以多种多样,归纳起来分为用户(User)、物品(Item)和评分(Ratings)三个层面,它们分别对应于一个矩阵中的行、列、值。对于一个特定用户,推荐系统的输出为一个推荐列表,该列表按照偏好得分顺序给出了该用户可能感兴趣的物品。

技术分享图片

  图1. 推荐系统问题描述

  如图1右边所示,推荐问题一个典型的形式化描述如下:我们拥有一个大型稀疏矩阵,该矩阵的每一行表示一个User,每一列表示一个Item,矩阵中每个“+”号表示该User对Item的Rating,(该分值可以是二值化分值,喜欢与不喜欢;也可以是0~5的分值等)。

  现在需要解决的问题是:给定该矩阵之后,对于某一个User,向其推荐那些Rating缺失的Item(对应于矩阵中的“?”号)。有了如上的形式化描述之后,推荐系统要解决的问题归结为两部分,分别为预测(Prediction)与推荐(Recommendation)。

  “预测”要解决的问题是推断每一个User对每一个Item的偏爱程度,“推荐”要解决的问题是根据预测环节所计算的结果向用户推荐他没有打过分的Item。但目前绝大多数推荐算法都把精力集中在“预测”环节上,“推荐”环节则根据预测环节计算出的得分按照高低排序推荐给用户,本次分享介绍的方案主要也是”预测”评分矩阵R中missing的评分值。

  二、基于协同过滤的推荐

  基于协同过滤的推荐通过收集用户过去的行为以获得其对物品的显示或隐式信息,根据用户对物品的偏好,发现物品或者用户的相关性,然后基于这些关联性进行推荐。

  其主要可以分为两类:分别是memory-based推荐与model-based推荐。其中memory-based推荐主要分为Item-based方法与User-based方法。协同过滤分类见图2。

技术分享图片

  图2. 协同过滤分类

  Memory-based推荐方法通过执行最近邻搜索,把每一个Item或者User看成一个向量,计算其他所有Item或者User与它的相似度。有了Item或者User之间的两两相似度之后,就可以进行预测与推荐了。

技术分享图片

  图3. 矩阵分解示意图

  Model-based推荐最常见的方法为Matrix factorization,其示意图见图3左边。矩阵分解通过把原始的评分矩阵R分解为两个矩阵相乘,并且只考虑有评分的值,训练时不考虑missing项的值,如图3右边所示。R矩阵分解成为U与V两个矩阵后,评分矩阵R中missing的值就可以通过U矩阵中的某列和V矩阵的某行相乘得到。矩阵分解的目标函数见图3,U矩阵与V矩阵的可以通过梯度下降(gradient descent)算法求得,通过交替更新u与v多次迭代收敛之后可求出U与V。

  矩阵分解背后的核心思想,找到两个矩阵,它们相乘之后得到的那个矩阵的值,与评分矩阵R中有值的位置中的值尽可能接近。这样一来,分解出来的两个矩阵相乘就尽可能还原了评分矩阵R,因为有值的地方,值都相差得尽可能地小,那么missing的值通过这样的方式计算得到,比较符合趋势。

  协同过滤中主要存在如下两个问题:稀疏性与冷启动问题。已有的方案通常会通过引入多个不同的数据源或者辅助信息(Side information)来解决这些问题,用户的Side information可以是用户的基本个人信息、用户画像信息等,而Item的Side information可以是物品的content信息等。例如文献[1]提出了一个Collective Matrix Factorization(CMF)模型,如图4所示。

技术分享图片

  图4. Collective Matrix Factorization模型

  CMF模型通过分别分解评分矩阵R,User的side information矩阵,Item的side information矩阵,其中User或者Item出现在多个矩阵中,其所分解的隐向量都是一致的。

  三、深度学习在推荐系统中的应用

  Model-based方法的目的就是学习到User的隐向量矩阵U与Item的隐向量矩阵V。我们可以通过深度学习来学习这些抽象表示的隐向量。

  Autoencoder(AE)是一个无监督学习模型,它利用反向传播算法,让模型的输出等于输入。文献[2]利用AE来预测用户对物品missing的评分值,该模型的输入为评分矩阵R中的一行(User-based)或者一列(Item-based),其目标函数通过计算输入与输出的损失来优化模型,而R中missing的评分值通过模型的输出来预测,进而为用户做推荐,其模型如图5所示。

技术分享图片

  图5. Item-based AutoRec模型

  Denoising Autoencoder(DAE)是在AE的基础之上,对输入的训练数据加入噪声。所以DAE必须学习去除这些噪声而获得真正的没有被噪声污染过的输入数据。因此,这就迫使编码器去学习输入数据的更加鲁棒的表达,通常DAE的泛化能力比一般的AE强。Stacked Denoising Autoencoder(SDAE)是一个多层的AE组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入,如图6所示。

技术分享图片

  图6. SDAE

  文献[3]在SDAE的基础之上,提出了Bayesian SDAE模型,并利用该模型来学习Item的隐向量,其输入为Item的Side information。该模型假设SDAE中的参数满足高斯分布,同时假设User的隐向量也满足高斯分布,进而利用概率矩阵分解来拟合原始评分矩阵。该模型通过最大后验估计(MAP)得到其要优化的目标函数,进而利用梯度下降学习模型参数,从而得到User与Item对应的隐向量矩阵。其图模型如图7所示。

技术分享图片

  图7. Bayesian SDAE for Recommendation Sysytem

  在已有工作的基础之上,携程基础BI算法团队通过改进现有的深度模型,提出了一种新的混合协同过滤模型,并将其成果投稿与国际人工智能顶级会议AAAI 2017并被接受。该成果通过利用User和Item的评分矩阵R以及对应的Side information来学习User和Item的隐向量矩阵U与V,进而预测出评分矩阵R中missing的值,并为用户做物品推荐。

技术分享图片

  图8. Additional Stacked Denoising Autoencoder(aSDAE)

  该成果中提出了一种Additional Stacked Denoising Autoencoder(aSDAE)的深度模型用来学习User和Item的隐向量,该模型的输入为User或者Item的评分值列表,每个隐层都会接受其对应的Side information信息的输入(该模型灵感来自于NLP中的Seq-2-Seq模型,每层都会接受一个输入,我们的模型中每层接受的输入都是一样的,因此最终的输出也尽可能的与输入相等),其模型图见图8。

  结合aSDAE与矩阵分解模型,我们提出了一种混合协同过滤模型,见图9所示。该模型通过两个aSDAE学习User与Item的隐向量,通过两个学习到隐向量的内积去拟合原始评分矩阵R中存在的值,其目标函数由矩阵分解以及两个aSDAE的损失函数组成,可通过stochastic gradient descent(SGD)学习出U与V,详情大家可以阅读我们的paper《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》[4]。

技术分享图片

   图9. 混合协同过滤模型

  我们利用RMSE以及RECALL两个指标评估了我们模型的效果性能,并且在多个数据集上和已有的方案做了对比实验。实验效果图如图10所示,实验具体详情可参看我们的paper。

技术分享图片

  图10. 实验效果对比

  在今年的推荐系统顶级会议RecSys上,Google利用DNN来做YouTube的视频推荐[5],其模型图如图11所示。通过对用户观看的视频,搜索的关键字做embedding,然后在串联上用户的side information等信息,作为DNN的输入,利用一个多层的DNN学习出用户的隐向量,然后在其上面加上一层softmax学习出Item的隐向量,进而即可为用户做Top-N的推荐。

技术分享图片

  图11. YouTube推荐模型图

  此外,文献[6]通过卷积神经网络(CNN)提出了一种卷积矩阵分解,来做文档的推荐,该模型结合了概率矩阵分解(PMF)与CNN模型,图见图12所示。该模型利用CNN来学习Item的隐向量,其对文档的每个词先做embedding,然后拼接所有词组成一个矩阵embedding矩阵,一篇文档即可用一个二维矩阵表示,其中矩阵的行即为文档中词的个数,列即为embedding词向量的长度,然后在该矩阵上做卷积、池化以及映射等,即可得到item的隐向量。User的隐向量和PMF中一样,假设其满足高斯分布,其目标函数由矩阵分解以及CNN的损失函数组成。

技术分享图片

  图12. 卷积矩阵分解模型

  四、总结

  本文介绍了一些深度学习在推荐领域的应用,我们发现一些常见的深度模型(DNN, AE, CNN等)都可以应用于推荐系统中,但是针对不同领域的推荐,我们需要更多的高效的模型。随着深度学习技术的发展,我们相信深度学习将会成为推荐系统领域中一项非常重要的技术手段。

深度学习在推荐系统的应用(代码片段)

MMoE模型(Multi-gateMixture-of-Experts)模型原始论文ModelingTaskRelationshipsinMulti-taskLearningwithMulti-gateMixture-of-Experts模型架构模型原理。模型特点基于神经网络的多任务学习本质上就是在多个任务之间加一个共享表示层,从数学上可以证明这... 查看详情

后深度学习时代,推荐系统向何处去?

近年来,深度学习出现并统治了人工智能领域。推荐系统技术迎来了一次重大的革新,推荐系统正式进入了深度学习时代。学术界尝试用深度学习设计推荐算法,工业界也将深度学习广泛应用于实际项目。01推荐系统... 查看详情

基于任意深度学习+树状全库搜索的新一代推荐系统

...了这个美妙的技术。以下是我结合了阿里技术对基于任意深度学习+树状全库搜索的新一代推荐系统的一些看法。Part0背景随着时代日新月异,推荐技术对各大互联网公司都起着越来越重要的作用,阿里针对大规模候选集上的匹配... 查看详情

keras深度学习实战——推荐系统数据编码(代码片段)

Keras深度学习实战——推荐系统数据编码0.前言1.推荐系统数据编码的必要性2.推荐系统数据编码2.1在推荐系统中对用户和电影进行编码2.2数据集介绍2.3用于推荐系统的编码策略2.4实现推荐系统编码模型相关链接0.前言在《自编码... 查看详情

深度学习在搜索和推荐领域的应用

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/                         &nbs 查看详情

深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

前言在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎、个性化推荐引擎、基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点。主要介绍的不同类型的推荐系统包括:近邻算... 查看详情

收藏|新南威尔士首篇《深度强化学习推荐系统》综述论文!

...,如有侵权,联系删除转载于:专知摘要鉴于深度强化学习(DRL)在推荐系统研究中的出现,以及近年来取得的丰硕成果,本研究旨在对深度强化学习在推荐系统中的最新发展趋势提供一个及时而全面的概述。我... 查看详情

深度学习——推荐算法基础原理

摘要互联网和信息计算的快速发展,衍生了海量的数据,我们已经进入了一个信息爆炸的时代,每时每刻都有海量信息产生,然而这些信息并不全是个人所关心的,用户从大量的信息中寻找对自己有用的信息也变得越来越困难。... 查看详情

深度学习在gilt应用——用图像相似性搜索引擎来商品推荐和服务属性分类

机器学习起源于神经网络,而深度学习是机器学习的一个快速发展的子领域。最近的一些算法的进步和GPU并行计算的使用,使得基于深度学习的算法可以在围棋和其他的一些实际应用里取得很好的成绩。时尚产业是深度学习的目... 查看详情

[推荐系统]1.深度学习与推荐系统

文章目录1推荐系统1.1推荐系统的作用和意义1.2推荐系统架构1.2.1推荐系统的逻辑架构1.2.2推荐系统的技术架构2前置知识2.1传统推荐模型的演化2.2协同过滤2.2.1概述2.2.2用户相似度计算2.2.3最终结果排序2.2.4ItemCF2.2.5UserCF和ItemCF的应... 查看详情

[推荐系统]1.深度学习与推荐系统

文章目录1推荐系统1.1推荐系统的作用和意义1.2推荐系统架构1.2.1推荐系统的逻辑架构1.2.2推荐系统的技术架构2前置知识2.1传统推荐模型的演化2.2协同过滤2.2.1概述2.2.2用户相似度计算2.2.3最终结果排序2.2.4ItemCF2.2.5UserCF和ItemCF的应... 查看详情

深度学习在美团点评推荐平台排序中的应用--学习笔记

...么搞的,dnn+lr的模型也是知道的,但是都没有试验过 深度学习在美团点评推荐平台排序中的运用原创 2017-07-28 潘晖 美团点评技术团队美团点评作为国内最大的生活服务平台,业务种类涉及食、住、行、玩、乐等... 查看详情

王喆-深度学习推荐系统实战基础架构篇-(task1)dl推荐系统架构

...,并且构建更好的拟合数据和表达能力的模型,深度学习上场了。其中DL推荐模型=召回层+排序层+补充策略与算法层,这里的模型指模型服务过程。推荐系统的逻辑架构:对于 查看详情

深度学习推荐系统领域的15个问题

深度学习推荐系统领域的15个问题转:https://zhuanlan.zhihu.com/p/1231032061.如果领导让自己同时带一个NLP团队和CV团队,而此时对CV却不熟悉,一般如何快速建立这样的多种类型的知识体系呢?和我的经历有一点像,我在职业生涯头五... 查看详情

推荐系统遇上深度学习--gbdt+lr融合方案实战

推荐系统遇上深度学习(十)--GBDT+LR融合方案实战0.8012018.05.1916:17:18字数2068阅读22568推荐系统遇上深度学习系列:推荐系统遇上深度学习(一)--FM模型理论和实践:https://www.jianshu.com/p/152ae633fb00推荐系统遇上深度学习(二)--FFM模型理论... 查看详情

从手淘搜索到优酷短视频,阿里巴巴是如何在搜索推荐领域下应用深度学习的?

摘要:深度学习是一个既可以处理特征、学习特征又可以实现最后的排序打分的一套整体解决方案,借助深度学习的解决方案,搜索推荐的工作方式将发生巨大的变化。想知道阿里巴巴如何将在搜索推荐领域下应用深度学习技术... 查看详情

深度学习在ctr中应用

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~作者:高航 一.Wide&&Deep模型首先给出Wide&&Deep[1]网络结构:本质上是线性模型(左边部分,Widemodel)和DNN的融合(右边部分,DeepModel)。推荐系统需要解决两... 查看详情

推荐系统遇上深度学习(代码片段)

推荐系统遇上深度学习(一)--FM模型理论和实践 https://www.jianshu.com/p/152ae633fb001、FM背景在计算广告和推荐系统中,CTR预估(click-throughrate)是非常重要的一个环节,判断一个商品的是否进行推荐需要根据CTR预估的点击率来进行。在... 查看详情