第二课第一章 深度学习在电商推荐上的应用

第二课第一章 深度学习在电商推荐上的应用

01.推荐系统问题

1.1信息过载与推荐的必要性

随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战。
然而,对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。

1.2 推荐系统的概念和定义

推荐系统的定义有不少,但被广泛接受的推荐系统的概念和定义是Resnick和Varian在1997年给出的:“它是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程”。
推荐系统有3个重要的模块:

  • 用户建模模块
  • 推荐对象建模模块
  • 推荐算法模块。 通用的推荐系统模型流程如下图所示。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。
    在这里插入图片描述

02.推荐系统一般思路与评估方法

推荐算法(或叫推荐策略)是整个推荐系统中最核心和关键的部分,在很大程度上决定了推荐系统类型和性能的优劣,推荐算法的研究是推荐系统最为繁荣的部分。目前,出现的推荐算法有很多,对其分类的标准也没有一个统一的标准,但受到大家公认的推荐算法基本包括以下几种:

  • 基于内容的推荐
  • 近邻算法推荐(协同过滤)
  • 基于关联规则的推荐
  • 基于矩阵分解的推荐(隐语义模型)
  • 基于社交关系的推荐
  • 组合信息推荐(混合神经网络)。

2.1 一般思路

2.1.1 基于内容的推荐

基于内容的推荐(content-based recommendation)方法源于信息获取领域,是信息检索领域的重要研究内容。该方法是根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。

  • 这一推荐算法首先提取推荐对象的内容特征,和用户模型中的用户兴趣偏好匹配,匹配度较高的推荐对象就可作为推荐结果推荐给用户。例如在进行音乐推荐时,系统分析用户以前选择的音乐的共性,找到用户的兴趣点。然后从其他音乐中选择和用户兴趣点相似的音乐推荐给用户;
  • 计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是该推荐策略中一个关键部分;
  • 计算所得的值按其大小排序,将最靠前的若干个对象作为推荐结果呈现给用户。
    基于内容的推荐算法中的关键就是用户模型描述和推荐对象内容特征描述。其中对推荐对象内容进行特征提取,目前对文本内容进行特征提取方法比较成熟,如浏览页面的推荐、新闻推荐等。但网上的多媒体信息大量涌现,而对这些多媒体数据进行特征提取还有待技术支持,所以多媒体信息还没有大量用于基于内容的推荐。
2.1.2 协同过滤推荐

协同过滤推荐(collaborative filtering recommendation)是推荐算法中最成功的算法,它于20世纪90年代开始研究并促进了整个推荐系统研究的繁荣。大量论文和研究都属于该类别。比如Grundy书籍推荐系统、Tapestry邮件处理系统,Grou-plens、Ringo等推荐系统都属于该类推荐。
协同过滤推荐的基本思想借鉴了日常在选购商品、选择用餐饭店、选择看哪部电影等等的方法。如果自己身边的很多朋友都选购某种商品,那么自己就会很大概率的选择该商品。或者用户喜欢某类商品,当看到和这类商品相似商品并且其他用户对此类商品评价很高时,则购买的概率就会很大。协同推荐的用户模型为用户-项目评价矩阵。
协同过滤推荐一般分为两类:

  • 基于用户的协同推荐(User-based Collaborative Filtering)
  • 基于项目的协同推荐(Item-Based Collaborative Filtering)
2.1.3 基于关联规则的推荐

基于关联规则的推荐系统(AssociationRule一basedReeommender)是以关联规则挖掘算法为基础,把用户已购买(或者喜好)的项目作为规则头,把规则体作为待选推荐对象。

2.1.4 基于矩阵分解的推荐

最典型的算法是隐语义模型,这类算法假定用户对商品的打分基于几个隐含的维度,进而通过矩阵分解来表达隐含的维度,进而进行用户和商品之间的关联。这类算法可以由tensorflow等工具库快速实现。

2.1.5 基于社交网络的推荐

有一些APP的场景下,存在非常明显的社交网络关系(比如新浪微博、QQ、微信、抖音等),这类产品中的推荐可以考虑基于社交关系(好友)等进行挖掘和推荐

2.1.6 组合信息推荐

虽则深度学习的高速发展,模型对于海量数据下的信息表达可以更加地充分,而且各种类型的数据(包括视频、图像等多媒体数据)的信息抽取方式更加多样化和有效,因此很多时候,我们会使用神经网络组合多种维度的数据源,在场景下构建模型,对用户的感兴趣程度进行刻画,进而完成预估和推荐。

另外也可以针对具体问题采用推荐算法的组合进行推荐,即所谓的组合推荐。组合推荐的目的是通过组合不同的推荐算法,达到扬长避短的目的,从而产生更符合用户需求的推荐。理论上讲可以有很多种的推荐组合方法,但目前研究和应用最多的组合推荐是把基于内容的推荐和系统过滤推荐的组合。

2.2 评估方法

在具体应用推荐系统和上线之前,我们需要对推荐系统各方面的性能进行评估和刻画。这些指标有些可以定量计算,有些只能定性描述,有些可以通过离线实验计算,有些需要通过用户调查获得,还有些只能在线评测。

2.2.1 用户满意度

