推荐系统综述与代码

本文介绍了推荐系统的概念,包括基于内容和协同过滤的方法。基于内容的推荐利用用户历史行为建立画像,协同过滤则根据用户相似性进行推荐。文中详细讨论了用户和物品的表示、相似度计算以及模型构建,并提供了代码实验,展示了如何预测用户是否会观看电影及其评分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推荐系统综述与代码

By Joey周琦

引言与符号介绍

一般来说,推荐系统可以归纳为,预测user对某item的评分或者点击率。问题描述如下

user对item的互动,主要可以分为下面三个方面:

  • scalar. (numerical(rating),ordinal). 标量的
  • binary. (like,dislike) 二项的,0 or 1, 点or不点等
  • unary. (purchase,online access,etc) 。一元的,如购买,在线等

为了表述清晰,我们做一下符号说明

  • item:商品,user:用户 (后面可能会混合叫)
  • U : 用户集合
  • I : 商品集合
  • R : 用户对商品的评分集合(或点击率等)
  • S : 评分集合的可能值域 (e,g, S=[1,...,5]orlike,dislike )
  • rui : 用户u给item i 的评分
  • Ui : 评价过商品i的用户集合
  • Iu : 用户u评价过的item集合
  • Iuv=IuIv , Uij=UiUj
  • N(u) : 用户u的KNN(K个最近邻)
  • Ni(u) :评价过item i的用户u的KNN最近邻
  • Nu(i) : 被用户u评价过的商品i的最近邻

若用效用函数 f 衡量用户u对商品i的兴趣, i.e, f:U×I>S 。那么对于用户 uU , 我们希望选择一个 iI 最大化用户的兴趣. 如下:

uU,  iu=argmaxiIf(u,i).

用户空间 U 的每个用户可以由一个profile(用户资料,画像)来代表,这个profile可以包含 用户基础属性(性别,年龄,地域,学历),历史行为(用户ID)等。
商品空间 I 的每个商品可以由商品的内容(标题,类别,等)和历史行为(ID)来代表。

用户的explicit feedback (显性反馈)行为可以分为下面三种,这类信息比较少,但比较准确。
* like/dislike
* ratings
* text comments

用户的implicit feedback (隐形反馈)行为可以为下面这些:保存,点击,放弃,打印,标签。这些行为不需要用户直接性的参与。这类信息比较多,但没有显性那么准确。

一般来说推荐系统可以分为两类

  • 基于内容的推荐系统 (Content-based recommendations,CB). 根据用户的浏览历史item的内容,给用户推荐相似内容的item
  • 协同滤波推荐系统 (Collaborative filtering recommendations, CF). 给用户推荐与其相似用户看过的商品user-CF,或给用户推荐其看过的商品的相似商品item-CF. 这里的相似不是从内容分析,而是看过相同内容越多的用户则越相似,被相同用户看过越多则越相似。
  • 混合上述方法

基于内容的推荐系统Content based

基于内容的推荐系统(CB)通过分析user过去的评分、点击等行为,为每一个user建立一个画像(profile)或模型(model). 画像可以结构化代表user的兴趣等,可以用来给用户带来新的推荐。基于内容的信息过滤需要一些技术(自然语言处理,信息提取,如tf-idf等)来代表每个物品item和用户画像,并且需要策略对比用户画像与item的相似度。

基于内容的效用函数可以定义为 f(u,i) :

f(u,i)=score(ContentBasedProfile(u),Content(i))

  • Content(i) 是item的画像. ContentBasedProfile(u) is the用户u的画像。
  • Content(i) and ContentBasedProfile(u) 可以用tf-idf向量(或其他技术)代表。

很多机器学习的方法,如朴素贝叶斯、神经网络、决策树等算法可以应用于基于内容的推荐中。(个人理解是利用向量代表作为特征,点击或平分作为label,来训练分类算法?)

基于内容的推荐框架如下图

这里写图片描述

CB有如下优势:

  • USER INDEPENDENCE - Content-based recommenders exploit solely ratings provided by the active user to build her own profile
  • 用户独立性:只根据用户自己的历史行为构建用户画像
  • 可解释性强
  • CB可以推荐没有任何行为的item,因为可以通过内容分析

CB的一些限制:

  • 有限的内容分析:对于声音、图像的内容分析技术有限
  • 推荐过细:系统只会推荐和用户历史行为内容相关的item,缺乏新颖性
  • 对新用户推荐有难度(因为没有历史行为)

代表item(Item Representation)

在大部分cb系统中,item的描述是从网页,文章,评论,内容等重提取的文字特征。由于语言的多义性(language ambiguity),对于文字特征,一些复杂的问题需要处理:

  • POLYSEMY, the presence of multiple meanings for one word;
  • POLYSEMY, 一词多义
  • SYNONYMY, 多词同义

基于关键词的向量空间模型

大部分基于内容的推荐系统都是比较简单的检索模型,如关键字匹配或向量空间模型(基于td-idf权重)。 假设
Most content-based recommender systems use relatively simple retrieval models, such as keyword matching or the Vector Space Model (VSM) with basic TF-IDF weighting. Let D=d1,d2,,dN denote a set of documents or corpus, and T=t1,t2,,TN be the dictionary, that is to say the set of words in the corpus. T is obtained by applying
some standard natural language processing operations, such as tokenization, stopwords
removal, and stemming. Each item dj is represented as a vector in a n -dimensional vector space, so dj=w1j,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值