个性化阅读中的推荐系统(一)

原创 2018年01月23日 15:17:01

最近要为一个资讯类的项目加入个性化推荐的逻辑,以给用户展示更加符合其阅读偏好的文章,提高点击率。之前研究过相关理论,这次在工程中应用上,也属于一边摸索一边实践的过程。

概述

推荐系统中常用的推荐算法有:
- 基于内容的推荐content-based
- 协同过滤collaborative filtering
- 基于模型的推荐,隐语义模型(LFM, latent factor model)推荐,机器学习的模型等

不同的推荐算法有着不同的效果、优点、缺点,适合不同的场景,这个系列的文章用于记录这几种算法的实现过程。

基于内容的推荐

基于内容的推荐算法主要思想是为用户推荐与过去喜欢的item类似的item,比如一个用户看过绝地求生98K好用吗的的文章,那么就可以给他推荐绝地求生98k怎么好用的文章。
基于内容的推荐可以分为以下三步:

  1. 建立文章的特征向量,用来描述这篇文章的关键信息,这里可以使用TF-IDF模型建立一个特征矩阵来描述文章的特征
  2. 建立用户模型,用来描述用户具有哪些偏好,可以通过计算用户浏览过的文章的TF-IDF矩阵的均值作为用户模型
  3. 在推荐过程中,根据用户模型检索类似的文章,可以通过检索Top N个与用户模型特征向量相似的文章向量,作为用户的推荐

但是在这个流程中有一个问题,第3步在工程实现中,如果文章的数量很大,需要计算每篇文章与用户模型的相似度,时间和空间复杂度会很高,所以这里进行了简化,取用户当前浏览的文章作为用户模型,这样可以通过离线计算的方式,提前计算出每篇文章的相似结果。

准备阶段

无论是在构建TF-IDF矩阵还是为文章打标签的过程中,分词都是一个重要的阶段,而目前的数据中大部分是游戏相关的文章,多数主流的分词工具都是基于人民日报语料进行训练得到的词典,所以第一步需要对词典进行完善。也就是从这些语料中提取王者荣耀、绝地求生、阴阳师、天美工作室这样的领域化的词语。

这里参考了互联网时代的社会语言学:基于SNS的文本数据挖掘这个博客中提出的方法,后面会单独写一篇文章讲解这个思路和实现方式

将发现出的领域词汇增加到分词工具词典中,这里使用了清华大学的分词工具thulac,使得分词过程中可以提取出这些词语。

对500万字的语料进行分析,提取了16000个词,包括了贪玩蓝月、红莲斗篷、反伤刺甲等词

基于内容推荐

第一步:将文章向量化
语言都是由词和句组成的,利用出现在文章中的词表示该篇文章,每个词的权重使用信息检索中的TF-IDF来计算,利用这种方法,就将一篇文章用一个向量来表示。可以很方便的使用scikit-learn提供的函数计算。

第二步:计算文章相似度
现在已经将每一篇文章用一个向量表示,那么下一步就是要找到与某一篇文章相似的文章,也就是与一个向量相似的向量。计算向量相似度的方法有很多,像欧几里得公式、余弦相似度公式、杰卡德公式等。这里使用了余弦相似度进行计算,这个计算方法也比较好理解,空间上的两个向量其夹角越小即越相似,也就是余弦值越接近1越相似。
这里写图片描述
scikit-learn同样提供了方便的函数进行计算,可以参考这篇文章,通过计算所有文章向量之间的相似度,得到了一篇文章与哪些文章相似,将其存在redis等存储中。

第三步:推荐给用户
当用户点击一篇文章时,读取存储中与该篇文章相似度前K的文章,推荐给用户。

效果观察

在实现了第一版后,发现存在两个问题:
一是当文章比较多时,需要两两计算余弦相似度,计算量比较大
二是当文章不够多时,推荐算法召回的文章数量过少

解决方案:由于资讯类文章具有一部分时效性,所以每次只计算3天或者一周内的相似文章,做一个折中。

