论文阅读:基于用户上网数据的电影个性化推荐系统研究

基于用户上网数据的电影个性化推荐系统研究

赵鹏程,黄韬*

*(北京邮电大学信

工程学院,北京 100876) 

摘要:本文讲述了如何构建出完整电影知识图谱的方法,同时提出了一套发掘电影系列的实现算法。基础数据为用户的上网请求,在不需要用户参与的情况下获得用户的电影兴趣行为,从中提取出与电影相关的上网数据,然后根据电影知识图谱将用户上网行为一一映射为用户兴趣行为,达到提取用户兴趣的目的。基于 TF-IDF 算法计算用户各维度元素兴趣度,构建向量形式的用户兴趣模型,然后根据用户对某电影各要素的兴趣度,计算出用户对该电影的总兴趣度。最后,通过实验分析,证明了本文所提方案的高召回率和准确率。 

0 引言 

近十年间,随着互联网逐渐在社会普及,信息爆炸现象日益明显,各行业各领域用户不断为互联网提供信息输送,使得互联网成为一个无所不包、无所不含的信息汇聚体,而互联网用户又很难在浩如烟海的信息海洋中快速找寻到自己需要和感兴趣的信息;网上的信息泛滥,充斥了大量用户不需要和不感兴趣的信息,每个用户在使用搜索引擎检索信息时,同一个关键字得到的结果是相同的,而用户对信息的需求是多元化和个性化的,信息及其传播是多样化的,因此,传统的同质化的搜索引擎为代表的信息检索系统已不能满足用户的个性化需求,解决这些问题的关键在于将信息从被动的被发现然后呈现到用户眼前,转化为系统主动感知浏览者的信息需求,主动将用户需要和感兴趣的信息推送到用户眼前,实现网络系统对浏览者的主动信息服务,即针对用户的个性化服务,于是,个性化推荐系统应运而生。 

个性化推荐系统通过挖掘用户的历史行为数据,通过兴趣算法自动化发现用户兴趣,然后针对用户的信息需求,主动向用户推荐其感兴趣的信息,从而解决了信息量大和信息选择困难之间的矛盾。推荐系统通过长期追踪用户历史行为,不断更新与迭代用户兴趣,使推荐的信息始终与用户的兴趣点相贴合,让用户更加方便的获取到自己感兴趣的信息,最终目的是实现针对用户全方位的个性化定制推送。传统的搜索引擎,只完成了信息的汇聚与展现,对所有用户提供的服务是相同的;与搜索引擎相比,推荐系统通过研究用户的兴趣偏好,进行个性化兴趣计算,由系统发现用户的兴趣点,从而呈献给用户与自身需求、兴趣匹配的信息,避免了同质化的缺点,满足了用户多元化、个性化的信息需求。一个好的推荐系统不仅能够增强用户的粘性,还能带来显著地经济效益。因此,个性化推荐系统受到越来越多的关注。

1 个性化推荐系统概述 

个性化推荐系统的定义有很多,大家广泛接受的个性化推荐系统的概念和定义是:个性化推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买的过程。

在互联网发达的今天,用户获取信息的途径已从传统的纸媒、电视逐步转向实时性更强、内容更丰富的互联网。以新浪、网易为代表的门户网站,在帮助用户获取新闻信息方面发挥着极其重要的作用。而信息及其传播是多样化的,而用户对新闻信息的需求是多元化和个性化的,不同用户感兴趣的内容因人而异,但每个用户在浏览门户网站时,所有人看到的新闻信息都是一致无二的,因此,传统的同质化的门户网站为代表的新闻发布系统已不能满足用户的个性化需求,而创建于 2012 年的今日头条异军突起,迅速占领了新闻资讯的应用市场,截至 2015 年 10 月,今日头条累计激活用户数达 3.1 亿,日活跃用户超过 3000 万。

推荐系统是今日头条这款兴趣推荐搜索引擎应用的核心,这也是与传统媒体最本质的区别。今日头条之所以能够非常懂用户,精准推荐出用户所喜好的新闻,完全得益于精准的推荐算法。而正是精准推荐,使得今日头条在短短两年多的时间内拥有了 2.2 亿用户,每天有超过2000 万用户在今日头条上阅读自己感兴趣的文章。个性化推荐服务的优点所在,它可汇集各类信息并且分析这些信息来模拟学习使用的行为及其爱好兴趣,从而实施主动的推荐,除此之外,个性化推荐服务技术还能使网站访问效率及其提供的服务质量大大得到提高,这样就对很多访问者有吸引力。 

