推荐系统初步研究

1、定义:它利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程

广义:刻画用户特征和商品特征的关联关系,根据用户(物品)的特征按照它们之间的关联程度来进行排序展示。

    1.1、本质:

        通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。

        比如,利用好友,用户历史兴趣记录以及用户的注册信息

    1.2、工作原理:

        1、社会化推荐        

        2、基于内容的推荐

        3、查看排行榜

        4、基于协同过滤

2、基本组成

        推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选找到用户感兴趣的推荐对象,然后推荐给用户。

        一个好的推荐系统要给用户提供个性化的、高效的、准确的推荐,那么推荐系统能够获取反映用户多方面、动态变化的兴趣。

偏好。

                                        图1、推荐系统通用模型

基本可以分为

2.1、用户建模模块:

    2.1.1、目标:

        1、能获取、表示、存储和修改用户兴趣偏好,能进行推理

        2、对用户进行分类和识别

        3、帮助系统更好地理解用户特征和类别,理解用户的需求和任务,从而更好地实现用户所需要的功能

    

    2.1.2、存在问题:

        1、建模之前需要考虑一下问题

            I)、 模型的输入数据有哪些,如何获取模型的输入数据

            II)、 如何考虑用户的兴趣及需求的变化

            III)、建模的对象是谁

            VI)、清楚了上述内容后,怎么建模

            V)、 模型的输出是什么。

   2.1.3、 建模过程:

    

                                       图2、用户建模的过程

        

       2.1.4、 模型输入数据

            1、用户属性

            2、用户手工输入的信息

            3、用户的浏览行为和浏览内容

            4、推荐对象的属性特征

      2.1.5、 模型输入数据的方式

            1、显示获取:用户主动告知

                    优点:简单而直接的做法,能相对准确地反映用户的需求,同时所得的信息比较具体、全面、客观、结果往往比较可靠

                    缺点:很难收到实效,主要原因就是很少用户愿意花时间或不愿向系统表达自己的喜好

            2、隐式获取:系统根据用户行为,通过推理获取用户的兴趣偏好

                    优点:减少用户很多不必要的负担,不会打扰用户的正常生活

                    缺点:跟踪结果未必能正确反映用户的兴趣偏好

        2.1.6、建模的对象分类:它有单用户建模和群组建模之分

            单用户:建模针对单个用户进行建模,比如基于内容的推荐

            群组建模:是针对群体用户进行建模,比如协同过滤

        2.1.7、建模常用的建模方法:

            遗传算法、

            基于机器学习的方法:TF-IDF、自动聚类、贝叶斯分类器、决策树归纳和神经网络方法

2.2、推荐对象的建模

    2.2.1、存在问题:

        描述前也要考虑一下问题:

            I)、  提取推荐对象的什么特征,如何提取,提取的特征用于什么目的。

            II)、 对象的特征描述和用户文件描述之间有关联。

            III)、提取到的每个对象特征对推荐结果会有什么影响。

            VI)、对象的特征描述文件能否自动更新。

    2.2.2、建模方法:不同的对象,特征也不同,目前并没有一个统一的标准来进行统一描述,主要有基于内容的方法和基于分类的方法两大类方法。下是针对文档类对象的这两种表示方法给以分析

            基于内容的方法:从对象本身抽取信息来表示对象,使用最广泛的方法是用加权关键词矢量,该方法通过对一组文档的统计分析得出文档的特征向量。在完成文档特征的选取后,还得计算每个特征的权值,权值 大的对推荐结果的影响就大。目前使用最广泛的是TF-IDF方法。

            基于分类的方法:把推荐对象放入不同的类别中,这样可以把同类文档推荐给该类文档感兴趣的用户了。文本分类的方法有多种,比如朴素贝叶斯(Naive-Bayes),k最邻近方法(KNN)和支持向量机(SVM)等。对象的类别可以预先定义