版权声明:本文为博主原创文章,未经博主允许不得转载。

个性化推荐系统方向简单介绍

先介绍下的咱们目前推荐系统的做的两个大方向:          1、基于自然语言处理的用户短期和长期兴趣+rank 排序。            推荐方法:a)、基于topic&keywrods等信息...
  • map_lixiupeng
  • map_lixiupeng
  • 2016年04月11日 17:40
  • 1300

个性化推荐系统概述

一、 个性化推荐系统简介 个性化推荐系统是建立在海量数据挖掘基础上的一种智能平台,可以模拟商店销售人员向顾客提供商品信息和建议,为顾客购物提供完全个性化的决策支持和信息服务,它的目标是既满足用户意识...
  • waze_7
  • waze_7
  • 2016年06月28日 11:11
  • 1562

个性化学习之推荐系统篇[笔记]

应用推荐系统于教育领域旨在强化(弥补)学生已掌握(未掌握)知识,它就可以帮助学生、老师在庞大的教育资源中检索出最合适的学习资源(知识点讲解视频 or ppt、试题)来进行有效的学习; 它不同于传统的...
  • reallocing1
  • reallocing1
  • 2017年03月22日 15:57
  • 812

推荐系统在视频网站中的应用

转自:http://www.programmer.com.cn/9242/ 文 / 郑华 随着互联网特别是社会化网络的快速发展,我们正处于信息过载的时代。用户面对过量的信息很难找到自己真正...
  • tywei2012
  • tywei2012
  • 2013年10月08日 14:40
  • 1372

如何从零构建实时的个性化推荐系统?

现在网上到处都有推荐。亚马逊等主流电子商务网站根据它们的页面属性以各种形式向用户推荐产品。Mint.com之类的财务规划网站为用户提供很多 建议,比如向用户推荐他们可能想要办理的信用卡,可以提供更好利...
  • u010670689
  • u010670689
  • 2017年03月13日 17:55
  • 700

如何从零构建实时的个性化推荐系统?

【作者简介:刈刀(程君杰),曾就职于阿里巴巴移动事业部,数据技术专家。主要负责业务数据分析挖掘系统架构和设计,包括大规模数据采集、分析处理、数据挖掘、数据可视化、高性能数据服务等。】 前言 在...
  • u010670689
  • u010670689
  • 2017年03月13日 18:28
  • 1765

【推荐系统】搜狐个性化视频推荐架构设计和实践

为什么要做推荐系统?视频的覆盖率问题,好的视频无法难以被人发现,随着用户的量的增加,大部分用户存在没有特殊明确的需求场景,需求解决也比较迫切,帮助用户发现对自己有价值的视频,让视频展示对他感兴趣的用户...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2017年12月26日 00:00
  • 178

4个方面,系统总结个性化推荐系统

作者:Placeless 全文共 7393 字 13 图,阅读需要 16 分钟 ———— / BEGIN / ———— 现在的人们面对信息过载问题日益严重,好的个性化推荐将能够很...
  • k7Jz78GeJJ
  • k7Jz78GeJJ
  • 2017年12月10日 00:00
  • 435

新闻个性化推荐系统(python)-(附源码 数据集)

1.背景       最近参加了一个评测,是关于新闻个性化推荐。说白了就是给你一个人的浏览记录,预测他下一次的浏览记录。花了一周时间写了一个集成系统,可以一键推荐新闻,但是准确率比较不理想,所以发到这...
  • gshengod
  • gshengod
  • 2014年09月25日 08:32
  • 11275

基于内容推荐的个性化新闻阅读实现(二):基于SVD的推荐算法

基于内容推荐的个性化新闻阅读实现(二):基于SVD的推荐算法 时间 2016-06-24 12:23:02  Nicol的博客铭 原文  https://taozj.org/2016/06/基...
  • javastart
  • javastart
  • 2016年06月24日 13:21
  • 2154
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:个性化阅读中的推荐系统(一)
举报原因:
原因补充:

(最多只允许输入30个字)