1.1 个性化推荐系统的分类 

根据推荐系统所使用的推荐技术来分类,主要有以下几种技术:(1)基于关联规则的推荐算法;(2)基于内容的推荐算法;(3)基于协同过滤的推荐算法。基于关联规则的推荐系统需要根据用户或者商品的特征、属性来指定相关规则,每个规则决定了在不同的情况下提供何种不同的服务。基于规则的推荐系统的优点是简单、易实现。缺点是人为制定的规则,其质量很难保证且不能动态更新,同时随着规则的数量越多,系统管理越困难[1]。基于内容的推荐系统通过利用资源与用户兴趣的相似性来选择信息。基于内容的推荐系统的优点是简单、有效,其缺点是对资源内容的品质和风格难以区分,且不能为发现用户新的兴趣资源,只能去发现和用户已有兴趣类似的信息资源[2]。基于协同过滤的推荐系统是利用用户之间的相似性来发现兴趣。基于协同过滤的推荐系统的优点是可以为发现用户新的感兴趣资源,缺点是它存在多个难以解决的问题,但存在扩展性不足、数据稀疏性问题和冷启动等问题[3]。 

1.2 个性化推荐系统的常用算法 

1.2.1 基于关联规则推荐算法

关联规则是一种常用的数据挖掘技术,可以通过它来寻找资源项目之间的关联性。在互联网应用中,如果两个资源项目的集合之间存在某种关联,则表示在这两个集合中的商品有可能同时出现在一次交易中[4]。

1.2.2 基于内容的推荐算法

基于内容的推荐算法主要采用人工智能、机器学习、自然语言处理和概率统计等技术进行过滤,使用相关特征的属性来定义目标对象或项目,系统基于用户对目标对象或项目的各种行为特征来发现用户的兴趣,然后依据发现出来的用户兴趣与待预测的项目进行匹配,超过一定阈值则进行推荐,目标是努力向用户推荐与其以前喜欢的产品类似的产品[5]。 

1.2.3 基于协同过滤的推荐算法

协同过滤推荐算法是通过协同过滤分析用户兴趣,通过在用户群中寻找与指定用户的兴趣相似的用户,综合这一类用户对某一信息的评价结果,来预测该指定用户对此信息的兴趣程度。 

协同过滤推荐算法,可根据主体的不同,进一步细分为两种,一种是基于用户的协同105 过滤,英文为 user-based collaborative filtering,一种是基于物品的协同过滤,英文为 item-based collaborative filtering。基于用户的协同过滤的基本思想,是根据所有用户对信息或者物品的偏好,发现与当前用户兴趣和偏好类似的“邻居”用户群体,一般在应用中采用计算”K-邻居”的实现算法;然后基于这 K 个邻居的历史兴趣信息,对当前用户推荐感兴趣的信息。基于物品的协同过滤的基本原理与之类似,该算法是根据用户对物品的直接历史点击和购买记录,来计算不同物品之间的相似度,再根据用户的历史偏好的物品信息,挖掘出类似的物品,作为用户的兴趣结果推荐给用户[6]。 

2 电影知识图谱的构建研究 

知识图谱,英文为 Mapping Knowledge Domain,也被称为科学知识图谱,在图书情报界被称为知识域可视化或者知识领域映射地图,用来描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。如果本论文能够构建一套电影知识图谱,然后告诉机器怎么使用这套知识图谱,那么用 户所有与电影相关的搜索、浏览行为就都可以被机器理解并且分析出来,可以精确地定位用户到底搜索或者浏览了哪部电影、哪位影人、哪个系列,这将极大的帮助系统精准地分析用户兴趣。 

2.1 获取电影基础数据

考虑到信息获取的真实性、完整性和权威性,本论文选择时光电影作为爬取分类,采集电影完整信息页面。本论文的目的是爬取时光上所有的电影数据,为创建用户电影兴趣模型提供基础数据。 

