推荐系统项目基础(七)基于内容的推荐系统

本文介绍了基于内容的推荐系统,包括用户画像和物品画像的构建,以及使用TF-IDF和Word2Vec进行推荐的方法。用户画像由历史信息、个人属性等组成,物品画像则涉及分类、标题等信息。通过匹配用户和物品画像,利用TF-IDF计算关键词权重,建立倒排索引,实现推荐。同时提到了基于Word2Vec的推荐系统。
摘要由CSDN通过智能技术生成

简介

基于内容的推荐比较直接,以物品的内容描述信息作为依据来进行推荐,本质上是基于物品和用户自身的特征进行分析和计算

基于内容的推荐实现步骤

1、画像构建

画像的字段一般有100+以上。

用户画像

一般来自于用户的历史信息或者个人信息,例如用户的性别,年龄,消费水平,已经购买物品的记录等。还可以包括活跃程度,风控维度。

物品画像

与物品相关的信息,例如分类信息,标题,电影主演等。一般从两个方面获取:

  1. PGC 用户画像-冷启动
    • 物品自带的属性(物品一产生就具备的):如电影的标题,导演,演员等。
    • 服务方提供的属性,如短视频话题,微博话题等
    • 爬虫等
  2. UGC 用户产生的内容
    • 用户再进行服务时提供的属性,用户的评论内容,用户拟定的话题(微博话题)

2、匹配用户画像与物品画像

根据用户匹配最相近的物品进行推荐

基于TF-IDF进行数据的推荐

在这里插入图片描述

在这里插入图片描述
推荐流程:

  • 1、建立物品画像
    • 筛选出所有物品与其对应的tag列表
    • 根据TF-IDF求解出每个电影的topN(TFIDF 比较大的关键词)
    • 建立【电影ID,关键词,关键词权重】的DataFrame
  • 2、建立倒排索引
    • 通过关键词可以找到对应的电影
    • 遍历数据,读取每个关键词,用关键词对应的电影id作为value并保存。
  • 3、建立用户画像
    • 根据用户的评分列表获取到用户都有评分哪些电影,根据这些电影提取关键词
    • 根据这些关键词作为用户的标签进行统计,将最常见的标签作为用户的画像关键词。
  • 进行推荐
    • 根据用户的关键词进行查找,

代码:

from functools import reduce

import pandas as pd
import numpy as np
from gensim.models import TfidfModel
from gensim.corpora import Dictionary
from collections import Counter

if __name__ == '__main__':
    dtype = [("userId", np.int32), ("movieId", np.int32), ("tag", np.str), ("timestamp", np.int64)]
    tags_df = pd.read_csv("../ml-25m/tags.csv", usecols=range(1, 3)).dropna()
    movies_df = pd.read_csv("../ml-25m/movies.csv", index_col="movieId")

    tags = tags_df.groupby("movieId").agg(list)
    movies_df.loc[:, "genres"] = movies_df.loc[:, "genres"].apply(lambda x: x.split("|"))

    # tags_df = tags_df.sort_values(
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值