基于内容的推荐算法(推荐系统)(一)

今年决定做些有意义的事情,正好年前就知道开学要申报创新项目,当时就有意想申报一个。来了学校之后一开始打算做个App申请创业类项目,但是发现真正去做并不容易,而且创业类项目名额很少。在搜集资料的过程中,发现自己真正想做的原来是一个叫做推荐算法的东西,而且还是1992年都有人提出,现实中已经有不少成型的系统在跑了的。所以就改变了想法,要做一个推荐系统,而且是在饮食方面的应用。终极目标是解决早上吃什么,中午吃什么和晚上吃什么三个终极人生难题,希望通过这个系统,根据以往用户的数据,来推荐给用户喜欢的美食佳饮。

在阅读了一系列的论文和书籍之后,终于大概有了了解,也写好了申报书交上去了。足够幸运的省级项目又增加了名额顺利申请上江苏省的大学生创新训练项目。在接下来的几篇文章中我将逐步介绍我已经了解的有关基于内容的推荐系统的东西,并且先设计一下大致的架构试一试。然后再开始编代码,争取能够早点做出第一个能运行的系统,哪怕精准性很差也算是有收获了。

第一篇就贴一些申报书里面的东西吧,主要是项目方案里面的简介。

1.  项目背景与意义

互联网的迅猛发展将人类带入了信息社会和网络经济时代,信息化影响到了生活的方方面面。但是随着互联网产业的扩大,为用户提供更多选的同时也带来了筛选与推荐的难题。于是便提出了推荐算法帮助用户快速找到自己喜爱的东西,但是这些算法都还有很大的提升空间。

细分到饮食推荐的方面,随着生活水平的提高,人们不仅追求吃饱更追求吃好,然而目前仍缺乏能够提供精准推荐美食功能的算法。本项目的研究内容主要是通过算法提供个性化美食推荐,以目前大数据为依托为用户提供精准的美食推送。随着O2O市场的不断扩大,预计2015年中国餐饮行业O2O市场规模将增长到1389亿元,用户规模将达到2.64亿。这意味着如果能有精准推荐美食的服务,将产生不可估量的价值。

2.国内外研究现状及分析

目前有关个性化推荐算法主要分为三大类:基于协同过滤的推荐、基于内容过滤的推荐和社会化推荐。

最常用的是基于协同过滤系统的推荐,是利用用户之间的相似性来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。但有很难解决的两个问题,一个是稀疏性,即在系统使用初期由于系统资源还未获得足够多的评价,很难利用这些评价来发现相似的用户。另一个是可扩展性,随着系统用户和资源的增多,系统的性能会越来越差。

至于在推荐饮食方面上,目前应用的几乎都是基于协同过滤算法的推荐系统,最主要的原因是中华菜谱难以结构化信息处理,只能通过用户之间的相似性来进行推荐,即使有基于内容的推荐,其水平也就和搜索引擎的关键词搜索相当。

内容过滤根据信息资源与用户兴趣的相似性来推荐商品,通过计算用户兴趣模型和商品特征向量之间的向量相似性,主动将相似度高的商品发送给该模型的客户。由于每个客户都独立操作,拥有独立的特征向量,不需要考虑别的用户的兴趣,不存在评价级别多少的问题,能推荐新的项目或者是冷门的项目。这些优点使得基于内容过滤的推荐系统不受冷启动和稀疏问题的影响。更加用于对于个性化需求高的推荐,例如本项目中研究的对于饮食推荐的应用。

社会化推荐主要是根据用户的社会关系,推荐朋友的朋友中与用户“志同道合”的朋友给用户,或者将与用户“志同道合”的朋友们感兴趣的项目推荐给用户,这种推荐算法主要应用于像QQ、微信和Facebook之类的社交软件中。

3.研究的目的与创新意义

当前情况下,信息化是不可阻挡的潮流,这为本项目提供了基础,使得用算法分析的方法成为可能;相反本研究也能反作用于饮食信息化,让基于内容过滤的算法的推荐成为可能,解决当前只能使用协同过滤算法为用户推荐食谱和饮食的问题。目的是使用图论的方法对菜谱进行结构化的研究,使用抽象出来的食谱的特征来构造向量,与用户的特征进行匹配,实现这种新的思路对饮食推荐方面的应用。该研究能够充分补充协同过滤算法的不足,应用于O2O市场中将能够使用户的搜索步骤更加简化,提高用户体验,改善服务质量,创造经济价值。

            具体到如何搭建这个系统,暂时还没有计划好,倒是弄来很多论文还从图书馆借了一些资料,之前有查到Hadoop中的mahout是一个开源的推荐系统,但是主要的功能是协同过滤算法和聚类算法,和我想要做的并不是很相近,但是也还是很有必要去学习一下,毕竟是成熟的开源项目,学习一些应该怎么做一个这样的项目也是很有意义。接下来准备整理一下论文中出现的一些方法和理论。

猜你喜欢

转载自blog.csdn.net/sinat_18497785/article/details/51263118