机器学习,推荐系统
百面机器学习算法工程师带你去面试
https://github.com/stormstone/awesome-material/blob/master/Book/百面机器学习算法工程师带你去面试.pdf
- 推荐系统中的三个要素
三要素指的是挖掘用户兴趣的信息源。
用户特征:年龄(如新闻,视频推荐 不同年龄的人关注内容不一样),职业(职业不同,关注内容也不一样),地域,性别等。这些我们都可以统称为用户的画像特征。这些用户画像中特征的变化性有不同的特点:如年龄是逐年稳定增加,职业(因人而变,有的长久不变,有的经常变化),性别(基本不变),地域(也会变化)。
商品特征:类型(车,手机,体育新闻,娱乐新闻等),商品内容(车的品牌,颜色,大小;手机的品牌,智能程序;足球新闻,篮球新闻;某明星娱乐新闻;歌曲的演唱者等),商品展示的位置(置顶,边框,角落),展示的方式等。这些我们称为商品特征
行为(用户对商品的行为 )特征:购买。长时间阅读某新闻;点击某广告并快速关闭或长时间停留;完事听完某歌 曲并短时间内重复听。这些特征称为用户对商品行为特征,简称行为特征。
- 请设计一个你认为能够处理百万日活的推荐系统框架?(包括算法和工程落地方案)
- 之前做的推荐系统可以达到实时吗?你认为怎样的推荐系统能够达到实时?(日活百万)
- 给出一个标准三层结构(召回,粗排,过滤),每个结构上有10个待上线算法,日活百万,如何解决每个算法上训练时数据量不足的问题?(提示:用流量正交)
- 对于在线端,近线端和离线端的理解?
- 实时推荐系统三大模块中,最快达到性能瓶颈的是哪一个模块?为什么?怎么解决?
- 现在让你设计一个日活百万的推荐系统架构,请从在线端和离线端两个角度描述你的设计方案
- 如何设计A/B Test系统?如何保证流量正交?
- 流量分桶吗?如何保证流量分桶唯一?
# 树模型
- GBDT 的原理(知识)
- 决策树节点分裂时是如何选择特征的?(知识)
- 写出 Gini Index 和 Information Gain 的公式并举例说明(知识)
- 分类树和回归树的区别是什么?(知识)
- 与 Random Forest 作比较,并以此介绍什么是模型的Bias和Variance(知识)
- XGBoost 的参数调优有哪些经验(工具)
- XGBoost 的正则化是如何实现的(工具)
- XGBoost 的并行化部分是如何实现的(工具)
- 为什么预测股票涨跌一般都会出现严重的过拟合现象(业务)
- 如果选用一种其他的模型替代 XGBoost 或者改进 XGBoost 你会怎么做,为什么?(业务+逻辑+知识)
# CTR
- softmax 函数的定义是什么?(知识)
- 深度神经网络为什么会产生梯度消失现象,如何解决它?(知识)
- 常见的激活函数有哪些?都有什么特点?(知识)
- 挑一种激活函数推导梯度下降的过程。(知识+逻辑)
- Attention 机制什么?(知识)
- 阿里将attention机制引入推荐模型的动机是什么?(知识+业务)
- DIN中将用户和商品进行了embedding,请讲清楚两项你知道的embedding 方法。(知识)
- 推荐系统中 embedding 技术都可以有哪些应用?(业务+知识)
- 你如何 serving 类似 DIN 这样的深度学习模型(工具+业务)
# 广度
- NN,RNN,个别聚类算法,模型评估等知识的理解程度
- spark的调优经验,model serving的主要方法,parameter server的原理
- GAN,LSTM,online learning的基本理解
- embedding方法,attention机制,multi task,GNN,reinforcement learning,online learning的基本理解
# 特征工程
- 为什么需要对数值型特征做归一化呢?
保持相同学习速率下,特征的更新速度一致,梯度下降更快。当然,数据归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对于决策树模型则并不适用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比(详见第3章第3节),而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益。
- 什么时候需要对连续特征分桶?
https://cloud.tencent.com/developer/article/1590912
分桶是离散化的常用方法,将连续型特征离线化为一系列 0/1 的离散特征;
当数值特征跨越不同的数量级的时候,模型可能会只对大的特征值敏感,这种情况可以考虑分桶操作。
分桶操作可以看作是对数值变量的离散化,之后通过二值化进行 one-hot 编码。
分桶的数量和宽度可以根据业务领域的经验来指定,但也有一些常规的做法:
- 等距分桶。每个桶的宽度是固定的,即值域范围是固定的,比如是 0-99,100-199,200-299等;这种适合样本分布比较均匀的情况,避免出现有的桶的数量很少,而有的桶数量过多的情况;
- 等频分桶,也称为分位数分桶。也就是每个桶有一样多的样本,但可能出现数值相差太大的样本放在同个桶的情况;
模型分桶。使用模型找到最佳分桶,比如聚类,将特征分成多个类别,或者树模型,这种非线性模型天生具有对连续型特征切分的能力,利用特征分割点进行离散化。
分桶的优点:
- 分桶后得到的稀疏向量,内积乘法运算速度更快,计算结果更方便存储;
- 对异常数据有很强的鲁棒性
- 在对数据进行预处理时,应该怎样处理类别型特征?
大小关系:序号编码。
不具有大小关系:One-Hot编码+Embedding。
更多Hash/Binary。
- 什么是组合特征?如何处理高维组合特征?
- 为什么L1正则化可以产生稀疏模型(L1是怎么让系数等于零的),以及为什么L2正则化可以防止过拟合?
# 推荐系统工程