《Wide & Deep Learning for Recommender Systems 》笔记
从tensorflow文档中找到的研究论文大约不到十页左右,整体内容较为简单明了,值得一看
场景是Google Play的推荐
wide & deeplearning是什么鬼?
- wide是指对高维数据进行处理后得到的结果中的一个特定方法(称为wide)。该模型不仅效率高而且具有良好的可扩展性(scalability)以及较强的可解释性。但需要注意的是其泛化能力依赖于充分的特征工程工作。
- deep本质上就是深度学习技术的一种延伸或应用形式。相较于wide方法而言不需要过多的特征工程投入。但存在过度泛化的风险或问题。
Memorization 和Generalization
文中提了两个观点,有点意思。Memorization 和Generalization。
- 该机制基于现有训练样本中项目或特征的协同出现情况。
- 该机制具有本地特性,并能与用户的互动密切相关的项目产生更强的相关性。
- 相关性的传递能力(transitivity)以及创新特征组合带来了显著的优势。
- 多样性带来的优势明显。
有点类似I2i里的item-base方法效果好,user-base的方法新颖性好。
我的观点认为,在一定程度上,机器学习的本质就是在寻找"相似性"。这种相似性既可能是直接的(如Memorization),也可能是间接的(如Generalization)。其核心意图基本相同。
回顾LR和DL的问题
先阐述现有的LR方法,在其中所有特征都被采用0/1编码后进行处理的基础上进行特征组合。这种方法并不新颖地重复着同样的流程与步骤。然而,在实际操作中存在一定的局限性:如果在特征组合过程中所使用的训练数据中缺乏相关的具体信息,则可能导致模型性能的下降与效果的欠佳表现。这种现象也可以认为是数据稀疏性带来的影响之一。
基于嵌入的方法(如FM、DL),学习一个低维稠密嵌入向量。通过哈希方法将高位稀疏数据映射到低位空间中。当然会存在冲突。然而在这种情况下所学的内容类似于主题或语义信息,并非直接为了解决项之间的稀疏性问题而设置这一特性。
那些具有特殊兴趣或小众偏好的用户群体,在数据特征空间中分布较为稀疏;然而,在这种情况下嵌入方法仍然能够提取出其他非零权重(即前面所述的方法可能导致模型过度泛化)。而逻辑回归(LR)则不会出现这一问题,在这种情况下只会记住那些数量相对较少且具有明显特征组合的模式。
system overview
首先对retrieval进行初步筛选阶段,在这一阶段主要利用机器学习模型以及人为定义规则进行数据过滤工作。值得注意的是尽管人工规则在某些情况下可能显得不够先进但就目前工业界而言却是不可或缺的基础支撑机制。
在完成初步筛选后进入更为精细的排序阶段这一环节正是WDL算法的核心应用场景。具体采用了哪些特征呢?
让我们从几个关键维度展开分析:
- 用户特征方面(如用户所在国家语言以及人口统计信息)
- 上下文特征方面(如设备类型使用时间以及星期几)
- 印象特征方面(如应用的使用时长及其历史使用数据)
- activation mechanism 基于ReLU函数实现
- 输入实际上是字符串类型(例如,“language=en”)
- 关于如何将向量进行嵌入处理并未详细说明
- 这可能意味着采用k-gram方法进行处理
wide & deeplearning上场
看图就明了。中间那个就是了。
一些细节
- 模型的目标是通过应用商店(App Store)进行安装。
- 在比较join training与ensemble时发现:两组模型之间没有重叠;而join training能够同时优化整体模型架构。突然想到一个问题:之前一直对DL抱有歧视态度(discrimination),认为这门技术(technology)拟合非线性关系不如xgboost直接简单。后来没注意到了DL的优势:它能够学习嵌入表达(embedding expression),并且能够并行训练(无需一棵树一棵树地单独训练)。
- 在训练过程中,LR模块采用的是FTRL算法配合L1正则化;我以为FTRL只能应用于在线学习场景;而DL中却常用Adaptive Gradient(AdaGrad)。
- 训练数据量非常庞大:将每个PV中的应用视为一条独立的数据记录是有可能的;总共有50 billion的数据量!
- 训练过程中不会从零开始;而是利用之前的模型作为初始值;因此才会选择使用FTRL算法;并在上线前进行dry run测试以验证效果;这种做法很好!
- 对于连续型特征变量,在归一化处理时通常会采用累积分布函数(CDF)将其转换到[0,1]区间后进行分箱离散化处理;这种方法确实是一种有效的技巧
效果咋样

离线评估显示AUC提升幅度有限,并选取了1%的小规模在线评估样本取得了较好的实际应用效果值得探讨的是为何采用固定不变的离线下数据集仍能在一定程度上捕捉到用户的最新反馈我的推测是模型性能的好坏可能会影响到前后阶段的表现进而可能导致后续评估指标受到影响排序策略的变化可能会对实时统计数据产生影响例如原先模型将表现稍逊的产品推荐给用户时会误判而当优化后将更优质的内容展示时却未能准确预测结果
总的来说,在线运营的效果尤为关键。因此,在具体实施过程中应当着重考虑这一要点,并逐步细化各项策略与步骤以便更好地推进项目进展。此外,在进行离线评估时如果未能取得显著提升也请切勿急于放弃因为成功往往就在转机的瞬间等待着你好好把握机会并避免掉入潜在的陷阱与风险之中