首先,需要获取所有的电影 url 列表。根据时光网站的特点,本论文通过分类和时间维度,按爱情、科幻、动作、喜剧等分类结合年份,依次爬取每个子类别下的所有电影 url,再进行去重组成任务列表;然后遍历电影 url,分析页面 html 页面并从中提取电影名、url、导演、编剧、演员及饰演角色、评分、评分人数、类型、制片国家、语言、上映日期、片长、别名、简介信息,依次存入电影信息数据表中,并将 url 添加到已爬 url 数据表中;同时,将每部电影的导演、演员、编剧的 url 添加到任务列表,将所有影视人信息爬取回来,依次存入导演、演员、编剧数据表中,并将 url 添加到已爬 url 数据表中。 

根据时光网站的特点,本论文选取即将上映板块和正在上映板块,设置每天定时任务,遍历所有未爬的电影、导演、演员、编剧 url,提取影人姓名、职业、喜爱人数数据,以此完成电影基础数据的增量爬取。根据经验,电影评分会随着电影的推广、上映而变化,且在电影上映初期评分变化比较大,并在一段时间后稳定于某个值,因此,本论文对于上映一个月内的电影,采取每天更新电影评分的策略;对于上映一年内的电影,采取每月更新电影评分的策略;对于上映一年以上的电影,本论文认为评分已稳定,不采取更新策略。 

2.2 电影系列挖掘 

考虑电影本身的特点,本论文将电影分为独立电影和系列电影,对于系列电影来说,根据日常观影经验,影迷如果喜欢一部系列电影的话,那么该影迷也喜欢这个系列的其他电影的概率很高,比如风靡全球的蝙蝠侠、变形金刚、蜘蛛侠、星球大战等。对于系列电影来说,电影关键词、角色名相同的概率较大,因此本论文通过这两个维度挖掘电影系列属性。 

以蝙蝠侠系列为例,选取最卖座的三部电影:蝙蝠侠:侠影之谜 Batman Begins (2005),蝙蝠侠:黑暗骑士 The Dark Knight (2008) ,蝙蝠侠:黑暗骑士崛起 The Dark Knight Rises(2012)。很容易发现,电影系列名都在电影名字中,因此,本论文通过从电影名称中提取关键词的方式来抽取电影的系列名。具体实现方案:将所有电影名称从数据库中读取出来,以空格或者标点符号分词,然后统计每个词的词频,将词频多的词筛选出来,考虑到电影系列的有限性,采取聚合后人工审核的方式,生成电影系列数据表。 

提取出电影系列关键词后,下一步需要将电影归类到对应的系列上。还是以蝙蝠侠为例,选取几部大众熟知的电影:蝙蝠侠:侠影之谜 Batman Begins (2005),蝙蝠侠:黑暗骑士 The Dark Knight (2008) ,蝙蝠侠:黑暗骑士崛起 The Dark Knight Rises (2012),蝙蝠侠与罗宾 Batman & Robin (1997),永远的蝙蝠侠 Batman Forever (1995)。一般认为三部由诺兰导演,克里斯蒂安·贝尔主演的蝙蝠侠为一个系列,其他两部属于另一系列。通过对比观察,可以发现五部电影名字里都带有蝙蝠侠;前三部的角色里都有吉姆·戈登、哈维·登特、布鲁斯·韦恩,与后两者不同。因此,具体方案如下:先通过系列名将同一个大系列的影片聚合到一块,然后通过角色名聚类来进行电影系列归类,本论文使用层次聚类算法来完成通过角色名对电影系列进行聚类。 

层次聚类方法对给定的数据集进行层次的分解,直到某种条件满足为止。具体又可分为凝聚的,分裂的两种方案。凝聚的层次聚类是一种自底向上的策略,首先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有的对象都在一个簇中,或者某个终结条件被满足,绝大多数层次聚类方法属于这一类,它们只是在簇间相似度的定义上有所不同;分裂的层次聚类与凝聚的层次聚类相反,采用自顶向下的策略,它首先将所有对象置于同一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终止条件。本论文使用最小距离的凝聚型层次聚类算法。算法流程如下: 