,也可以利用聚类技术自动产生。

    2.2.3、推荐原则:

        1、结合领域相关技术进行对象特征提取。

        2、推荐给用户的对象不能喝之前用户看过的对象重复。

        3、不能模拟过拟合(不搭嘎)

        4、出现新的对象时,尤其是系统过滤系统中存在冷启动问题(推荐系统无法对新对象进行分析和推荐,需等待相关用户查看信息)

    2.3、推荐算法模块:

        推荐算法是整个推荐系统中最核心和关键的部分,在很大程度上决定了推荐系统类型和性能的优劣

        2.3.1、工人推荐算法:

            I)、基于内容的推荐

                原理:

                        根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。

                步骤:

                        首先提取推荐对象的内容特征,和用户模型中的用户兴趣偏好匹配,匹配度较高的推荐对象就可作为推荐结果推荐给用户

                说明:

                    计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是改推荐策略中一个关键部分

                    计算所得的值按其大小排序,将最靠前的若干个对象作为推荐结果呈现给用户

                

            II)、协同过滤推荐 推荐算法中最成功的策略

                历史回顾:它与20世纪90年代开始研究并促进了整个推荐系统研究的繁荣

                分类:

                    基于用户的协同过滤

                    

                    基于物品的协同过滤

                    

            III)、基于知识的推荐

                适用范围:

                    涉及大量单次购买者

              处理方案:

                    系统需要利用额外的因果知识生成推荐

                    推荐系统通常会用到有关当前用户和有效物品的额外信息          

            VI)、混合推荐

                提出背景:

                由于各种推荐方法都有各自的优缺点,在实际应用中可以针对具体问题采用推荐算的组合进行推荐

                目的:

                    通过组合不同的推荐算法策略,达到扬长避短的目的,从而产生更符合用户需求的推荐。

3、个性化推荐系统的应用

    在网站中的主要作用是通过分析大量用户行为日志,给不同用户提供不同的个性化页面展示,来提高网站的点击率和转化率

    3.1、推荐系统应用组成:

        前台展示页面(UI)

        后台日志系统(数据)

        推荐算法系统(算法)

   3.2、 应用领域:

        电子商务(亚马逊)

        个性化音乐网络电台

        个性化阅读(google Reader)

        基于位置的服务

        个性化邮件和广告、咨询

        电影和视频网站(Netflix)

        社交网络

