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

最新文章

  1. XUnit - Shared Context between Tests
  2. vs xamarin android 监听返回键退出程序
  3. Eclipse中使用SVN
  4. 【C语言入门教程】4.9 指向指针的指针
  5. 【hiho一下第77周】递归-减而治之 (MS面试题:Koch Snowflake)
  6. Sql Server 孤立用户解决办法
  7. 编程实现LINUX下目录的层层遍历
  8. hdu 4635 Strongly connected(强连通)
  9. JQuery向ashx提交中文参数方案
  10. 【Stage3D学习笔记续】真正的3D世界(五):粒子特效
  11. How To : Create SQL Server Management Studio Addin
  12. 网页加速特技之 AMP
  13. [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.10_1.12/梯度消失/梯度爆炸/权重初始化
  14. 使用JavaScript实现机器学习和神经学网络
  15. 【经验随笔】Java通过代理访问互联网平台提供的WebService接口的一种方法
  16. 中缀表达式得到后缀表达式(c++、python实现)
  17. IDEA tomcat 热部署不生效的问题
  18. linux安装jenkins和编译发布gitlib项目
  19. CSS导航条nav简单样式
  20. Linux遇到的问题

热门文章

  1. CocosCreator与Laya2.0区别
  2. CSS3进度条动画
  3. Windows Server 搭建企业无线认证(NPS搭建)
  4. 回溯---N皇后
  5. 加密模块hashlib
  6. C#设计模式:职责链模式(Chain of Responsibility)
  7. 解决javax.servlet.jsp.JspException cannot be resolved to a type
  8. windows下使用命令行获取管理员权限
  9. 【记录】@Transactional
  10. MemCache--01 解决session