通过层次聚类方法将电影系列聚合到一起,考虑到电影系列的有限性和机器聚类的准确度,下一步采取人工审核进行最终确认,然后将通过审核的电影与系列关系存在数据库中。至此,电影知识图谱数据准备完毕。 

3 用户行为的提取分析 

本文采取的实验数据获取方式是从本实验室核心交换机镜像用户请求数据,通过包解析从中提取出 HTTP 应用请求数据,再从中过滤出用户的搜索请求和访问时光网站的请求作为用户行为的基础数据;然后对用户的搜索请求和访问请求进行处理,对搜索请求来说,需要提取出搜索关键词并匹配到相应的电影或者影人,对浏览请求来说,需要知道用户访问的到底是哪部电影和哪位影人,通过对以上数据的匹配分析,获得用户的电影相关搜索和浏览,即用户兴趣点。 

3.1 用户搜索与浏览请求的过滤方法 

HTTP 协议定义了与服务器交互的不同方法,最基本的方法有 4 种,分别是 GET,POST,PUT,DELETE。URL 全称是资源描述符,我们可以这样认为:一个 URL 地址,它用于描述一个网络上的资源,而 HTTP 中的 GET,POST,PUT,DELETE 就对应着对这个资源的查,改,增,删 4 个操作。到这里,大家应该有个大概的了解了,GET 一般用于获取/查询资源信息,而 POST 一般用于更新资源信息。本论文的目的是提取出用户的搜索请求和浏览 请求,因此 GET 数据是我们需要的。首先,需要将交换机的镜像端口映射到包解析程序监听端口,通过程序将 TCP 数据包解析,从中得到用户 IP,再过滤得到目的端口为 80(大部分 HTTP 请求都通过 80 端口获取数据)的数据包,即 HTTP 数据包;然后进行 HTTP 包解析,过滤出 method 为 GET 的请求,解析出 Host、User-Agent、Path。其中,IP 和 User-Agent 用来唯一确定用户。得到用户 HTTP GET 请求后,需要过滤得到搜索和浏览时光网的请求,通过正则匹配 host,可以过滤得到目标请求。提取出用户搜索与浏览时光网的请求后,需要将该部分数据存到数据库中,作为分析用户兴趣的基础数据,分别将用户 id、请求 host、请求 path、请求时间戳存入用户访问 url表中。用户搜索与浏览请求代表了用户的行为,下面需要对这些信息进行进一步处理,以获得结构化、可描述的用户行为信息。

3.2 用户搜索关键词提取与处理 

用户主动去搜索某个关键词并找到与该关键词相关的信息,出发点是用户想要去了解与该关键词相关的信息,这种主动获取某方面信息的行为是兴趣的一种体现。本论文首先需要从搜索 url 中提取出用户搜索的关键词,然后再从中过滤出与电影相关的关键词,然后根据这些关键词提取用户的电影兴趣。本论文重点关注的是主流的搜索引擎,包括百度、谷歌、好搜、搜狗、神马和必应搜索。由于每个搜索引擎关键词参数都是有规律的,因此本论文使用正则提取的方式提取用户的搜索关键词。 在本文的研究中,用户的搜索历史可能是某个词,也可能是没有任何标记符号的一段中文文本,它们是无法直接被当作研究对象放到模型中去运算处理的,因此,对这些文本进行分词和停用词过滤处理是完成实验关键的一步。本文中使用结巴分词作为中文分词模块。结巴分词基于 Trie 树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG);同时采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。结合以上各种算法的优势,结巴分词歧义纠错效果较好、准确率较高。

由于中文分词的基础是词典,任何算法都很难将不属于词典中的词准确的分出来,因而词典的完整性和准确是确保分词准确性的重要保障。为了使分词时能将所有与电影相关的关键词都准确的划分出来,需要将所有电影名和导演、演员、编剧人名添加到分词词典中,以便分词器可以将这些关键词准确地提取出来,供后续分析使用。

3.3 用户行为映射

对于用户的搜索行为,分析用户搜索的关键词到底对应的是哪部电影、哪个影人或者哪个系列,这样才能判断用户到底是对哪部分感兴趣。具体实现方式是建立电影名称、别名到电影 id 的哈希映射,建立导演、演员和编剧的全名、名和姓到影人 id 的哈希映射,建立系列名到系列 id 的哈希映射,提取出关键词后进行哈希查找,找到对应的电影、影人或者系列 id,记录用户的搜索历史。

