推荐系统的基础算法-①基于内容的推荐算法
基于内容的推荐算法
基于内容的推荐算法的本质是对内容进行分析,建立特征。
一般而言都是对物品进行有关内容的分类,例如电影、书籍、商品等,通过提取这些物品的内容属性或历史评分也或是操作记录,计算不同用户对不同内容属性的爱好程度,在根据这些爱好,推荐其他相同属性的物品。
1.基于内容的推荐算法的基本流程
其内容推荐算法氛围以下4个步骤
- 特征提取
- 偏好计算
- 内容召回
- 物品排序
2.实际案例
为了更好的理解步骤,才用B站大神的实际案例一步一步分析。
盗图源:蚂蚁学Python
https://www.bilibili.com/video/BV17E411B7vr?spm_id_from=333.337.search-card.all.click
3.余弦相似度
4.余弦相似度的代码实现
import math
import numpy
from numpy import linalg# 方法1
def cos_similar_compute(u_k,w_t):if(len(u_k) != len(w_t)):assert('用户数据与物品数据不等!')if(len(u_k) == 0):assert('用户数据为空!')i = 0Score1 = 0Score2 = 0Score3 = 0while(i < len(u_k)):Score1 = Score1 + u_k[i] * w_t[i]Score2 = Score2 + u_k[i] * w_t[i]Score3 = Score3 + u_k[i] * w_t[i]i += 1if(Score3 == 0 or Score2 == 0):assert('用户或者物品数据为空!')return Score1 * 1.0 / (math.sqrt(Score2)*math.sqrt(Score3))# 方法2 直接调包实现
def cos_sim(u_k,w_t):num = float(u_k,w_t)denom = linalg.norm(u_k) * linalg.norm(w_t)return 0.5 + 0.5 * (num/denom)
这里方法2调用的numpy.linalg其实是一个计算范数的方法,默认是二范数
优点
- 1.物品没有冷启动问题,因为物品的内容不受用户数据影响,同时推荐出的物品不会存在过于热门的问题
- 2.能为具有特殊偏好的用户进行推荐
- 3.原理简单,易于定位
缺点
- 1.很难打标签
- 2.局限历史数据,无法挖掘潜在兴趣
- 3.新用户如果没有行为,这无法推荐
推荐系统的基础算法-①基于内容的推荐算法相关推荐
- 推荐系统实战(5)——基于内容的推荐算法(CB)
1 基础CB推荐算法 基础CB推荐算法利用物品的基本信息和用户偏好内容的相似性进行物品推荐.通过分析用户已经浏览过的物品内容,生成用户的偏好内容,然后推荐与用户感兴趣的物品内容相似度高的其他物品. 比 ...
- 新闻推荐系统:基于内容的推荐算法(Recommender System:Content-based Recommendation)
2018/10/04更新 这篇文章似乎被越来越多的小伙伴看到了,所以觉得有必要做一些进一步的详细说明. 首先按照本文所讲解的推荐思路进行新闻推荐的推荐系统,我已经实现并已经放在Github上了.欢迎小 ...
- 新闻推荐系统:基于内容的推荐算法——TFIDF、衰减机制(github java代码)
转自: 因为开发了一个新闻推荐系统的模块,在推荐算法这一块涉及到了基于内容的推荐算法(Content-Based Recommendation),于是借此机会,基于自己看了网上各种资料后对该分类方法的 ...
- 《网络电视节目推荐系统----基于用户协同过滤与基于内容的推荐算法的后融合》
文章目录 一.什么是推荐系统 二.产生原因 由上我们可以得知,推荐系统产生的两大原因 三.应用场景 四.推荐系统的评测方法 1. 推荐系统的三大实验方法 a. 离线实验: b. 用户调查 c. 在线实 ...
- 推荐系统-基于内容的推荐算法(Content-Based)
基于内容的推荐算法(Content-Based) 简介 基于内容的推荐方法是非常直接的,它以物品的内容描述信息为依据来做出的推荐,本质上是基于对物品和用户自身的特征或属性的直接分析和计算. 例如,假设 ...
- 一文全面了解基于内容的推荐算法
作者丨gongyouliu 来源 | 转载自大数据与人工智能(ID:ai-big-data) 这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例. 本文 ...
- 一文看懂基于内容的推荐算法
作者 | gongyouliu 来源 | 数据与智能 从本篇开始我们来详细讲解各类推荐算法.这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例. 本文会 ...
- 推荐算法(一)—— 基于内容的推荐算法
推荐算法(一)-- 基于内容的推荐算法 1 基于内容的推荐算法 基于内容的推荐系统本质是对内容进行分析,建立特征:基于用户对何种特征的内容感兴趣以及分析一个内容具备什么特征来进行推荐. 1.1 基于 ...
- 常用的基于内容的推荐算法实现原理
这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例. 本文会从什么是基于内容的推荐算法.算法基本原理.应用场景.基于内容的推荐算法的优缺点.算法落地需要 ...
- 推荐算法概述(基于用户的协同过滤算法、基于物品的协同过滤算法、基于内容的推荐算法)
"无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程." 目前推 ...
最新文章
- 分区文件http://wenku.baidu.com/view/d839d1868762caaedd33d4b7.html
- ElasticSearch 2 (26) - 语言处理系列之打字或拼写错误
- 2019牛客暑期多校训练营(第五场)- generator 1
- “365算法每日学计划”:05打卡-图解冒泡排序(多解法)
- storm kafkaSpout 踩坑问题记录! offset问题!
- html语言 section type,HTML5中div、article、section的区别及使用介绍
- 这种奇奇怪怪的符号,只能用latex打出来,如果实在不行,>---|-->>也行
- 好程序员Java分享SQL语言之索引
- Java Map集合
- php获取js函数返回的值_最全最详细的PHP面试题(带有答案)
- E: Write error - write (28 No space left on device)
- linux atoi,atoi()的替代办法
- android 进入三方应用动画,Android 动画各种实现总结分享 AndroidAnimationExercise
- Word添加脚注自定义标记
- 微信小程序标题栏放logo 搜索框
- 数据库常用字段、列属性、表类型与SQLyog工具的使用
- Redis集群(Cluster)
- QGIS添加常用的数据源
- 解决电脑问题方案之一
- Markdown 基础操作 | 高级操作 大全+Typora常用快捷键