1. 研究目的与意义(文献综述)
1.1研究背景及意义
互联网的普及给用户带来了大量的信息,在信息时代,用户对信息的需求可以得到很好的满足。但是,随着互联网的快速发展,信息量大幅上涨,出现信息超载的问题。用户被淹没在信息的海洋里,难以从大量信息学中得到对自己真正有用的信息。用户如何准确且有效率的获取信息越来越受关注。以搜索引擎为代表的信息检索系统在信息获取方式中发挥着不可替代的作用,比如goole、baidu,在用户的日常生活中经常被使用到。但是,用户通过同一个关键词搜索出来的信息结果都是相同的,多样性差。并且得到的靠前的信息不一定是用户需要的信息。因此,搜索引擎仍不能有效解决信息超载问题。个性化推荐系统应运而生。它根据用户填写的信息、历史行为、兴趣爱好建模,将从大量信息过滤之后的信息主动推送给用户。不仅可以推送用户感兴趣信息,还可以挖掘出用户未知的有价值的信息。对于不同的用户,推荐系统推荐的信息内容也不同。相比于搜索引擎,其个性化程度好,更容易被用户接受。因此,个性化推荐系统是信息获取的必然趋势。
很多社交网站都有自己的个性化推荐系统,其目的是推送用户感兴趣的或对用户存在潜在价值的信息。xing公司就是以就业为导向的德国社交网站,为小世界网络方面的专业人士服务,其用户遍布世界200多个国家。其推荐系统的目的根据用户特征,为用户筛选出top-k的职位信息。方便求职者与应聘者之间的选择。
2. 研究的基本内容与方案
2.1研究基本内容
Recsys Challenge2016是由ACM举办,XING等公司赞助的推荐系统开发比赛。比赛任务就是,在大量职位中为给定用户推荐他们可能感兴趣并会点击的职位。比赛数据集由XING公司提供,是由XING公司用户的真实信息,以及一部分噪声信息组合而成。数据内容包含用户信息包括当前职位角色,职业等级,行业类别,国家,简历条目,工作经验,学历等。职位信息包括:职位等级,职位类别,行业类别,工作地点,工作属性,职位要点等。
本课题的基本研究内容:以机器学习中的决策树算法为模型建立推荐系统。要做的内容可分为以下几点:
1.数据集的处理及特征提取。本次课题使用的数据量多达百万行,并且具有相关性的数据集分布在不同的文件中,通过领域知识提取特征,再通过用户和项目ID作为索引将信息连接起来。将数据集分为训练集和测试集
2.模型建立。根据机器学习中的决策树算法对研究内容建立模型,模型中各属性点对应数据集中的特征。模型输入为目标用户,输出为目标用户与项目之间的交互信息
3.系统建立。利用训练集中数据生成并训练决策树。然后,将测试集数据输入到训练好的决策树中,根据训练结果对决策时模型进行调整和剪枝。
2.2研究目标
本次毕业设计目标在于利用比赛提供的数据,建立问题模型,用选择的算法实现推荐系统,根据实现情况完善系统,在评价规则下使得评价分数(score)尽量高。推荐系统的评价函数即评价指标如下:
score = 20 * (precisionAtK(r, t, 2) precisionAtK(r, t, 4) recall(r, t) userSuccess(r, t)) 10 * (precisionAtK(r, t, 6) precisionAtK(r, t, 20))
其中precisionAtK(r, t, k) 表示推荐的top-k项目的精度。recall(r, t)表示预测准确的样本占实际正样本的比例,即召回率。userSuccess(r, t)表示本次推荐是否成功。推荐的Top-k项目中只要有一个被用户点击,就被认为是成功。
2.3拟采用的技术方案及措施
决策树有两种元素组成:节点和分支,节点分为内节点和叶节点。在最终生成的决策树当中,每一个内节点代表决策树的一个属性,每一个叶节点代表数据集中对象的一种类别,内节点的每一个分支代表对该属性的一个测试。决策树伪代码如下:
DecisionTree(Samples,Attributes)
用所有样本创建树的根节点Root;
If 当前节点中的Samples都属于同一类或属性Attributes为空
标记当前节点为叶节点;
返回此节点树Root;
Else
按照某种选择标准选择最好的分类属性:BestAttribute;
按BestAttribute的取值划分当前节点成多个子节点;
For 每一个子节点
根据属性特征,从Samples中选出子集Sample_set
递归调用DdcisionTree(Sample_set,BestAttribute)
End
End
本次设计使用到的数据包括:用户特征文件(user.csv),项目特征文件(items.csv),交互信息文件(interaction.csv)。根据决策树模型,将经过处理之后的用户和项目各自的特征当成属性即决策树的子节点,用户和项目之间的交互类型作为数据集划分最终类别。处理之后的训练集如表2.1所示:
表2.1数据集
| Users | Items | Interactions | |||||
| Career_level | Industry_id | Contry | ... | Career_level | country | … | |
| 1 | 0 | de | 3 | 5 | 3 | .. | 4 |
| 2 | 5 | ch | 2 | 3 | 1 | .. | 2 |
| … | .. | .. | .. | .. | .. | .. | … |
利用上面的数据集训练决策树DecisionTree。最终得到的模型:Interaction_tpye = Decisionmodel(target_user,items)。 将目标用户和待推荐的项目作为决策树模型的输入,输出为用户和推荐项目之间的交互类型。根据交互类型,决定该项目是否值得推荐。选取可推荐项目中的TOP-K推荐。
本课题拟采用的是Python语言实现推荐算法。Python是机器学习技术中最好的语言之一。首先,其语法清晰简单,被称为可执行伪代码。附带很多高级数据类型,使得实现抽象的数学概念变得简单。其次,Python操作文本文件很简单,易于处理非数值型数据。最后,其使用广泛,拥有庞大的社区和丰富的面向机器学习的库。因此,适合用来实现本次毕业设计的内容。
3. 研究计划与安排
第一周至第二周 熟悉工作内容和技术,了解国内外相关技术发展现状。
第三周 完成开题报告
第四周至第五周 学习并熟悉使用毕设需要的软件python等
4. 参考文献(12篇以上)
[1] porter b w, bareiss r, holte r c. conceptlearning and heuristic classification in weak-theory domains[j]. artificialintelligence, 1989, 45: 229-263.
[2] quinlan j r. induction of decision trees[j].machine learning, 1986, 1(1): 81-106.
[3]lewis r j. an introduction to classification and regression tree (cart)analysis[c]. annual meeting of the society for academic emergency medicine insan francisco, california. 2000: 1-14.