在关键词映射部分,有五个部分易产生混淆。第一,有的影人存在多个身份,而明显某个角色比重远高于其他角色,比如詹姆斯·卡梅隆、克里斯托弗·诺兰、冯小刚,既是大名鼎鼎的导演,又偶尔客串一下演员,而通常会默认他们导演的身份,对于这些同时存在多个角色的影人,本文会从数据库中筛选出来,人工审核进行独立身份认定;第二,有的影人存在多个身份,而各个身份比重相差不多,比如徐峥、姜文,既是票房号召力强大导演又是实力派的演员,对于这些人,本论文会在数据库中同时保存他们的各个身份,同时将一条搜索记录映射到其不同的身份上,并对每个身份的搜索加分进行降权处理;第三,有的影人之间存在重名,对于这些影人,本论文会对比各影人的喜爱人数,在搜索到同名影人时选取喜爱人数较多的作为匹配结果;第四,用户搜索电影时会使用简称,对此,本论文会建立别名到电影的映射,以此来正确映射结果;第五,用户搜索到某个系列作品时,存在多个匹配系列名,比如搜索蝙蝠侠,为大众所熟知的有诺兰的三部曲,还有之前的蝙蝠侠系列,对此,本论文会单独建立关键词到电影系列的映射,在发生系列重名时选取多个系列中,评分人数更多的系列作为匹配结果。

对于用户的浏览行为,通过分析用户浏览的网页到底是哪部电影、哪个导演、哪个演员或者哪个编剧,才能判断用户到底是对哪部分感兴趣。具体实现方式是建立电影 url 到电影 id 的哈希映射,建立导演、演员和编剧的 url 到影人 id 的哈希映射,提取出访问路径后,利用路径进行哈希查找,找到对应的电影、影人或者系列 id,记录用户的浏览历史。本文中继续选取时光网电影相关网页的浏览作为浏览基础数据。

在浏览映射部分,有两个部分易产生混淆。第一,有的影人存在多个身份,而明显某个角色比重远高于其他角色,比如詹姆斯·卡梅隆、克里斯托弗·诺兰、冯小刚,既是大名鼎鼎的导演,又偶尔客串一下演员,而通常会默认他们导演的身份,对于这些同时存在多个角色的影人,本论文会从数据库中筛选出来,人工审核进行独立身份认定;第二,有的影人存在多个身份,而各个身份比重相差不多,比如徐峥、姜文,既是票房号召力强大导演又是实力派的演员,对于这些人,本论文会在数据库中同时保存他们的各个身份,同时将一条搜索记录映射到其不同的身份上,并对每个身份的加分进行降权处理。  

3.4 用户兴趣关联映射 

经过对用户搜索和浏览数据的处理,程序已经获得了结构化、可描述的用户行为信息,用程序语言描述用户搜索或者浏览了哪部电影、哪个影人、哪个系列。根据用户的观影经验,用户会对一部电影感兴趣,那么用户或者是对这部电影的导演、演员、编剧感兴趣,或者是对这部电影的类型和题材感兴趣,或者是该电影评分高,或者是以上因素兼而有之,也就是说,决定用户对电影的兴趣程度取决于七个维度:导演、演员、编剧、系列、类型、标签、评分。下面本论文就需要对用户的行为做进行进一步的解析,将用户的行为映射到决定兴趣的维度上。 

本论文将用户的行为分为三种:搜索、浏览和关联。搜索即用户使用关键字在搜索引擎中检索电影或影人各维度信息;浏览即用户直接在时光网上浏览电影或者影人;关联即用户搜索了某部电影,需要将用户的兴趣映射到该部电影的导演、主演、编剧、类型和标签上,这也就是知识图谱发挥作用的地方,它可以帮助程序将用户的行为进行分维度的关联与解析映射,更加准确的构造出用户的电影兴趣网络。通过关联,将用户对于一部电影感兴趣的原因分散到这部电影的各个属性上,比如用户浏览了《蝙蝠侠:黑暗骑士 The Dark Knight 》,程序会记录如下信息:关联导演:克里斯托弗·诺兰,关联编剧: 乔纳森·诺兰 / 克里斯托弗·诺兰,关联主演: 克里斯蒂安·贝尔 / 希斯·莱杰 / 艾伦·艾克哈特 / 迈克尔·凯恩 / 玛吉·吉伦哈尔,关联系列:蝙蝠侠系列,关联类型: 剧情 / 动作 / 科幻 / 惊悚 / 犯罪,关联标签美国/科幻/动作/诺兰/犯罪/人性/漫画改编/经典。 

