新闻推荐系统:基于内容的推荐算法(Recommender System:Content-based Recommendation)

  • 2018/10/04更新

这篇文章似乎被越来越多的小伙伴看到了,所以觉得有必要做一些进一步的详细说明。

首先按照本文所讲解的推荐思路进行新闻推荐的推荐系统,我已经实现并已经放在Github上了。欢迎小伙伴们积极star和fork,更欢迎随时提建议,我们一起交流学习。

本推荐系统是与新闻客户端解耦的,这意味着任何做新闻客户端开发的小伙伴,如果想在自己的app里加上推荐模块的话,都可以直接很方便地把这个系统拿过去用,只需要按照项目说明文档进行一些简单的数据库配置即可。

另外,最近我准备着手开发一个基于ios的新闻客户端app模板,一方面是为了学习ios开发,另一方面也是为了将自己的推荐系统应用于其中。所以如果以后有哪个小伙伴想在自己的app里加入新闻模块,也欢迎直接fork我的新项目。

再次谢谢读者朋友们的支持!有任何问题欢迎联系!(TomQianMaple@Gmail.com)


因为开发了一个新闻推荐系统的模块,该系统包括了协同过滤、基于内容的推荐和基于热点新闻的三种推荐算法。而基于内容的推荐算法(Content-Based Recommendation)部分,我查阅了许多资料,于是借此机会,基于自己看了网上各种资料后对该分类方法的理解,用尽量清晰明了的语言,结合算法和自己开发推荐模块本身,记录下这些过程,供自己回顾,也供大家参考~

目录

一、基于内容的推荐算法 + TFIDF

二、在推荐系统中的具体实现技巧

正文

一、基于内容的推荐算法 + TFIDF

主流推荐算法大致可分为:

  • 基于内容(相似度)的推荐

  • 基于用户/物品相似度的协同过滤

  • 热点新闻推荐(你看到的那些头条新闻)

  • 基于模型的推荐(通过输入一些用户特征进入模型,产生推荐结果)

  • 混合推荐(以上十八般兵器一起耍!)

(本文只详述基于内容的推荐,其它的推荐方法大家可以另行搜索。)

概念

基于内容相似度的推荐:顾名思义,把与你喜欢看的新闻内容相似新闻推荐给你。基于内容的推荐算法的主要优势在于无冷启动问题,只要用户产生了初始的历史数据,就可以开始进行推荐的计算。而且随着用户的浏览记录数据的增加,这种推荐一般也会越来越准确。

这里有两个重要的关键点需要首先有个基本理解:

  1. 怎么知道用户喜欢看那些新闻;

用户有历史的浏览记录,我们可以从这些用户历史浏览的新闻中”提取”能代表新闻主要内容的关键词,看哪些关键词出现的最多。比如可以有”手机“,”电脑游戏“,”发布会“等等关键词。

或者,统计这些新闻所属的领域是哪些,比如国际政治、社会、民生、娱乐,找出用户看的新闻来源最多的几个领域。不过按这种方式判断用户兴趣容易太宽泛,哪怕是同一个领域下的新闻,可能也会差异很大。比如某用户可能喜欢A女星,而不喜欢B女星,而如果你只是认为该用户喜欢娱乐新闻,结果把B女星的新闻不停给用户推,那就肯定不好。而上述的关键词就可以比较好地规避这个问题。

  1. 怎么判断两个新闻内容相似;

找到定义用户喜好的方法——关键词,那么我们自然而然就可以想到,**能不能提取出两个新闻的关键词,然后对比看它们两的关键词是不是相同的呢?**恩!思路正确,不过毕竟一个新闻可以有好几个关键词,要想全部一样,还是比较困难的。所以我们需要对两个新闻的关键词匹配程度做一个合理的量化。

那么这时就要说到TFIDF算法了。

给大家一个

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值