Files
fun-rec/docs/ch04/ch4.2.md
2022-04-21 20:33:29 +08:00

68 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 推荐模型相关
## 召回
- 介绍双塔模型
- 双塔模型的输出用双塔embedding做内积+sigmoid和求余弦相似度+sigmoid的区别
- 双塔模型一般怎么做特征
- 双塔模型为什么不直接把两个塔合起来输入一个DNN
## 排序
- 为什么CTR中目前普遍使用深度学习模型替换树模型
- 为什么要有wide层、FM层deep层不也有记忆能力吗
- DeepFM与wide&deep的介绍与对比
- 对DeepFM进行优化有哪些思路
- DeepFM如果过拟合和欠拟合分别如何处理
- 介绍除了FM之外的特征交叉的模型
- 介绍DIN模型适合的场景
- DIN中如何计算attention
- transformer与DIN的区别和联系
- 介绍下listwise排序模型LambdaRank
## 参考解析
## 召回
- 介绍双塔模型
- 双塔模型最大的特点就是**「user和item是独立的两个子网络」**左侧是用户塔右侧是item塔这两个塔的参数不共享
- 输入层:**「[User特征]」**主要包括和用户相关的特征用户id、手机系统、地域、年龄、历史行为序列等**「Item特征」**主要包括和Item相关的特征ItemId、Item类别、Item来源等
- 表示层User特征和Item特征分别输入到特征提取网络比如说DNN等得到User Embedding和Item Embedding。之后我们可以计算这两个Embedding之间的余弦距离。**「用户点击过的Item其距离更近用户没有点击过或者讨厌的Item其距离更远」**。之后利用算得的loss来更新模型的参数。
- 匹配层拿用户向量去FAISS中和Item向量进行相似度计算并返回距离最近的Top K个Item作为个性化的召回结果。
- 双塔模型的输出用双塔embedding做内积+sigmoid和求余弦相似度+sigmoid的区别
- 双塔模型一般怎么做特征
- 每个塔各自构建user与item embedding**[User特征]」**主要包括和用户相关的特征用户id、手机系统、地域、年龄、历史行为序列等上下文特征Context feature可以放入用户侧塔**「Item特征」**主要包括和Item相关的特征ItemId、Item类别、Item来源等
- 双塔模型为什么不直接把两个塔合起来输入一个DNN
- 性能减少线上运算速度item塔可以提前训练线上只需要user的embedding和相似度计算
## 排序
- 为什么CTR中目前普遍使用深度学习模型替换树模型
- 强大的表达能力,能够挖掘更深层次数据模式;
- 支持更丰富的特征形式;
- 模型结构非常灵活,能够根据实际应用场景进行调整
- 为什么要有wide层、FM层deep层不也有记忆能力吗
- wide层记忆能力更强因为它结构简单原始数据能够直接影响推荐结果能够学习到数据中的简单规则。我理解的是深度网络的优势的容易学到隐形特征交叉虽然DNN的万能近似定理能够让网络拟合任何一个函数但是也有研究发现实际情况下DNN对于各个特征的学习是不充分的。特征最重要的是先验知识如果将特征加入DNN底层层层向上传递到达顶层信息留下就不多了特别是在推荐系统特征都被embedding后。所以只有足够浅的维度才能让网络学习到重要特征。
- DeepFM与wide&deep的介绍与对比
- Wide&Deep模型同时考虑了记忆能力和泛化能力但Wide部分需要人工参与特征工程DeepFM对Wide&Deep模型的改进之处在于用FM替换了原来的Wide部分,加强了浅层网络部分特征组合的能力。
- DeepFM的动机非常直观既希望考虑高/低阶的feature interaction又想省去额外的特征工程。使用FM取代Wide的LR部分是一个可行的做法当然这里LR可以基于先验构造更高阶的组合特征而FM只考虑二阶DeepFM中的FM层和隐藏层共享输入这种共享输入使得DeepFM可以同时从原始特征中学习低阶特征交互和高阶特征交互,完全不需要执行特征工程。
- 对DeepFM进行优化有哪些思路
- 比较开放的题目可以把一些其他模型的创新添加进去比如DCN的更高阶交叉、DIN的序列融入DeepFM。
- DeepFM如果过拟合和欠拟合分别如何处理
- 结合DNN的过拟合处理思路讲
- 介绍除了FM之外的特征交叉的模型
- FNN有高阶bit-wise特征交叉每个特征都使用了与训练的FM模型训练开销更低。
- DeepFM是一种可以从原始特征中抽取到各种复杂度特征的端到端模型没有人工[特征工程](https://www.zhihu.com/search?q=特征工程&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra={"sourceType"%3A"article"%2C"sourceId"%3A269730650})的困扰DeepFM模型包含FM和DNN两部分FM模型可以抽取low-order特征DNN可以抽取high-order特征。无需类似Wide&Deep模型人工特征工程。
- DCN可以任意组合特征而且不增加网络参数.Cross的目的是以一种显示、可控且高效的方式自动构造有限高阶交叉特征。
- 介绍DIN模型适合的场景
- 如何刻画用户兴趣的广泛性是推荐系统比较大的一个难点用户历史行为序列建模的研究经历了从Pooling、RNN到attention、capsule再到transformer的顺序
- 在DIN之前业界处理序列特征普遍是在embedding之后进行pooling这种做法将序列特征的每个item看作是相等的权重举个例子用户历史购买过9件衣服和1个鼠标本次候选商品是键盘但是因为用户历史行为被衣服充斥着历史行为pooling后的embedding非常偏向衣服这个子空间而历史购买键盘后再买鼠标显然应该赋予更大的权重。通过pooling的做法就会导致历史行为的兴趣被平滑了学成一个四不像的没法体现用户广泛兴趣的向量。
- DIN模型提出的动机是利用target attention的方法进行加权pooling它为历史行为的物品和当前推荐物品计算一个attention score然后加权pooling这样的方法更能体现用户兴趣多样性。
- DIN模型增加了注意力机制模型的创新点或者解决的问题就是使用了注意力机制来对用户的兴趣动态模拟 而这个模拟过程存在的前提就是用户之前有大量的历史行为了,这样我们在预测某个商品广告用户是否点击的时候,就可以参考他之前购买过或者查看过的商品,这样就能猜测出用户的大致兴趣来,这样我们的推荐才能做的更加到位,所以这个模型的使用场景是**非常注重用户的历史行为特征(历史购买过的商品或者类别信息)**
- transformer与DIN的区别和联系
- 介绍下listwise排序模型LambdaRank
- Listwise方法是直接优化排序列表输入为单条样本为一个**文档排列**。通过构造合适的度量函数衡量当前文档排序和最优排序差值,优化度量函数得到排序模型。