通过以上处理,生成了结构化、可描述的用户行为信息,下一章节将利用这些用户行为信息构建用户兴趣模型。

3.5 基于 TF-IDF 算法的用户各维度元素兴趣度的计算 

根据经验,如果一部电影异常火爆,很多人会主动搜索和浏览与该电影相关的信息,如果对每个维度中的结果赋予相同的权重,那么也许会得到一个这样的结果:在大部分人的兴趣结果中,该部电影都占了较大比重。而实际情况可能并非如此,比如最近发生的“土耳其击落俄罗斯战机事件”,大众普遍表现出强烈地关注,如果从大众平均关注点来看,用户只是随着某个热点进行了关注,对于大部分人来说,并未体现出对军事非常感兴趣这样一个结果;而对于一个军事迷来说,则会持续跟进这个事件,调查该事件的前因后果等一系列详细信息。也就是说,对于某个事件的关注不一定代表了我对该事件的兴趣,而如果对该事件体现出了超越平均关注水平的关注,才能代表我对该事情很感兴趣。

TF-IDF 的主要思想是:如果某个词或短语在一篇文章中出现的频率 TF 高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。将其应用到电影兴趣挖掘中,则可以表述为:如果一个用户对某个导演、演员、编剧、类型或标签体现出了超过平均水平的关注,则认为用户对其感兴趣。

根据经验,用户直接搜索某个导演,那么用户对该导演感兴趣的程度,要明显大于用户搜索某部电影关联到导演产生的兴趣程度,因此需要对以上三个行为分别赋予不同的权重。与此同时,用户兴趣会随着时间改变,离现在越久的兴趣,变化的可能性越大,很久以前的兴趣对于构建兴趣模型来说意义不大,因此需要考虑用户兴趣相对时间的衰减。本文中设定用户兴趣的窗口期为一年,即只考虑用户一年内的兴趣,一年以前的兴趣不引入计算;同时本论文选用用户行为发生时间戳与一年前的秒数差与一年的总秒数的比值,作为一个线性衰减要素,加入到算法中。 

下面本论文以某为导演为例,具体的算法过程如下:

4 用户兴趣模型的构建研究与实验分析 

用户对一部电影是否感兴趣,取决于七个维度:导演、演员、编剧、系列、类型、标签、评分。根据用户的观影经验,导演、演员、编剧、系列、类型、标签这六个维度中,每个维度都会对用户的选择产生影响,虽然每个维度的权重可能不同,但这六个维度是通过组合的方式来形成对用户观影选择的影响,而评分因素则与其不同。随着大众观影品味的上升,即使是大牌云集的烂片,其票房也会非常惨淡,比如《赤壁》、《富春山居图》;而对于一些小投资、新面孔很多的电影,一旦超过观众预期,评分一路走高,则会实现票房逆袭,比如《大圣归来》、《夏洛特烦恼》,因此,评分是作为一个整体因素在观应选择中产生影响,并且比重很大。 

4.1 用户对某电影的兴趣度计算 

如上文所述,用户对一部电影是否感兴趣,取决于七个维度:导演、演员、编剧、系列、类型、标签、评分。根据观影经验,导演、演员、编剧、系列、类型、标签这六个维度中,每个维度都会对用户的选择产生影响,虽然每个维度的权重可能不同,但这六个维度是通过组合的方式来形成对用户观影选择的影响,而评分因素则与其不同。随着大众观影品味的上升,即使是大牌云集的烂片,其票房也会非常惨淡,比如《赤壁》、《富春山居图》;而对于一些小投资、新面孔很多的电影,一旦超过观众预期,评分一路走高,则会实现票房逆袭,比如《大圣归来》、《夏洛特烦恼》,因此,评分是作为一个整体因素在观应选择中产生影响,并且比重很大。 