用户作为推荐系统的参与者,其满意度是评测推荐系统的最重要指标。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。用户调查获得用户满意度主要是通过调查问卷的形式。用户对推荐系统的满意度分为不同的层次。
在线系统中,用户满意度主要通过一些对用户行为的统计得到。

  • 电子商务网站中,用户如果购买了推荐的商品,就表示他们在一定程度上满意,可以利用购买率度量用户的满意度
  • 有些网站会通过设计一些用户反馈界面收集用户满意度,有对推荐结果满意或者不满意的反馈按钮,统计两种按钮的单击情况
  • 更一般的情况下,我们可以用点击率、用户停留时间和转化率等指标度量用户的满意度
2.2.2 预测准确度

预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。这个指标是最重要的推荐系统离线评测指标。

  • 需要一个包含用户的历史行为记录的离线数据集
  • 将该训练集通过时间分成训练集和测试集
  • 通过在训练集上建立用户的行为和兴趣模型预测用户在测试集上的行为
  • 计算预测行为和测试集上实际行为的重合度作为预测准确度
    由于离线的推荐算法有不同的研究方向,因此下面将针对不同的研究方向介绍它们的预测准确度指标。
评分预测

预测用户对物品评分的行为称为评分预测。
评分预测的预测准确度一般通过均方根误差和平均绝对误差计算。

TopN推荐

主要计算召回率和准确率。准确率就是指我推荐的n个物品中有多少个是对的,其所占的比重。召回率则是指正确结果中有多少比率的物品出现在了推荐结果中。两者的不同就是前者已推荐结果个数当除数,后者已正确结果个数当除数。

2.2.3 覆盖率

覆盖率最简单的定义:推荐系统能够推荐出来的物品占总物品集合的比例,用来描述一个推荐系统对物品长尾的发掘能力。
就是指推荐出来的结果能不能很好的覆盖所有的商品,是不是所有的商品都有被推荐的机会。最简单的方法就是计算所有被推荐的商品占物品总数的比重,当然这个比较粗糙,更精确一点的可以用信息熵和基尼系数来度量。
一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率。研究表明现在主流的推荐算法都具有马太效应(强者更强,弱者更弱)。

2.2.4 多样性

为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域,即推荐结果具有多样性。
多样性描述了推荐列表中物品两两之间的不相似性,因此多样性和相似性是对应的。可以根据物品间的相似度来计算,一个推荐列表中如果所有物品间的相似度都比较高,那么往往说明都是同一类物品,缺乏多样性。
比如我看电影,我既喜欢看格斗类的电影,同时又喜欢爱装文艺,那么给我的推荐列表中就应该这两个类型的电影都有,而且得根据我爱好比例来推荐,比如我平时80%是看格斗类的,20%是看文艺类的,那么推荐结果中最好也是这个比例。

2.2.5 新颖性

新颖的推荐是指给用户推荐那些他们以前没有听说过的物品
在一个网站中实现新颖性的最简单方法:把那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉。
不能说系统推荐的物品其实我都知道,那这样推荐系统就完全失去了存在的意义,一般都希望推荐一些用户不知道的商品或者没看过没买过的商品。方法一是取出已经看到过买过的商品,但这还不够,一般会计算推荐商品的平均流行度,因为通常越不热门的物品越会让用户觉得新颖。比如我爱周星驰,那么推荐《临岐》就很有新颖性,因为大家都不知道这是周星驰出演的。

2.2.6 惊喜度

惊喜度是最近这几年推荐系统领域最热门的话题。
惊喜度和新颖性是有区别的:

  • 如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高;
  • 推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。
    提高推荐惊喜度需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣度的相似度。
2.2.7 信任度

度量推荐系统的信任度只能通过问卷调查的方式,询问用户是否信任推荐系统的推荐结果。如果用户信任推荐系统,那么往往会增加与推荐系统的互动,从而获得更好的个性化推荐。
提高推荐系统的信任度的两种方法:

  • 增加推荐系统的透明度(如,提供推荐解释);
  • 考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释
2.2.8 实时性

物品(新闻、微博等)具有很强的时效性,需要在物品还具有时效性时就将它们推荐给用户。推荐系统的实时性包括两个方面:

  • 推荐系统需要实时地更新推荐列表来满足用户新的行为变化。
  • 推荐系统需要能够将新加入系统的物品推荐给用户。这主要考验了推荐系统处理物品冷启动的能力。
2.2.9 健壮性

任何一个能带来利益的算法系统都会被人攻击,这方面最典型的例子就是搜索引擎(作弊和反作弊斗争)。推荐系统目前也遇到了同样的作弊问题,而健壮性指标衡量了一个推荐系统抗击作弊的能力。
最著名的作弊方法:行为注入攻击。
算法健壮性的评测主要利用模拟攻击。在实际系统中,提高系统的健壮性,除了选择健壮性高的算法,还有以下方法:

  • 设计推荐系统时尽量使用代价比较高的用户行为,比如有用户购买行为和用户浏览行为,那么主要应该使用用户购买行为,因为购买需要付费;
  • 在使用数据前,进行攻击检测,从而对数据进行清理。

YouTube深度学习推荐系统

不知属于上面的那个推荐算法,因此放到最后,供大家参考学习

后续通过理解学习,对矩阵分解、隐语义模型、深度自编码、神经网络协同过滤和基于混合神经网络的YouTube视频推荐的代码复现记录。

主要参考:
微专业《深度学习工程师(实战)》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值