推荐系统学习(重排序)
...
推荐系统学习(冷启动)
冷启动 冷启动介绍 冷启动: 对于新注册的用户或者新入库的标的物, 该怎么给新用户推荐标的物让用户满意,怎么将新标的物分发出去,推荐给喜欢它的用户。 如果是新开发的产品,初期用户很少,用户行为也不多,常用的协同过滤、深度学习等依赖大量用户行为的算法不能很好的训练出精准的推荐模型, 怎么让推荐系统很好的运转起来,让推荐变得越来越准确,这个问题就是系统冷启动。 分类: 标的物冷启动:也称为“物品冷启动”或“内容冷启动”,指的是系统中新增了某个推荐对象(如商品、电影、文章等),但由于该物品还没有用户互动数据(点击、评分、购买等),导致系统无法判断哪些用户可能喜欢它。 用户冷启动:指的是系统中新增用户或活跃度极低的用户,由于其没有或几乎没有行为数据,系统难以判断该用户的兴趣偏好,难以进行个性化推荐。 **系统冷启动: 整个推荐系统刚刚上线或处于早期阶段,缺乏足够的用户数据和物品数据,导致推荐算法无法有效学习 冷启动挑战: 我们一般对新用户知之甚少,...
推荐系统学习(Word2vec)
推荐系统学习(Word2vec) CBoW & Skip-gram模型架构 2003年,Bengio等人发表了一篇开创性的文章:A neural probabilistic language model[3]。在这篇文章里,他们总结出了一套用神经网络建立统计语言模型的框架(Neural Network Language Model,以下简称NNLM),并首次提出了word embedding的概念,从而奠定了包括word2vec在内后续研究word representation learning的基础。 NNLM模型的基本思想可以概括如下: 假定词表中的每一个word都对应着一个连续的特征向量; 假定一个连续平滑的概率模型,输入一段词向量的序列,可以输出这段序列的联合概率; 同时学习词向量的权重和概率模型里的参数。 我们可以将整个模型拆分成两部分加以理解: 首先是一个线性的Embedding层。它将输入的N−1个one-hot词向量,通过一个共享的D×V的矩阵C,映射为N−1个分布式的词向量(distributed...
推荐系统学习(选择性偏差)
推荐系统中的Selection bias 推荐系统中的bias Selection bias:当用户能够自由地选择给哪些物品打分的时候,则评分数据不是随机丢失的(missing not at random, MNAR),观测到的交互数据的分布将不能代表整体数据的分布。(当用户拥有自由选择权的时候,更倾向于给自己喜欢的物品打分。) Conformity bias:用户的打分会倾向于和群体一致,即使群体的打分有时候和用户的判断是有区别的,用户的这种倾向将使得评分并不能准确反映用户的偏好。大部分人都有从众的倾向,当用户发现自己的判断与大众不一致时,很可能改变自己的评分,而让自己的评分向大众的评分靠拢。 Exposure bias:用户只会暴露在一部分的物品上,因此没有交互过的物品不一定是用户不喜欢的,还可能是用户没看到。用户和物品没有交互存在两种可能性:用户没看到物品、用户不喜欢物品,直接讲没有交互过的物品当作负样本(用户不喜欢)会引入偏差。 Position...
推荐系统学习(召回)
召回 介绍 召回是推荐系统链路中的第一个流程,目的是从几亿的item中选出几千item。进行召回的模型方法是多种多样,包括但不仅限于基于统计学的、基于规则的和基于神经网络的。 传统方法 协同过滤方法 定义: 通过分析用户或者事物之间的相似性(“协同”),来预测用户可能感兴趣的内容并将此内容推荐给用户。协同过滤有泛化能力弱、热门物品头部效应强的弱点 UserCF 原理: 如果用户 user1user1user1 与用户 user2user2user2 相似,而且 user2user2user2 喜欢某物品 item1item1item1 ,那么 user1user1user1 很可能也喜欢该物品。根据该思想,UserCF的实现需要基于以下步骤: 基于转化流程中的动作得到用户对某物品的兴趣分数 $ like(user_j,item) $ ; 离线计算得到的用户之间的相似度 sim(userj,useri)sim(user_j,user_i)sim(userj,useri)...
推荐系统学习(CTR预估)
CTR预估 FM 因子分解机 论文链接:Factorization Machines 介绍: 作为逻辑回归模型LR的改进版,拟解决在稀疏数据的场景下模型参数难以训练的问题。并且考虑了特征的二阶交叉,弥补了逻辑回归表达能力差的缺陷。 原理: y=ω0+∑i=1nωixi+∑i=1n−1∑j=i+1nωijxixjy=\omega_{0}+\sum_{i=1}^{n} \omega_{i} x_{i}+\sum_{i=1}^{n-1} \sum_{j=i+1}^{n} \omega_{i j} x_{i} x_{j} y=ω0+i=1∑nωixi+i=1∑n−1j=i+1∑nωijxixj 在线性模型的基础上添加了一个多项式(最后一项),用于描述特征之间的二阶交叉。但是参数学习困难,因为对 wijw_{ij}wij 进行更新时,求得的梯度对应为xix_ixi、 xjx_jxj,当且仅当二者都非 0...
Dataset Condensation整合版
目录 Data Pruning via Moving-one-Sample-out D² PRUNING: Message Passing for Balancing Diversity & Difficulty Sieve: Multimodal Dataset Pruning Using Image Captioning Models Data Pruning via Moving-one-Sample-out 这个是NeurIPS 2023的文章 Arxiv地址:https://arxiv.org/abs/2310.14664 背景与贡献 现有方法概述 Dataset Pruning的主流方法有: 重要性指标打分:entropy, SSP, Forgetting, GraNd/EL2N, Memorization 等 基于几何覆盖/样本多样性思想:Moderat, Herding, Coverage-centric, CCS等 优化方法:CRAIG, Grad-match, bi-level,...
BUAA-OS-Challenge-2024
前言 本文是对BUAA操作系统课程挑战性任务中shell增强的总结,其目的是实现一个功能更强大的shell(与linux更加接近)。 宇宙安全声明: 本文行文过程为笔者实现Shell增强的流程,与指导书顺序不同。 本文借鉴参考了往年功能要求相似的部分,但由于2024年OS课程对shell增强进行评测,故修改了往年的部分bug 本文是在通过测评的基础上,一定会存在未评测的bug。 实现对.b的忽略 目标: 你需要实现不带 .b 后缀的指令,但仍需兼容带有 .b 后缀的指令,如 ls 与 ls.b 都应能够正确列出当前目录下的文件。 思路: 对于ls等指令,我们在lab6中实现了带有.b格式的指令,其判别方式为作为一个token传入spawn函数进行解析。因此,为实现对.b的忽略,需要修改spawn函数。 实现方法: spawn代码片段如下(往年这部分实现已经很多): int fd; if ((fd = open(prog, O_RDONLY)) < 0) { // 检测是否以.b结尾,如果是,则直接打开 int len =...