推荐算法
文章平均质量分 93
独影月下酌酒
这个作者很懒,什么都没留下…
展开
-
LightGBM面试题
xgboost是属于boosting家族,是GBDT算法的一个工程实现在模型的训练过程中是聚焦残差,在目标函数中使用了二阶泰勒展开并加入了正则,在决策树的生成过程中采用了精确贪心的思路,寻找最佳分裂点的时候,使用了预排序算法, 对所有特征都按照特征的数值进行预排序, 然后遍历所有特征上的所有分裂点位,计算按照这些候选分裂点位分裂后的全部样本的目标函数增益,找到最大的那个增益对应的特征和候选分裂点位,从而进行分裂。这样一层一层的完成建树过程。原创 2023-04-24 16:56:51 · 684 阅读 · 0 评论 -
LightGBM模型详解
1.背景 LightGBM 是微软开发的 boosting 集成模型,和 XGBoost 一样是对 GBDT 的优化和高效实现,原理有一些相似之处,但它很多方面比 XGBoost 有着更为优秀的表现。官方给出的这个工具库模型的优势如下:更快的训练效率低内存使用更高的准确率支持并行化学习可处理大规模数据支持直接使用 category 特征 下图是一组实验数据,LightGBM比XGBoost快将近 101010 倍,内存占用率大约为XGBoost的 1/61/61/6,并且准确率也有提原创 2023-04-24 16:48:36 · 3213 阅读 · 2 评论 -
XGBoost模型详解
1.什么是XGBoost? GBDT,它是一种基于boosting增强策略的加法模型,训练的时候采用前向分布算法进行贪婪的学习,每次迭代都学习一棵CART树来拟合之前 t−1t-1t−1 棵树的预测结果与训练样本真实值的残差。XGBoost对GBDT进行了一系列优化,比如损失函数进行了二阶泰勒展开、目标函数加入正则项、支持并行和默认缺失值处理等,在可扩展性和训练速度上有了巨大的提升,但其核心思想没有大的变化。2.XGBoost的核心原理2.1 如何构造目标函数? 对于一个给定有 nnn 个样本和原创 2023-04-24 16:35:26 · 16490 阅读 · 3 评论 -
Faiss
构建训练数据以矩阵的形式表示,比如现在经常使用的embedding,embedding出来的向量就是矩阵的一行。为数据集选择合适的index,index是整个faiss的核心部分,将第一步得到的训练数据add到index当中。search,或者说query,搜索到最终结果。Faiss的工作,就是把我们自己的候选向量集封装成一个index数据库,它可以加速我们检索相似向量TopK的过程,其中有些索引还支持GPU构建,可谓是强上加强。Faiss的使用流程:构建索引,训练数据,寻找相似搜索。原创 2023-04-19 11:28:17 · 607 阅读 · 0 评论 -
k-d Tree算法
本文介绍一种用于高维空间中的快速最近邻和近似最近邻查找技术——Kd- Tree(Kd树)。Kd-Tree,即K-dimensional tree,是一种高维索引树形数据结构,常用于在大规模的高维数据空间进行最近邻查找(Nearest Neighbor)和近似最近邻查找(Approximate Nearest Neighbor),例如图像检索和识别中的高维图像特征向量的K近邻查找与匹配。Kd树在维度较小时(比如203020、302030K≥100K≥100K≥100。原创 2023-04-18 15:21:41 · 2302 阅读 · 0 评论 -
Deep Neural Network for YouTube Recommendation论文精读
YouTube的推荐系统包括Deep Candidate Generation model和Deep Ranking model两部分把推荐问题建模成一个“超大规模多分类”问题。Matching部分包含一个三个隐层的DNN结构,输入为浏览历史、搜索历史、人口统计学信息和其余上下文信息concat成的输入向量,输出分为线下(softmax)和线上(user向量查询相关视频)。Matching阶段:用户观看视频历史和搜索特征embedding后进行加权平均,example age(视频上传时间特征)原创 2023-04-18 15:14:40 · 508 阅读 · 0 评论 -
双塔模型:微软DSSM模型浅析
DSSM其核心思想是将query和doc映射到到共同维度的语义空间中,通过最大化query和doc语义向量之间的余弦相似度,从而训练得到隐含语义模型,达到检索的目的。DSSM主要用在召回和粗排阶段。在应⽤于推荐系统时,通过两个塔分别去建模user侧和item侧的embedding,计算embedding之间的内积,最后⽤真实的label计算loss。user塔与item塔的DNN结构最后一层(全连接层)隐藏单元个数相同,保证user embedding和item embedding维度相同。原创 2023-04-18 15:02:48 · 1272 阅读 · 0 评论 -
Item2Vec算法及代码实战
在word2vec诞生之后,embedding的思想迅速从NLP领域扩散到几乎所有机器学习的领域,我们既然可以对一个序列中的词进行embedding,那自然可以对用户购买序列中的一个商品,用户观看序列中的一个电影进行embedding。CBOW使用的是词袋模型,模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这个词的词向量。Skip-Gram模型和CBOW的思路是反着来的,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。该模型成为“双塔模型”。原创 2023-04-18 14:49:32 · 824 阅读 · 0 评论 -
gensim.models.word2vec() 参数详解
Word2vec是一个用来产生词向量的模型。是一个将单词转换成向量形式的工具。通过转换,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。原创 2023-04-18 14:46:21 · 1806 阅读 · 0 评论 -
word2vec原理
1.背景 2013年,Google开源了一款用于词向量计算的工具—word2vec,引起了工业界和学术界的关注。首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。随着深度学习在自然语言处理中应用的普及,很多人误以为word2vec是一种深度学习算法。其实word2vec算法的背后是一个浅层神经网络。另外需要强调的一点是,word2vec是一个计算word vector的开源工原创 2023-04-17 16:09:44 · 672 阅读 · 0 评论 -
基于矩阵分解的推荐算法
1.背景 推荐系统的两大应用场景分别是评分预测(Rating Prediction)和Top-N推荐(Item Ranking)。其中评分预测主要用于评价网站,比如用户给自己看过的电影评多少分,或者用户给自己看过的书籍评价多少分,矩阵分解技术主要应用于评分预测问题;Top-N推荐常用于购物网站或获取不到显式评分的网站,通过用户的隐式反馈为用户提供一个可能感兴趣的Item列表,此排序任务需要排序模型进行建模。本文主要介绍如何利用矩阵分解来解决评分预测问题。2.矩阵分解概述 协同过滤技术可划分为基于内原创 2023-04-17 15:31:27 · 1385 阅读 · 0 评论 -
协同过滤算法
协同过滤(Collaborative Filtering)算法是一种经典的“推荐算法”, 基本思想是根据用户之前的喜好以及其他兴趣相近的用户的选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向, 并预测用户可能喜好的产品进行推荐), 一般是仅仅基于用户的行为数据(评价、购买、下载等), 而不依赖于项的任何附加信息(物品自身特征)或者用户的任何附加信息(年龄, 性别等)。基于用户的协同过滤算法(UserCF): 给用户推荐和他兴趣相似的其他用户喜欢的产品。原创 2023-04-17 14:53:19 · 2292 阅读 · 0 评论 -
常见的相似度计算方式
欧氏距离(也称欧几里得度量)指在mmm维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。 在二维和三维空间中的欧氏距离就是两点之间的实际距离。计算公式:dist(A,B)=∑i=1n(Ai−Bi)2dist(A,B)=\sqrt{\sum\limits^n\limits_{i=1}(A_i-B_i)^2}dist(A,B)=i=1∑n(Ai−Bi)2理解欧氏距离的比较通俗的一种方式,是通过二维向量的距离来进行理解。直观上的感觉,某个点到另一个点的直线距离使用场景:随着数原创 2023-04-15 22:24:26 · 4592 阅读 · 5 评论 -
分类算法性能度量指标
为了了解模型的泛化能力,我们需要用某个指标来衡量,这就是性能度量的意义。混淆矩阵准确率精准率(Precision)和召回率(Recall)、F1-ScoreROC曲线AUCP-R曲线等等。ROC以及后面要讲到的AUC,是分类任务中非常常用的评价指标,本文将详细阐述。可能有人会有疑问,既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:**当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。原创 2023-04-15 20:47:47 · 749 阅读 · 0 评论 -
DIN论文翻译
在电子商务行业,利用丰富的历史行为数据更好地提取用户兴趣对于构建在线广告系统的点击率(CTR)预测模型至关重要。关于用户行为数据有两个关键观察结果:i)多样性(diversity)。用户在访问电子商务网站时对不同种类的商品感兴趣。ii)局部激活(local activation)。用户是否点击商品仅取决于他们相关的历史行为的一部分。然而,大多数传统的 CTR 模型缺乏捕获这些行为数据结构。在本文中,我们介绍了一种新提出的模型,即深度兴趣网络(DIN),该模型是在阿里巴巴的展示广告系统中开发和部署的。原创 2023-04-14 21:13:36 · 428 阅读 · 0 评论 -
LightGBM论文翻译
Gradient Boosting Decision Tree (GBDT)是一个非常流行的机器学习算法,却只有像XGBoost和pGBRT的一些实现。尽管许多工程上的优化方案已经在这些实现中应用了,但是当特征维度较高和数据量巨大的时候,仍然存在效率和可扩展性的问题。一个主要原因就是对于每一个特征的每一个分裂点,都需要遍历全部数据计算信息增益,这一过程非常耗时。和(基于梯度的one-side采样和互斥的特征捆绑)。在GOSS中,我们排除了一部分重要的具有小梯度实例数据的比例,只用剩下的来估计信息增益。原创 2023-04-14 16:23:05 · 502 阅读 · 0 评论 -
DeepFM论文翻译
为了最大化推荐系统的CTR,学习用户行为的复杂交叉特征很关键。尽管有很大进步,现有的方法无论对低阶还是高阶的交叉特征,似乎还是有很强的bias, 或者需要专门的特征工程。本文,我们证明了得出一个能强化高阶和低阶交叉特征的端到端模型是可能的。本文提出的DeepFM模型,结合了推荐系统的FM和深度神经网络中的特征学习能力,相比于Google的Wide&Deep模型,DeepFM共享wide和deep部分的输入,而且只需要原始特征,不需要特征工程。实验部分展示了DeepFM的效果和性能。原创 2023-04-14 13:42:45 · 1236 阅读 · 0 评论 -
GBDT+LR论文翻译
在线广告允许广告客户仅针对可衡量的用户响应进行出价和付费,例如广告点击。因此,点击预测系统是大多数在线广告系统的核心。伴随每日活跃用户超过7.5亿活跃广告客户超过100万的情况,预测Facebook广告点击是一项具有挑战性的机器学习任务。在本文中,我们介绍了一个将决策树与逻辑回归相结合的模型,其性能比这两种方法中的任何一种都高出 3% 以上,这一改进对整体系统性能产生了重大影响。然后,我们将探讨一些基本参数如何影响我们系统的最终预测性能。最重要的是拥有正确的特征。原创 2023-04-13 21:31:38 · 802 阅读 · 0 评论 -
推荐系统数据集之MovieLens
MovieLens其实是一个推荐系统和虚拟社区网站,它由美国 Minnesota 大学计算机科学与工程学院的GroupLens项目组创办,是一个非商业性质的、以研究为目的的实验性站点。GroupLens研究组根据MovieLens网站提供的数据制作了MovieLens数据集合,这个数据集合里面包含了多个电影评分数据集,分别具有不同的用途。本文均用MovieLens数据集来代替整个集合。MoveieLens数据集可以说是推荐系统领域最为经典的数据集之一,其地位类似计算机视觉领域里的MNIST数据集。原创 2023-04-13 20:36:47 · 5670 阅读 · 0 评论 -
推荐系统中的冷启动
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。这些数据的获取对于一些热门的网站或者app来说也许不是个担心的问题,但是对于一些全新上线的网站等开始阶段的平台来说,如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。冷启动问题一直存在,故解决冷启动问题就很重要。冷启动分为:用户冷启动、物品冷启动、系统冷启动。原创 2023-04-12 18:52:34 · 2140 阅读 · 1 评论 -
稀疏矩阵(Sparse Matrix)
稀疏矩阵在数值分析中,是其元素大部分为零的矩阵。在矩阵中,若数值0的元素数目远多于非0元素的数目,并且非0元素分布没有规律矩阵的稠密度非零元素的总数比上矩阵所有元素的总数。原创 2023-03-29 16:33:29 · 11717 阅读 · 0 评论 -
FFM论文翻译
对于某些类型的数据集,FFM 在 logloss 方面优于 LM、Poly2 和 FM模型,但训练时间更长。原创 2022-09-08 15:46:04 · 419 阅读 · 0 评论 -
XGBoost面试题整理
XGBoost面试题原创 2022-09-07 23:53:02 · 432 阅读 · 1 评论 -
XGBoost论文翻译
Tree boosting 是一个高效的并且广泛应用的机器学习方法。在本文中,我们会介绍一个可扩展的端到端的 tree boosting 系统,它叫 XGBoost,它被数据科学家广泛地应用,并且在许多机器学习挑战取得了最好的结果。对于稀疏数据提出了稀疏性感知算法,以及加权分位数略图(weighted quantile sketch) 用来近似树模型学习。更重要的是,我们提供了对缓存访问模式,数据压缩和分片的见解来建立一个可扩展的提升树系统。原创 2022-09-07 23:07:38 · 580 阅读 · 0 评论 -
Wide&Deep论文翻译
在大多数情况下,稀疏输入的大规模回归和分类问题都是通过线性模型和非线性特征来解决。通过特征交叉带来的Memorization(记忆能力)非常有效和可解释,然后generalization(泛化能力)需要更多的特征工程的成本。但是,如果用DNN的话,不需要那么多特征工程,就有足够的泛化能力,对稀疏特征进行embedding后得到的低维稠密特征隐含了一些特征组合。原创 2022-09-06 17:35:44 · 529 阅读 · 0 评论 -
FM论文翻译
在本文中,我们介绍了一种新的模型因子分解机(FM),它结合了支持向量机(SVM)和分解模型的优点。与SVM一样, FM模型是一种能处理任何实值特征向量的通用预测器。 与SVM相比,FMs利用因式分解对变量之间的关系进行建模。 因此,FMs可以在大量稀疏特征中进行特征交叉关系的估计。 FM模型可以在线性时间内求解,因此FMs可以进行直接的优化。 所以,不像非线性的SVM,不需要进行对偶变换,FM模型的参数可以直接的进行估计,不需要用到支持向量。 本文展示了与SVM 的关系以及 FM 在数据稀疏的情况下进原创 2022-09-02 02:15:50 · 534 阅读 · 0 评论