Content-Based Recommender System是基于产品(商品、网页)的内容、属性、关键字,以及目标用户的喜好、行为,这两部分数据来联合计算出,该为目标用户推荐其可能最感兴趣的产品。

有几个点值得注意:

a、并不太关注其他用户的喜欢、行为或评分等,仅仅关注目标用户;

b、适合于新产品的冷启动,但不适合新用户的冷启动;

c、像电影、音乐类系统,有可能推荐给用户毫无新意的产品,从而缺乏对用户深层需求的挖掘;

d、对于新闻类产品,则可能会抓住客户持续的爱好并进行内容提供。

1、预处理和特征抓取(Preprocessing and Feature Extraction)

  a、特征抓取(Feature Extraction):通常将特征抓取为词库(bag of words),对于网页,则需要根据页面布局,选取出主要区块进行抓取;

  b、数据清洗(Feature Representation and Cleaning):去除无用词(Stop-Words Removal),合并相同词的不同形式(Stemming),phrases取词(Phrase Extraction)

  c、特征选取及赋权(Feature Selection and Feature Weighting): Unsupervised algorithm and Supervised Algorithm

    这里用到了TF-IDF,是一种Unsupervised Learning,基本思想是,给予在本文内频次高&在语料库中频次低的词更高的权重,但未考虑到用户喜好。

      具体参见wiki:https://zh.wikipedia.org/wiki/Tf-idf

2、获取用户喜好(Content-Based Learning of User Profiles)

  a、我们取出目标用户已经打分的items,构建一个Matrix DL, 其中除了存放step1中抓取的所有特征外,还存放了用户对于这些items的打分

  b、我们取出用户未打分的items,构建一个Matrix DU,其中除了step1中抓取的特征外,空出用户的打分,下一步要来进行预测。

3、过滤和推荐(Filtering and Recommendations)

  a、对于每一个DU中的items,要遍历DL,去计算每个DL_item与其相似性,相似性计算公式如下:

  b、为每个DU中的item,选出相似度最高的K个items;

  c、计算K个items的均值,也可以按照相似性作为权重,来合成目标item的得分,最终计算完成后,从DU中选出得分最高的p个items推荐给目标用户。

  ps:因为程序复杂度高,且类似新闻系统,很有可能要求运算时间,所以,在step.a遍历DL前,可以进行clustering,选出subset再计算相似性并比对

  Cosine Similarity:https://en.wikipedia.org/wiki/Cosine_similarity

   KNN:https://www.coursera.org/learn/python-machine-learning/lecture/I1cfu/k-nearest-neighbors-classification-and-regression

Content-Based Recommender System的更多相关文章

  1. 【RS】Deep Learning based Recommender System: A Survey and New Perspectives - 基于深度学习的推荐系统:调查与新视角

    [论文标题]Deep Learning based Recommender System: A Survey and New Perspectives ( ACM Computing Surveys  ...

  2. 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives

    (聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...

  3. Coursera, Machine Learning, Anomoly Detection & Recommender system

      Algorithm:     When to select Anonaly detection or Supervised learning? 总的来说guideline是如果positive e ...

  4. 基于内容的图片检索CBIR(Content Based Image Retrieval)简介

    传统的图像检索过程,先通过人工对图像进行文字标注,再利用关键字来检索图像,这种依据图像描述的字符匹配程度提供检索结果的方法,简称“以字找图”,既耗时又主观多义.基于内容的图像检索客服“以字找图”方式的 ...

  5. A cost-effective recommender system for taxi drivers

    一个针对出租车司机有效花费的推荐系统 摘要 GPS技术和新形式的城市地理学改变了手机服务的形式.比如说,丰富的出租车GPS轨迹使得出做租车领域有新方法.事实上,最近很多工作是在使用出租车GPS轨迹数据 ...

  6. 推荐系统(Recommender System)

    推荐系统(Recommender System) 案例 为用户推荐电影 数据展示 Bob Tom Alice Jack 动作成分 浪漫成分 Movie1 5 ? 0 3 ? ? Movie2 ? 0 ...

  7. Machine Learning No.11: Recommender System

    1. Content based Problem formulation Content Based Recommendations: 2. collaborative filtering algor ...

  8. 【HEVC帧间预测论文】P1.7 Content Based Hierarchical Fast Coding Unit Decision Algorithm

    Content Based Hierarchical Fast Coding Unit Decision Algorithm For HEVC <HEVC标准介绍.HEVC帧间预测论文笔记> ...

  9. User-Based Collaborative Recommender System

    Collaborative Recommender System基于User给Item的打分表,认为相似度很高的用户,会对同一个item给出相似的分数,找出K个相似度最高的用户,集合他们的打分,来推算 ...

  10. Item-Based Collaborative Recommender System

    与User-Based Collaborative Recommender System认为‘类似的用户会对同一个item给出类似的打分’不同,Item-Based Collaborative Rec ...

随机推荐

  1. [AGC005F] Many Easy Problems

    link 题意简述 给定一颗无根树,对于所有大小为 $i$ 的点集,求出能够包含它的所有联通块之和,定义为 $f_i$ ,答案对 $924844033$ 取模. $n\leq 2\times 10^5 ...

  2. win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据(使用外部redis)

    目录 话题 (191) 笔记 (137) 资料区 (2) 评价 (33) 介绍 讨论区 话题 win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据( ...

  3. Linux awk抓取IP的两种方式

    ip addr show ens33 | awk -F "[ /]+" '/inet /{print $3}' 或 ifconfig ens33 | awk -F "[ ...

  4. SQL Server 查找字符串中指定字符出现的次数

    要查找某个指定的字符在字符串中出现的位置,方法比较简单,使用 len() 函数和 replace() 函数结合就可以. SELECT TOP 200 approveInfo approveInfo2, ...

  5. tenorflow 模型调优

    # Create the Timeline object, and write it to a json from tensorflow.python.client import timeline t ...

  6. rabbit localhost不能登录

    解决方案 将C:\Users\{用户名}\.erlang.cookie 复制到 C:\Windows\System32\config\systemprofile 目录. 重启rabbitMQ服务 [转 ...

  7. 理解Promise (2)

    一进来 我们开始执行 executor函数 传递两个参数 再调用 then 方法 ,then 方法里面有 OnResolve方法,OnReject 方法  在then 方法中,我们一开始的状态是pen ...

  8. K个串

    题目链接 传送门 题解 看完题目后可以立刻想到:先算出最大值, 然后把最大值剔除掉,再找此时的最大值也就是次大值.这样重复\(k\)边即可找到第\(k\)大值. 于是我们只需要考虑找最大值了 我们可以 ...

  9. Git关联JIRA的issue

    指导文章 http://www.51testing.com/html/30/n-3724930.html http://{$host_url}/help/user/project/integratio ...

  10. 【leetcode】778. Swim in Rising Water

    题目如下: 解题思路:本题题干中提到了一个非常重要的前提:"You can swim infinite distance in zero time",同时也给了一个干扰条件,那就是 ...