3.5 KiB
10.1 推荐系统概述
什么是推荐系统
你可能会有这样的经历,当你在电商网站闲逛时电商网站会根据你的历史行为轨迹分析出你的喜好,像你推荐一些你可能喜欢的商品。当你刷抖音,快手等小视频APP时,这些APP会根据你观看视频的时长、视频类型等数据进行判别,判别出你接下来可能更想要看到的视频。其实,这些基本上都是推荐系统的应用。
总结下来,使用的场景不外乎两个:帮你做内容推荐,或者说是筛选;另外就是做消费刺激,找到你想要买的东西。再抽象一点,其实考量的就是信息的相关行或者关联程度的问题。
基本概念
在开始前,我们先来明确一个问题,即什么是个性化推荐。简单来说,就是根据每个使用者的偏好,呈现出不同的内容。有一个误区要说明,所谓的热门推荐有时候网站上热卖或者流量最多的东西,并不一定是基于你的喜好分析的结果。
在明白问题界限之后,我们继续。接下来想想,既然是个性化的推荐,那么系统必然要维护一套用户模型,这个模型用来记录用户的偏好,从而预测这个用户可能感兴趣的内容。
那么用户模型的建立需要什么信息呢,一般来说可以从两种方式获取用户偏好信息。常见的一种方式就是由系统显示的询问用户,比如说在Apple music第一次使用时,它会让你选择自己喜欢的音乐类型和音乐人等信息;第二种方式就是隐式的记录用户使用时产生的数据。还是以Apple Music为例,假如你选择了摇滚和粤语的音乐类型,但是大部分时间你听的是周杰伦、Oasis的歌曲,那么系统会调整给你推荐的音乐,可能就不会听到陈奕迅的歌曲了。
除了用户本身的信息,那还有没其他可以利用的信息来进行推荐呢。答案是肯定的,其他用户产生的大量的信息或者物品本身的描述甚至与物品相关的因果知识,这些都是可以被使用的。
常见的推荐系统
不同的信息对应不同的推荐系统
-
协同过滤系统:前提就是如果另一个用户跟你曾经的购买经历很相似,那么当ta买了一本书而你还没有买的时候,那么你很有可能也会喜欢这本书,反过来也是一样的。这就相当于你跟这个用户隐式进行相互协作,所以成为协同过滤(Collaborative Filtering)。当然肯定不会只有你跟另一个用户两个人,这是会从大量用户集合中进行过滤分析的。
-
基于内容的推荐系统:无论是为了让你买东西还是给你找可能想阅读的文章,如果我们从这些被推荐项着手,试着分析它们的特征,比如说体裁、类型、风格、颜色等与你之前购买或者阅读的偏好信息进行匹配,这就是基于内容的推荐系统(Content-Based Recommendation)
-
基于知识的推荐系统。通过上面的介绍,我们可以知道大量多次的购买是CBS跟CF的前提,但是如果面对的是大量的单词购买者呢(比如说汽车),这个时候怎么办?我们可以考量使用更为精细和结构化的信息,比如说专业的特征等来构建明确的约束条件,同时,我们也看到,约束条件往往会跟用户有一个交互式的引导,这样才能比较好的摸索出用户的喜好。
本章中主要介绍协同过滤算法,并讲解如何实现电影推荐功能。