推荐算法八股总结
从计算机视觉转行搜广推的第8天
1.youtubednn
推荐系统经典模型YouTubeDNN_推荐系统架构图-CSDN博客文章浏览阅读2.1k次,点赞28次,收藏34次。本文详细介绍了YouTubeDNN推荐系统,包括其召回阶段的多模型筛选策略,排序阶段的复杂模型以及关键的负采样、特征构造和上下文选择技巧。文章强调了YouTubeDNN如何解决大数据量下的推荐问题和模型效率优化。https://blog.csdn.net/sinat_31854967/article/details/136252252?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522f5de33b05f7634fdf9bc31fb85612067%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=f5de33b05f7634fdf9bc31fb85612067&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-136252252-null-null.142^v102^pc_search_result_base8&utm_term=youtubeDNN&spm=1018.2226.3001.41872.快速排序,我还是习惯用C++来写
def quick_sort(arr):if len(arr) <= 1:return arr # 递归出口pivot = arr[0] # 选取基准值(可以随机,也可以选中间值)left = [x for x in arr[1:] if x <= pivot] # 小于等于 pivot 的元素right = [x for x in arr[1:] if x > pivot] # 大于 pivot 的元素return quick_sort(left) + [pivot] + quick_sort(right)
3.拍卖机制需要满足激励兼容
激励兼容是指:在一个机制中,每个参与者的最佳策略就是如实报告自己的真实信息(如物品的估值),即使他们知道其他人的策略或规则。
避免作弊行为,保证机制的可执行性
确保资源高效配置
4.解决跷跷板问题,下面的链接介绍了多个网络,mmoe,cgc,pil,esmm
推荐系统中的多目标建模与优化-CSDN博客文章浏览阅读3.1k次,点赞2次,收藏7次。多目标建模已经成为当前推荐系统中的标配,在多目标建模过程中,需要考虑多个目标之间的相互关系,以选择合适的多目标建模方法,同时,在多目标的损失函数的设计上,也存在很多的优化方案,需要根据具体的应用场景选择合适的损失函数,以达到对具体任务的优化。_多目标建模https://blog.csdn.net/google19890102/article/details/1286579425.除了 AUC,还有哪些常用的排序评估指标?
Hit Rate / Recall@k,GAUC(Grouped AUC)
6.评估 CTR 校准模块的效果?
校准准确性
业务指标的变化
7.deepfm,决策树,我看看后面把之前视觉总结的部分八股也加进来,整到一起来看
推荐系统 - DeepFM架构详解_deep fm-CSDN博客文章浏览阅读4w次,点赞43次,收藏231次。说明理论部分请参照:https://www.jianshu.com/p/6f1c2643d31b,这里主要针对源码进行解读,填一些坑。简单介绍1.DeepFM可以看做是从FM基础上衍生的算法,将Deep与FM相结合,用FM做特征间低阶组合,用Deep NN部分做特征间高阶组合,通过并行的方式组合两种方法,使得最终的架构具有以下特点。 (1) 不需要预训练 FM 得到隐向量;..._deep fmhttps://blog.csdn.net/maqunfi/article/details/99635620?ops_request_misc=%257B%2522request%255Fid%2522%253A%25225171742afc0f2c61dd308da77c2448f7%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=5171742afc0f2c61dd308da77c2448f7&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-99635620-null-null.142^v102^pc_search_result_base8&utm_term=DeepFM&spm=1018.2226.3001.4187【机器学习】决策树(理论)-CSDN博客文章浏览阅读5.1w次,点赞396次,收藏1.9k次。本文详细介绍了决策树的构建原理,包括熵的作用、信息增益、条件熵、信息增益率和基尼系数等关键概念,以及在实际应用中如何选择最优特征。此外,还讨论了决策树的预剪枝处理,如限制树的深度、叶子结点个数和信息增益,以防止过拟合。
https://blog.csdn.net/the_ZED/article/details/129290733?ops_request_misc=%257B%2522request%255Fid%2522%253A%25227ba206c72379c8540cd4b4468b733f88%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=7ba206c72379c8540cd4b4468b733f88&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-129290733-null-null.142^v102^pc_search_result_base8&utm_term=%E5%86%B3%E7%AD%96%E6%A0%91&spm=1018.2226.3001.41878.这个是别人带答案的面经,直接用
推荐算法面经_如何解决dropout预估偏高的问题-CSDN博客文章浏览阅读1k次,点赞19次,收藏15次。ROC 曲线下面积,衡量模型在不同阈值下的分类性能。AUC 越高,模型的区分能力越强。解决的问题:在不平衡数据集上,AUC 提供了一个综合指标来评估模型的性能,而不仅依赖于准确率。优点对不平衡数据较为稳健。衡量模型在不同阈值下的表现,不依赖单一阈值。缺点不适合处理类别极其不平衡的数据。有时难以解释其实际意义,尤其是当 AUC 相似时。工业界的计算方式:通常使用大型框架(如 sklearn)计算 AUC,在大规模数据上可以通过分批次计算来提高效率。_如何解决dropout预估偏高的问题https://blog.csdn.net/weixin_43880007/article/details/142153350?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%8E%A8%E8%8D%90%E7%AE%97%E6%B3%95%E9%9D%A2%E7%BB%8F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-142153350.142^v102^pc_search_result_base8&spm=1018.2226.3001.41879. Adam优化器的优势
自适应学习率:Adam通过计算每个参数的一阶矩(均值)和二阶矩(方差)来动态调整学习 率,避免了手动调整学习率的复杂性
SGD优化器的优势
SGD的超参数较少,调参相对简单,计算量较小,内存占用少
Adam在某些情况下更容易发散,而SGD的发散风险较低,但需要仔细调整学习率
10.attention机制的优势和劣势分别在哪里?
优点:Attention 机制能够同时捕捉全局和局部信息,避免了 RNN 对长期依赖的捕捉受序列长度限制的问题,与 RNN 不同,Attention 的每一步计算不依赖于上一步的结果,因此可以并行处理
缺点:Attention 机制本身无法直接捕捉序列中的位置信息,需要通过额外的手段(如位置编码)来补充,处理长序列时,Attention 的计算复杂度会显著增加,Attention 机制的效果依赖于大量数据,如果数据量不足,可能无法充分发挥其优势
11.收藏!关于Transformer的20个常见面试问题,你知道多少?_transformer面试-CSDN博客文章浏览阅读1.1k次,点赞17次,收藏26次。此前,介绍了很多关于Transformer的内容,但都非常长,今天,就用简短的语言总结Transformer的20个常见面试问题,看看你了解多少?Transformer为何使用多头注意力机制?(为什么不使用一个头)使用单个注意力头的模型在处理复杂的输入时可能会受到限制,因为它只能关注输入序列中的某一方面信息。而多头注意力机制通过将输入特征分成多个子空间,使得每个头可以独立学习不同的特征表示。例如,在处理句子时,一个头可能专注于语法结构,而另一个头则可能关注语义关系。_transformer面试https://blog.csdn.net/m0_70486148/article/details/144715335?ops_request_misc=&request_id=&biz_id=102&utm_term=.Transformer%E7%9A%84%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-144715335.142^v102^pc_search_result_base6&spm=1018.2226.3001.4187
12.贝叶斯估计与最大似然估计的区别
最大似然估计:
认为参数θ是固定但未知的常数,通过最大化似然函数L(θ∣D)寻找最优参数值,输出单一最优参数值θMLE,直接用于预测P(Xnew∣θMLE)
贝叶斯估计:
将参数θ视为随机变量,并假设其服从某个先验分布P(θ)。通过贝叶斯定理计算后验分布,输出参数的后验分布P(θ∣D),预测时对所有可能的θ加权平均
13.
经典机器学习模型(八)梯度提升树GBDT详解-CSDN博客文章浏览阅读9.8k次,点赞31次,收藏63次。经典机器学习模型(八)梯度提升树GBDT详解_gbdthttps://blog.csdn.net/qq_44665283/article/details/137559749?ops_request_misc=%257B%2522request%255Fid%2522%253A%25220189776b0c7ea3c37de9bbd709e0b3f9%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=0189776b0c7ea3c37de9bbd709e0b3f9&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-137559749-null-null.142^v102^pc_search_result_base8&utm_term=GBDT&spm=1018.2226.3001.4187
详解 CatBoost 原理-CSDN博客文章浏览阅读1.7w次,点赞36次,收藏129次。详解 CatBoost 原理集成学习的两大准则:基学习器的准确性和多样性。算法:串行的Boosting和并行的Bagging,前者通过错判训练样本重新赋权来重复训练,来提高基学习器的准确性,降低偏差!后者通过采样方法,训练出多样性的基学习器,降低方差。1.catboost 的优缺点性能卓越:在性能方面可以匹敌任何先进的机器学习算法鲁棒性/强健性:它减少了对很多超参数调优的需求,并降低了过度拟合的机会,这也使得模型变得更加具有通用性易于使用:提供与 scikit 集成的 Python 接口,以及_catboosthttps://blog.csdn.net/weixin_49708196/article/details/124018649机器学习—LightGBM的原理、优化以及优缺点_lightgbm优缺点-CSDN博客文章浏览阅读2.4w次,点赞78次,收藏225次。LightGBM是为解决GBDT在海量数据中的效率问题而提出的,通过直方图算法、单边梯度采样、互斥特征捆绑和带深度限制的Leaf-wise算法实现速度和内存的优化。与XGBoost相比,LightGBM在内存占用和计算速度上具有显著优势,同时支持类别特征,并行计算和缓存优化。然而,Leaf-wise策略可能导致过拟合,需要设置最大深度限制。
https://blog.csdn.net/weixin_46649052/article/details/119604545【机器学习】XGBoost数学原理及详细实现过程_xgboost的数学原理-CSDN博客文章浏览阅读3.9k次,点赞6次,收藏42次。XGBoost(Extreme Gradient Boosting)是一种高效的梯度提升决策树算法,与lightgbm是目前表格型数据竞赛最主流的树模型。它在原有的GBDT(Gradient Boosting Decision Tree)基础上进行了改进,使得模型效果得到大大提升。XGBoost是由多棵CART(Classification And Regression Tree)组成,因此它不仅可以处理分类回归等问题。_xgboost的数学原理
https://blog.csdn.net/qq_70699891/article/details/13425708314.
15.TPE算法:贝叶斯优化中的高效参数搜索,-CSDN博客文章浏览阅读2.4k次,点赞11次,收藏17次。TPE算法的核心思想是使用两个不同的概率密度函数来建模参数的条件概率分布:一个用于建模表现好的参数配置的概率密度函数(Exploitation),另一个用于建模未知的参数配置的概率密度函数(Exploration)。TPE算法通过对搜索空间的建模,采用概率密度估计的方式,有选择地在参数空间中采样,从而在较短的时间内找到性能较好的参数配置。该模型基于已知性能好的参数配置,通过建模条件概率分布,产生一个新的参数配置,以期望获得更好的性能。对生成的候选参数配置进行评估,得到它们的性能。https://blog.csdn.net/weixin_44943389/article/details/135089325?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522ee440a94fc38941acf6e98bc0b6dc265%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=ee440a94fc38941acf6e98bc0b6dc265&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-135089325-null-null.142^v102^pc_search_result_base8&utm_term=TPE%E7%AE%97%E6%B3%95&spm=1018.2226.3001.4187
【机器学习算法笔记系列】逻辑回归(LR)算法详解和实战_lr算法-CSDN博客文章浏览阅读1.2w次,点赞12次,收藏86次。逻辑回归(LR)算法概述逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。逻辑回归算法原理预测函数和决策边界逻辑回归的预测函数可以表示为:举一个例子,假设我们有许多样本,并在图中表示出来了,并且假设我们已经通过某种方法求出了LR模型的参数(如下图):这时,直线上方所..._lr算法https://blog.csdn.net/Mr_Robert/article/details/88888973?ops_request_misc=%257B%2522request%255Fid%2522%253A%252243a1836de281e706bbe49a6ca060e987%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=43a1836de281e706bbe49a6ca060e987&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-88888973-null-null.142^v102^pc_search_result_base8&utm_term=LR%E7%AE%97%E6%B3%95&spm=1018.2226.3001.4187推荐系统中的偏置问题-bias和debias-CSDN博客文章浏览阅读1.5k次,点赞25次,收藏20次。推荐系统中存在很多偏差,如选择偏差、位置偏差、曝光偏差和流行度偏差等
https://blog.csdn.net/jzwei023/article/details/135219069关联规则(Apriori、FP-grpwth)-CSDN博客文章浏览阅读1.1w次,点赞11次,收藏100次。什么是关联规则 关联规则(AssociationRules)是反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。 所谓数据挖掘就是以某种方式分析源数据,从中发现一些潜在的有用的信息 。即数据挖掘又可以称作知识发现,而机器学习算法则是这种“某种方式”。 举..._关联规则
https://blog.csdn.net/one_super_dreamer/article/details/102803355?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%85%B3%E8%81%94%E8%A7%84%E5%88%99&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-102803355.142^v102^pc_search_result_base8&spm=1018.2226.3001.4187图像检索 - 乘积量化PQ(Product Quantization)_pq量化-CSDN博客文章浏览阅读1.8w次,点赞10次,收藏33次。参考以下文章: 乘积量化(Product Quantization)最近邻搜索之乘积量化(Product Quantizer)理解(一)看了两天的乘积量化,先说下我自己的理解吧:(以下蓝字使我的理解,红字是我看别人的博客暂时没弄懂的,我写的比较啰嗦以便我回头自己翻看时不会再有疑问(#^.^#)) 假设我们的图片检索库有100万张图片,每张图片提取多个128维的特征向量,..._pq量化
https://blog.csdn.net/guanyonglai/article/details/78468673?ops_request_misc=%257B%2522request%255Fid%2522%253A%25222510278dcb7b9f936e7ad117d56b9ccc%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=2510278dcb7b9f936e7ad117d56b9ccc&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-78468673-null-null.142^v102^pc_search_result_base8&utm_term=Product%20quantization%E4%B9%98%E7%A7%AF%E9%87%8F%E5%8C%96&spm=1018.2226.3001.418716.LSTM(感觉也没啥好问的)SVM
机器学习:支持向量机(SVM)-CSDN博客文章浏览阅读10w+次,点赞676次,收藏4.4k次。支持向量机(SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面,可以将问题化为一个求解凸二次规划的问题。与逻辑回归和神经网络相比,支持向量机,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。_svmhttps://blog.csdn.net/qq_42192693/article/details/121164645?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522c7273bd41a9eba464dfd4c72f3a5fc4f%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=c7273bd41a9eba464dfd4c72f3a5fc4f&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-121164645-null-null.142^v102^pc_search_result_base8&utm_term=%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA&spm=1018.2226.3001.418717.推导LR和SVM,不知道面试是手推还是写纸上
18.刚写完momo的笔试,离谱,核心代码模式,3道写了1.8,后面问写精确,召回,f1公式,写错了,笔试应该是凉了
19.
【机器学习技术系列】FM系列算法详解(FM、FFM、DeepFM)_fm算法-CSDN博客文章浏览阅读6.4k次,点赞37次,收藏45次。可解释性强。形式简单,训练速度快。表达能力有限只在处理二分类问题上优势明显。_fm算法https://blog.csdn.net/tianshuai1111/article/details/137691777?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522550a20c2c8f3f22221fe86d43bd301be%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=550a20c2c8f3f22221fe86d43bd301be&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-137691777-null-null.142^v102^pc_search_result_base8&utm_term=FFM&spm=1018.2226.3001.4187
20.判别模型和生成模型是两个相对应的模型。
判别模型是直接生成一个表示或者的判别函数(或预测模型)
生成模型是先计算联合概率分布然后通过贝叶斯公式转化为条件概率。
21.GBDT和Xgboost的区别
传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。
传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。
xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias-variance tradeoff角度来讲,正则项降低了模型的variance,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性。
Shrinkage(缩减),相当于学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。(补充:传统GBDT的实现也有学习速率)
列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。
22.画LSTM结构图,手推逻辑回归求导公式,手推SVM,朴素贝叶斯公式
23.手写sqrt函数
def sqrt(n):if n < 0:raise ValueError("只能处理非负整数")if n == 0 or n == 1:return nleft, right = 1, n // 2ans = 1while left <= right:mid = (left + right) // 2if mid * mid == n:return midelif mid * mid < n:ans = mid # 记录当前最接近的平方根left = mid + 1else:right = mid - 1return ans
24.swing跟adamic具体细节
25.
-
模型batch内负采样怎么做的?
-
加bias有什么用?
答:负采样的本质是想打压高曝光item,但是由于高曝光的item本身就频繁出现在样本中,随机采可能会打压过头,因此加一个bias tower进行修正(其实就是学一个值取平衡正负样本)。
26.XGBoost叶子节点的值怎么得到的
27.明天逐个解决,今天睡觉了