4、推荐系统测评

    4.1、问题提出:什么是好的推荐系统?这是推荐系统评测需要解决的首要问题

    4.2、推荐系统存在参与方:

        用户

        物品提供者

        提供推荐系统的网站

        

    

       4,3、评测指标

            4.3.1、用户满意度  是评测推荐系统的最重要指标

                用户调查获取用户满意度主要是通过调查问卷的形式

                在线系统中,用户满意度主要通过一些对用户行为的统计得到

                1)、电商网站,用户如果购买了推荐商品,就表示他们在一定程度上满意,可以利用购买率度量用户的满意度

                2)、有些网站会通过设计一些用户反馈界面收集用户满意度,有对推荐结果满意或者不满意的反馈按钮,统计

              两种按钮的单击情况

                3)、更一般的情况下,我们可以用点击率、用户停留时间和转化率等指标度量用户满意度            

            4.3.2、预测准确度  度量推荐系统或者推荐算法预测用户行为的能力

            它是最重要的推荐系统离线评测指标

                1)、需要一个包含用户的历史行为记录的离线数据集

                2)、将该训练集通过时间 分成训练集和测试集

                3)、通过在训练集上建立用户行为和兴趣模型预测用户在测试集上的行为

                4)、计算预测行为和测试集上实际行为的重合度作为预测准确度

            4.3.3、覆盖率  描述一个推荐系统对物品长尾的发掘能力

                1)、定义:推荐系统能够推荐出来的物品占总物品集合的比例

                        覆盖率为100%的推荐系统可以将每个物品都推荐给至少一个用户,而热门排行榜的推荐覆盖率是很低的

                一个好的推荐系统不仅需要有比较高的满意度,也有较高的覆盖率

                为了而更加细致地描述推荐系统发掘长尾的能力,需要统计推荐列表中不同物品出现次数的分布。如果所有的

           物品都出现在推荐列表中,且出现的次数差不多,那么推荐系统发掘长尾的能力就很好

                2)、马太效应:强者更强,弱者更弱

                    很多研究表明现在主流的推荐算法(比如协同过滤算法)是具有马太效应的

            4.3.4、多样性 主要指推荐结果多样性

                优点:不在一棵树上吊死

                多样性描述了推荐列表中物品两两之间的不相似

            4.3.5、新颖性 新颖的推荐是指给用户推荐那些他们以前没有听说过的物品

                1)、实现方式:

                        (最简单)把那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉

                        要准确的统计新颖性需要做用户调查

                2)、新颖性评测:O'scar Celma在博士论文中研究了新颖度的评测

                        评测新颖度的最简单的方法是利用推荐结果的平均流行度,因为越不热门的物品越有可能让用户觉得新颖

                        如果推荐结果种物品的平均热门程度较低,那么推荐结果就可能有比较高的新颖性

                        但是,用推荐结果的平均流行度度量新颖性比较粗略,因为不同用户不知道的东西是不同的

                  

            4.3.6、惊喜度 推荐系统中最热门的话题

                        惊喜度和新颖性之间区别:

                         1)、Guy Shani论文中的例子           

                         2)、如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高

                         3)、新颖性仅仅取决于用户是否听说过这个推荐结果

                        提高推荐惊喜度需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣度的相似度

            4.3.7、信任度

                    度量方式:通过问卷调查的方式,询问用户是否信任推荐系统的推荐结果

                    提高信任度方法:

                            I)、增加推荐系统的透明度(如,提供推荐解释)

                            II)、考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释

            4.3.8、实时性

                    1)、问题描述:

                        物品(新闻,微博等)具有很强的时效性,需要在物品还具有时效时就将他们推荐给用户

                    2)、实时性包括两个方面:

                        I)、推荐系统需要实时地更新推荐列表来满足用户新的行为变化

                        II)、推荐系统需要能够将新加入系统的物品推荐给用户

           4.3.9、 健壮性   衡量系统抗击作弊的能力

                    1)、 问题提出:

                            任何一个能够带来利益的算法系统都会被人攻击,这方面最典型的例子就是搜索引擎(作弊和反作弊斗争)

                            推荐系统目前也遇到同样的作弊问题,而健壮性指标衡量一个推荐系统科技作弊的能力

                    2)、最著名的作弊方法:行为注入攻击

                    3)、算法健壮性的评测主要利用模拟攻击

                    4)、提高系统的健壮性策略:,

                                I)、选择健壮性高的算法

                                II)、设计推荐算法系统时尽量使用代价比较高的用户行为

                                III)、在使用数据前,进行攻击检测,从而对数据进行清理

            4.3.10、商业目标

                   定义描述:推荐系统更加注重网站的商业目标是否达成,商业目标和网站的盈利是息息相关的

                    最本质的商业目标:平均一个用户给公司带来的盈利

                    不同的网站具有不同商业目标

                            I)、电商网站:商业目标是销售额

                            II)、基于展示广告盈利的网站,商业目标可能是广告展示总数

                            III)、基于点击广告盈利的网站,商业目标可能是广告点击量

                    本质:网站使用推荐系统的目的除了满足用户发现内容的需求,也需要利用推荐系统加快实现商业上的指标

      4.4、评测维度 

            1)、目的:就是知道一个算法在什么情况下性能最好

            2)、评测维度分类:

                I)、用户维度:主要包括用户人口统计学 信息、活跃度以及是不是新用户

                II)、物品维度:包括物品的属性信息、流行度、平均分以及是不是新加入的物品

                III)、时间维度:包括季节,是工作日还是周末,是白天还是晚上等

            3)、用途:

            利用测评维度,可以找到一个看上去比较弱的算法的优势,发现一个看上去比较强算法的缺点

java实现相关的pom.xml依赖 

  <!-- 推荐系统算法库 -->

    <dependency>

        <groupId>net.librec</groupId>

        <artifactId>librec-core</artifactId>

        <version>4.0.0</version>

    </dependency>

猜你喜欢

转载自blog.csdn.net/jinhao_2008/article/details/81084272