我是如何为技术博客设计一个推荐系统(上):统计与评分加权

过去的两周里,我一直忙于为 『玩点什么』 设计一个推荐系统。在这个过程中,参考几本书籍,查找了一系列的资料。想着这些资料上,大部分都是大同小异的,实现了几个简单的推荐功能,改进了标签推荐算法,便想着写篇文章记录一下。『玩点什么』,是一个基于 Django、Python 的 CMS 系统(Mezzanine)。是的,和我的博客使用的是同一个 CMS 系统。由于使用的是 Python 语言,因此对于机
摘要由CSDN通过智能技术生成

过去的两周里,我一直忙于为 『玩点什么』 设计一个推荐系统。在这个过程中,参考几本书籍,查找了一系列的资料。想着这些资料上,大部分都是大同小异的,实现了几个简单的推荐功能,改进了标签推荐算法,便想着写篇文章记录一下。

『玩点什么』,是一个基于 Django、Python 的 CMS 系统(Mezzanine)。是的,和我的博客使用的是同一个 CMS 系统。由于使用的是 Python 语言,因此对于机器学习具有天生的优势。

推荐系统

推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”。

对于推荐系统系统来说,目前采用的主要方式是:

  • 基于内容推荐:内容之间的相似度,如文章的标签、电影的属性、书籍的分类。

  • 协同过滤(待实现):用户之间的相似度,如喜欢看科幻片的 A、B 用户、并且都看过 a 电影,A 喜欢看的 c 电影,B 也可能喜欢 c 电影。

要实现这两种方式有一个前提是,用户数据。特别是协同过滤,需要有大量的用户行为数据。对于一些大的社交应用、有大量的用户,如微信来说,还会有:

  • 基于社区推荐,如,你的好友喜欢什么,就会为你推荐王者荣耀。

  • 基于人口统计学,即我们网上看到的各种区域性人的偏好,各种地域黑~。

上面主要是依赖于大量的用户数量,当我们没有大量的用户数据时。我们可以先采用其它的方式:

  • 基于统计学推荐,诸如文章的阅读量、分享量,又或者文章的评分数。

  • 基于标签推荐,对于专业领域的文章来说,作者提交的标签往往比机器生成更加可靠。

除此,按我的理解,对于专业领域来说,还会有一种方式是:

  • 基于知识图谱推荐,如我之前做的技能树和 Growth,便是其中的一种方式。

这种成知识体系的文章,往往对于用户来说,更具备价值。

收集用户数据(一):统计

那么,现在先让我们从收集用户数据谈起。

因为不论是哪一种推荐方式,其都依赖于应用服务提供者所拥有的数据数据数据。没有数据,你所谈的算法都是在耍流氓,你所学的机器学习、深度学习算法也是在而流氓,只谈算法不谈收集数据都是在耍流氓。他们的学习成本都很低,几星期几个月,差不多能学好七八十。可是要是没有 ImageNet 的图片数据、CNN 的上亿条新闻数据,这一些算法都没有价值。

而如我在《全栈应用开发:精益实践》所写,数据分析应该在我们上线了第一个 DEMO 之后,或第一个正式版就必须上线的功能,以实现产品的精益化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值