由以上分析,本论文突出计算用户对某部电影兴趣度的算法如下:

(1)从数据库中读取出该部电影的导演、主演、编剧、系列、类型、标签、评分。

(2)与用户兴趣表中的各维度中对应的元素匹配,如果发现匹配,则读取出用户对该元素的兴趣度,如果不匹配,则默认用户对该元素的兴趣度为平均兴趣度。

(3)用户兴趣度计算公式如下; 

4.2 实验分析 

本文采取的实验数据获取方式是从本实验室核心交换机镜像用户请求数据,通过包解析从中提取出 HTTP 应用请求数据,再从中过滤出用户的搜索请求和访问时光网站的请求作为用户行为的基础数据;然后对用户的搜索请求和访问请求进行处理,匹配其对应的电影、影人或者系列,然后再通过使用 TF-IDF 算法加上时间衰减计算用户各维度元素兴趣度。 

本论文跟踪了三个月时间内实验室同学的搜索和访问时光网的请求,记录了实验室 46 位同学的兴趣数据,下面本论文从三个角度来进行实验分析。 

4.2.1 召回率 

经过三个月的数据监测与分析,实验结果中每个同学都有兴趣行为记录,召回率为100%,证明实验所采用的获取数据的方式是有效的,全面覆盖了每一位参与实验的同学。 

4.2.2 测试用户感兴趣的导演、演员、类型、标签 

从数据库中筛选出每个用户在以上四个维度兴趣度排名前三的元素,推荐给每个同学,并请同学们对该推荐结果进行正误判断,然后结合每个同学被记录的兴趣行为次数,结果如下表: 

随着用户被记录的兴趣行为的增加,推荐的准确率逐步提高,在达到一定次数后,稳定于 65%左右,该推荐结果的准确率在同类算法中达到了较高的水平。 

4.2.3 测试用户感兴趣的电影 

从即将上映的电影中挑出 20 部,让同学们各自选出自己最喜欢的三部,然后与推荐结果中的三部做比较,结果如下表: 

推荐结果中三部完全命中的比例是 20%,命中两部的比例 52%,命中一部的比例是93%,也就是说,在给用户推荐三部电影的设定中,有93%的把握会保证命中一部用户感兴趣的电影。 

5 结论 

个性化推荐系统通过挖掘用户的历史行为数据,通过兴趣算法自动化发现用户兴趣,然后针对用户的信息需求,主动向用户推荐其感兴趣的信息,从而解决了信息量大和信息选择困难之间的矛盾。推荐系统通过长期追踪用户历史行为,不断更新与迭代用户兴趣,使推荐的信息始终与用户的兴趣点相贴合,让用户更加方便的获取到自己感兴趣的信息,最终目的是实现针对用户全方位的个性化定制推送。 

本文的主要工作有:构建出完整电影知识图谱的方法,从而可以结构化描述用户行为;同时根据用户的观影行为特征和电影本身的属性,将电影分为独立电影和系列电影,更细粒度的构建电影知识图谱,同时提出了一套发掘电影系列的实现算法。基础数据为用户的上网请求,在不需要用户参与的情况下获得用户的电影兴趣行为,避免了用户主观选择存在的不全面、不方便等问题,通过分析和处理用户的原始上网请求,从中提取出与电影相关的上网数据,然后根据电影知识图谱将用户上网行为一一映射为用户兴趣行为,达到提取用户兴趣的目的。基于 TF-IDF 算法计算用户各维度元素兴趣度,构建向量形式的用户兴趣模型,然后根据用户对某电影各要素的兴趣度,计算出用户对该电影的总兴趣度。最后,通过实验分析,证明了本文所提方案的高召回率和准确率。

研究个性化推荐系统的工作需要长期的努力,本文中只涉及到了皮毛,还有很大的改进余地,反思本文已做的工作,将来的改进方向有以下几点:

(1) 将更多因素纳入用户兴趣模型的考虑范畴,使模型可以更加全面的代表用户实际的兴趣,提高推荐的准确率。

(2) 提高个性化推荐系统的性能,包括算法执行过程的优化、系统结构的优化等。

猜你喜欢

转载自blog.csdn.net/u011630575/article/details/81053254