基于内容的推荐Content-based Recommendation

简介

推荐系统通常是以web应用的形式与用户进行交互。通常,系统为用户展示一系列推荐商品,用户点击这些商品获得更详细的信息或是其他对这些商品的行为。例如,在线新闻网站以新闻头条的形式展示一些新闻,并且可以通过点击这些头条去阅读整个新闻。电子商务网站提供一个推荐商品的聚合页,用户可以点击浏览,加入购物车或是直接购买。页面自然是通过HTML构建的,但是服务器端往往会有一个商品的数据库并动态的根据不同的推荐商品构建页面。数据库中的商品往往不可能在页面上全部显示,所以页面展示的商品如果与用户相关或是可以定制一个顺序就最好不过了。

基于内容的推荐正是通过分析物品的描述来判断它是否属于用户的兴趣,以决定是否应该出现在页面上。

物品的表示

物品一般是按行列存储在数据库中,拥有各个字段标示它的属性、特征或是变量等等。例如:

ID

Name

Cuisine

Service

Cost

10001

Mike's Pizza

Italian

Counter

Low

10002

Chri's Café

French

Table

Medium

10003

Jacques Bistro

French

Table

High

  这些数据拥有一些属性,并且每一个物品都可以被这些属性描述,同时这些属性的值也是可以预测的。这些数据被称为结构化数据。

     当然页面不会仅仅包含这些信息,例如对餐厅的文字描述、评论,甚至是菜单都有可能出现。这些信息可以存储在一个额外的字段中。这些信息被成为非结构化数据。

     非结构化数据往往会对用户行为的猜测带来很大的复杂性。例如,可能通过一个结构化数据表明某一类用户有80%的可能喜欢法式餐厅,他们在对5家法式餐厅中的4家给出了正面的评论。但是,非结构化的信息看上去往往都很相似,以至于用户可能没有机会提供反馈,如果这些法式餐厅使用类似“一家充满魅力的可以远眺河流的咖啡屋”这样的描述,系统会很难判断是用户是喜欢餐厅的环境还是喜欢餐厅的风味。

      同时,非结构化的信息不像结构化的数据,他们没有事先定义好值的属性字段。另外,自然语言的特征也会出现,比如同义词,多义词等等。

      很多网站都是用了半结构化数据来进行展示,既包括结构化的属性数据,也有非结构化的文本描述。通常处理文本信息,使用TF-IDF(term-frequency times inverse document frequency),这一内容将在以后再进行介绍。

用户兴趣集

用户的兴趣集合被广泛使用。这些数据可以由很多中信息组成,这里强调2种信息的使用。

  用户偏好模型,用来描述用户对不同种类的物品的偏好程度。通常的做法是使用一个似然函数根据用户喜欢的物品来预测用户对任意物品的偏好值,这样就可以得到用户最喜欢的n个物品。

  用户历史行为数据,包括收藏,评论,购买等等,在某些系统中还可以包含查询串。

用户历史行为数据有诸多用途,首先,系统可以通过简单的展示历史浏览记录来促进用户再次对历史物品发生行为。其次,推荐系统可以根据购买记录来过滤推荐物品列表,因为我们不希望为用户推荐已经购买过的物品。另外,这些数据也可以用来进行机器学习算法的训练。

      现在,先提供2种人工的方式来提供这些信息:用户定制和基于规则的推荐。用户定制的方式很简单,在推荐系统中提供一个接口,用户可以根据自己的偏好去定制哪些种类的物品可以出现。当然,这里最好提供一个复选框,且提供的是结构化数据的信息,例如,餐厅的风味,新闻的种类,电影的流派等。另一种情况是,通过提交表单的方式,用户可以填写喜欢的歌手,导演等等文字信息。一旦,用户填写了这些信息,就可以找出相关的物品进行推荐。

     当然,用户定制这种方式也有很大的局限。第一,这种方式需要用户的配合,但是只有很少的用户愿意这么做。第二,这种方式没有提供物品展示的排序标准,同时,这种方式会发现特别多或者特别少的用于展示的物品。

      在基于规则的推荐系统中,系统会根据制定的规则,基于用户历史行为推荐商品,例如推荐系统可能会为用户推荐新出版的系列图书或电影,当然前提是用户购买过这一系列的图书,例如哈利波特系列,如果购买过第一本,当第二本出版时会自动进行推荐。基于规则的系统可以用一些相同的理由来解释推荐,但是对于个性化的推荐贡献较少。

用户模型训练

    根据用户历史行为构建用户模型说到底是一个分类问题。分类算法的训练集可以简单分为2个类别:用户喜欢的物品和用户不喜欢的物品。用户的历史行为,包括显性和隐性数据。通常,隐性数据比显性数据多的多,而且包含很多噪音数据。分类算法有很多,决策树、最近邻、基于概率的贝叶斯等等,随后再详细介绍。

转载于:https://my.oschina.net/mazhiyuan/blog/138170

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值