推荐系统
文章平均质量分 68
记录推荐系统相关内容
白水baishui
天光乍破
展开
-
如何用Python读取Amazon的Review数据
Amazon(http://jmcauley.ucsd.edu/data/amazon/)(https://nijianmo.github.io/amazon/index.html)数据集包含来自亚马逊的产品评论和元数据,其中包括1996年5月至2014年7月的1.428亿条评论。如果我们需要用到Amazon的评论数据,那就要先下载好数据集。原创 2023-02-08 15:30:37 · 2192 阅读 · 1 评论 -
Python 将关系对数据转换为图数据 / 邻接矩阵
在深度学习任务,例如推荐系统中,将关系转换为图表示,即邻接矩阵是常用的操作。通常的做法是先将关系对数据转换为图数据,然后生成该图的邻接矩阵,再存储为稀疏矩阵。但这种方法不适用于大型矩阵的操作,通常会报内存溢出的错误。以推荐系统的Amazon的评级数据为例(Movielens等同理),这里提供一种方法将图数据直接存储为稀疏矩阵。原创 2023-01-09 18:22:40 · 3132 阅读 · 0 评论 -
推荐系统中的公平性
推荐系统中的公平性是指确保推荐系统的推荐结果是基于无偏和公正的原则产生的。从用户侧考虑,推荐结果不应受到种族、性别、年龄或其他可能导致歧视或不平等待遇的用户特征(敏感属性)等因素的影响。从项目侧考虑,推荐系统中的公平性应确保具有相似特征的项目有平等的被推荐机会,并且不同类别的项目在推荐结果中的分布是均匀的。推荐系统是一个多利益方的相关系统,包括(但不限于)用户和项目两个相关方。其中,用户是指接受推荐结果的一方,项目是指被排名或推荐的一方。用户侧的公平性需求通常与推荐结果的质量相关,而项目侧的公平性考虑通常侧原创 2022-12-06 21:56:39 · 1625 阅读 · 0 评论 -
如何把Netflix数据集转换成Movielens格式?
点击“Download”,下载文件archive.zip并解压。5、将物品(电影)id加入dataframe。6、保存dataframe。原创 2022-07-25 16:42:07 · 723 阅读 · 0 评论 -
推荐算法的Python实现——MF(矩阵分解) 基于TensorFlow
本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练MF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m数据集中,注意ratings.dat是用作为分隔符的。。对用户1(user_id=1)产生一次推荐的输出结果(示例):.........原创 2022-06-17 15:46:51 · 1197 阅读 · 0 评论 -
逆向倾向评分 (Inverse Propensity Scoring, IPS) 原理解析与MF算法的结合使用
当历史交互数据为MCAR(Missing Completely At Random,完全随机缺失)时,评级预测损失函数可以定义为:LossNaive=1∣{(u,i):ou,i=1}∣∑(u,i):ou,i=1δu,i(Y,Y^)\mathcal{Loss}_{Naive}=\frac{1}{|\{(u,i):o_{u,i}=1\}|}\sum_{(u,i):o_{u,i}=1}\delta_{u,i}(Y,\hat{Y})LossNaive=∣{(u,i):ou,i=1}∣1(u,i):ou,i原创 2022-04-29 14:39:34 · 4287 阅读 · 0 评论 -
推荐系统 MostPopular 算法的 Python 实现
MostPopular 算法的 是指对每个用户都选择出当前流行度最高的Top-K个物品进行推荐,在推荐的时候,需要去除用户原先就浏览过的项目。算法代码如下:# Most Popdef MostPopular(pop_dict, I, K): ''' pop_dic:流行度字典,存储了每个item:pop_value的键值对。 I:用户可以选择的Item空间(需去除已经看过的item) K:Top-K 值,推荐出K个item给用户 '''原创 2022-03-24 14:08:16 · 1612 阅读 · 0 评论 -
基于强化学习的可解释性推荐 文献三篇
A Reinforcement Learning Framework for Explainable Recommendation. IEEE 2018现在很多推荐模型的机制是复杂且难以解释的,此时需要在对推荐结果进行事后解释,即把推荐模型与解释模型分离开,用单独的模型推荐结果作出解释。本文使用强化学习方法对推荐结果生成解释。在这个可解释框架中,被解释的推荐模型作为环境的一部分,对强化学习方法生成的句子解释进行奖励。框架中有两个智能体与环境交互,第一个智能体根据当前状态生成句子解释,第二个智能体根据第一个原创 2022-03-02 21:41:05 · 1478 阅读 · 0 评论 -
推荐系统去流行度偏差(bias)文献四篇
Keeping Dataset Biases out of the Simulation : A Debiased Simulator for Reinforcement Learning based Recommender Systems. (RecSys 2020)作者为了解决历史数据中的用户与项目之间存在的两种交互偏差:选择偏差和流行度偏差,提出在构造“用户-项目”评级矩阵之前执行去偏差的步骤。由于选择偏差和流行度偏差,导致历史记录中用户对项目的评级是有选择性的,所以依照历史数据构造的评级矩阵的稀疏原创 2022-03-02 21:35:32 · 1589 阅读 · 0 评论 -
2020-2021年顶会上关于解决偏差(bias)问题的文献整理
文章目录1. 偏差分析2. 数据偏差2.1. 选择偏差 Selection Bias2.2. 一致性偏差 Conformity Bias2.3. 曝光偏差 Exposure Bias2.4. 位置偏差 Position Bias (隐式反馈数据)3. 模型偏差3.1. 归纳偏差 Inductive Bias4. 推荐结果的偏差与不公平性4.1. 流行度偏差 Popularity Bias4.2. 偏见 Unfairness (用户偏差 User Bias)5. 论文下载1. 偏差分析(1) Bi原创 2022-02-22 12:44:59 · 1673 阅读 · 0 评论 -
DRN :A Deep Reinforcement Learning Framework for News Recommendation论文解读
文章目录1. 论文贡献2. 模型架构2.1. 特征构造2.2. 深度强化学习模型2.3. 用户的主动反馈2.4. 探索策略1. 论文贡献该论文提出了一个基于DQN的推荐框架,用于解决以下3个问题:当前的推荐系统很难动态地推荐新闻新闻的动态性表现在两个方面:(1)新闻的时效性强,新闻内容很容易过时;(2)用户对不同新闻的兴趣会随着时间的推移而不断变化。当前的强化方法利用的用户反馈信息不足大多数方法只将新闻是否被点击,或者用户对新闻的评分作为用户反馈,这是不够的。当前的推荐系统总是向用户推荐类似原创 2021-10-28 08:36:23 · 545 阅读 · 0 评论 -
推荐算法的Python实现——MF(矩阵分解)
1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练ItemCF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想改ratings.dat文原创 2021-08-20 00:22:12 · 3790 阅读 · 15 评论 -
推荐算法的Python实现——ItemCF(基于物品的协同过滤)
1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练UserCF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想该,改代码也可以,主要替换原创 2021-08-19 08:16:59 · 4627 阅读 · 4 评论 -
推荐算法的Python实现——UserCF(基于用户的协同过滤)
1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练UserCF推荐模型在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想该,改代码也可以,主要替换以下两行:userid, itemid, record, _ = line.split(",")# 替换为userid, itemid, reco原创 2021-08-18 22:29:18 · 5858 阅读 · 2 评论 -
推荐系统测评指标——计算DCG、IDCG以及nDCG的python代码
1. 公式DCG:DCG@K=∑i=1K2ri−1log2(i+1)DCG@K=\sum_{i=1}^{K}\frac{2^{r_i}-1}{log_2(i+1)}DCG@K=i=1∑Klog2(i+1)2ri−1其中,KKK是推荐列表的大小;iii 是指推荐列表中的第iii个推荐项;rir_iri是指推荐项 iii 是否被用户点击,若点击则为111,否则为000,在实际测试中,我们通常吧推荐列表中在测试集的推荐项视为被用户点击的推荐项,不在测试集中的推荐项视为未被用户点击的推荐项;IDC原创 2021-08-17 17:46:31 · 7753 阅读 · 2 评论 -
LIRD(Deep Reinforcement Learning for List-wise Recommendations)论文算法解读
Deep Reinforcement Learning for List-wise Recommendations 1. 构建了一个在线的用户-Agent交互环境模拟器,该模拟器适用于模拟在线推荐系统,以在离线的情况下对参数进行预训练和评估; 2. 提出了一个基于深度强化学习推荐框架:LIRD(LIst-wise Recommendation framework based onDeep reinforcement learning),该框架适用于具有大型动态项空间的推荐场景,并可显著地降低计算量;原创 2021-07-24 02:22:38 · 2401 阅读 · 6 评论 -
Slate-based Recommender Systems 论文解读
Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology本博客对SlateQ论文进行了解读,如有错误请评论指正。文章目录1. 论文算法介绍(第四、五章)1.1. SlateQ: 基于强化学习的推荐列表分解技术Sl1.2. 用Q值对推荐列表进行优化1.3. 三种优化方法的比较2. 论文算法的在线实现(第九章)2.1. 两个重要组件2.2..原创 2021-07-16 17:57:18 · 2046 阅读 · 2 评论 -
10款推荐系统仿真器(模拟平台)汇总和点评
文章目录1. RecoGym2. RecSim3. Lenskit4. Recommenderlab5. MyMediaLite6. Python-Recsys7. Waffles8. LightFM9. Sparrow RecSys10. Mahout11. GraphLab Create1. RecoGymRecoGym是一个侧重于强化学习的推荐系统模拟环境,它提供了一个统一的推荐框架,在这个框架中可以将经典推荐算法和强化学习方法结合使用,并且拥有离线和在线实验的功能,让推荐系统研究人员可以更好地把原创 2021-02-22 21:37:33 · 7827 阅读 · 3 评论 -
一文入门推荐系统——推荐系统实践读书笔记
1. 推荐系统1.1. 什么是推荐系统1.2. 推荐系统评测1.2.1. 实验方法1.2.2. 评判指标1.2.3. 评判维度2. 数据来源2.1. 用户行为数据2.2. 用户标签数据2.3. 上下文信息2.3.1. 时间上下文信息2.3.2. 地点上下文信息2.4. 社交网络数据3. 通用推荐模型3.1. 协同过滤推荐3.1.1. 基于邻域的模型3.1.2. 隐语义模型3.1.3. 基于图的模型3.2. 基于内容的推荐3.3. 基于关联规则的推荐3.4. 基于知识的原创 2020-12-20 12:54:25 · 28462 阅读 · 124 评论