推荐系统综述

效果评估

推荐系统在为用户推荐物品时通常有两种方式:

  1. 评分预测
    此方法一般通过学习用户对物品的历史评分,预测用户可能会为他没有进行评分的物品打多少分,通常用于在线视频、音乐等服务的推荐。
    评分预测的效果评估一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于测试集T中的一个用户u和物品i,令 r u i r_{ui} rui是用户u对物品i的实际评分,而 r ^ u i \hat{r}_{ui} r^ui是推荐系统给出的预测评分,则RMSE定义为:
    在这里插入图片描述
    MAE定义为:
    在这里插入图片描述
  2. TopN推荐
    此方法一般不考虑评分,而是为用户提供一个个性化推荐列表,通过预测用户对物品的兴趣度对列表进行排序,选取其中前N个物品推荐给用户,通常用于电子商务、社交网络、互联网广告推荐。
    TopN推荐一般通过准确率(precision)、召回率(recall)和F1值(平衡分数)度量。令 R ( u ) R(u) R(u)是为用户推荐的物品列表, T ( u ) T(u) T(u)是用户在测试集上的行为列表。
    召回率定义为:
    在这里插入图片描述
    准确率定义为:
    在这里插入图片描述
    F1值定义为:
    在这里插入图片描述

总体

  • 推荐系统通常分为召回和排序两个步骤
  • 召回:粗排选取合适的内容,可以通过协同过滤,兴趣tag,内容最热等方式
  • 排序(CTR预估):使用一个点击率预估模型(输入用户特征,内容特征,用户内容交叉特征等)对召回出来的内容进行排序

召回常用算法

基于内容
协同过滤
基于矩阵分解:https://blog.csdn.net/taoyanqi8932/article/details/62052684
https://blog.csdn.net/greedystar/article/details/80813057
基于知识:https://blog.csdn.net/gongxifacai_believe/article/details/82144938
https://blog.csdn.net/shinecjj/article/details/82286386
基于模型:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/82881839

排序常用算法

参考:
1.https://blog.csdn.net/greedystar/article/details/80813057

### 2024年推荐系统的最新综述报告 #### 推荐系统的发展趋势 近年来,随着人工智能技术的进步,特别是深度学习和自然语言处理(NLP)领域的突破,推荐系统的研究和发展也取得了显著进展。当前的趋势表明,基于Transformer架构的模型正在成为主流,这类模型因其高效的并行化能力和强大的表达能力而备受青睐[^5]。 #### 基础模型的应用 基础模型(Foundation Models),作为一类预训练的大规模机器学习模型,在多个领域展现出了卓越的能力。对于推荐系统而言,这些模型可以用于捕捉用户行为模式中的复杂特征,并通过迁移学习的方式应用于特定场景下的个性化推荐服务中[^1]。 #### 图神经网络的作用 除了传统的矩阵分解方法外,图神经网络(GNNs)也被广泛引入到现代推荐算法设计当中。GNNs能够有效地建模实体间的关系结构信息,从而提高预测准确性以及解释力。特别是在社交平台、电子商务网站等具有丰富关系数据的应用环境中表现尤为突出[^2]。 #### 新硬件的支持 NVIDIA推出的Blackwell系列GPU为AI计算提供了更强有力的支持,这无疑会加速包括但不限于推荐系统在内的各类AI应用的研发进程。更高的性能意味着可以在更短时间内完成更大规模的数据集上的实验验证工作,进而推动整个行业向前发展[^3]。 ```python import torch from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') def encode_text(text): inputs = tokenizer(text, return_tensors="pt") outputs = model(**inputs) last_hidden_states = outputs.last_hidden_state return last_hidden_states.mean(dim=1) text_example = "This is an example sentence." encoded_vector = encode_text(text_example) print(encoded_vector) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值