1 说明
调参基本上是每个深度学习从业者的日常之一,就是吃饭一样,甚至有些时候每天的工作就只是改动一两个参数然后等着分析结果(这让我想起了研二时候,每周就只是改动几个参数,竟然也能整好几页 ppt 给老板汇报)。
这篇文章在自己工作的基础上,再结合同事以及网上一些牛人的经验,汇总成一篇调参总结,以供自己后续查阅。
一个专注技术的组织
机器学习或者深度学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class skew)。以常见的二分类问题为例,我们希望预测病人是否得了某种罕见疾病。但在历史数据中,阳性的比例可能很低(如百分之 0.1)。在这种情况下,学习出好的分类器是很难的,而且在这种情况下得到结论往往也是很具迷惑性的。再比如在 CTR 预估中,WAP 上的 CTR 通常在千分之几,APP 上 CTR 也就百分之一二,意味着 PV 远远要大于 Click。
在求解机器学习和深度学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,其他的常用的方法是最小二乘法、牛顿法和拟牛顿法。这里就对梯度下降法做一个完整的总结。
在微积分里面,对多元函数的参数求 ΦΦ\Phi 偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数 f(x,y)f(x,y)f(x,y), 分别对 (x,y)(x,y)(x,y)求偏导数,求得的梯度向量就是 (∂f/∂x,∂f/∂y)T(∂f/∂x,∂f/∂y)T(∂f/∂x, ∂f/∂y)^T, 简称 gradf(x,y)gradf(x,y)gradf(x,y)或者 ▽f(x,y)▽f(x,y)▽f(x,y)。对于在点 (x0,y0)(x0,y0)(x_0,y_0)的具体梯度向量就是 (∂f/∂x0,∂f/∂y0)T(∂f/∂x0,∂f/∂y0)T(∂f/∂x_0,∂f/∂y_0)^T 或者 ▽f(x0,y0)▽f(x0,y0)▽f(x_0,y_0),如果是 3 个参数的向量梯度,就是 (∂f/∂x,∂f/∂y,∂f/∂z)T(∂f/∂x,∂f/∂y,∂f/∂z)T(∂f/∂x, ∂f/∂y,∂f/∂z)^T,以此类推。
伴随着我们浏览器及其矩阵产品用户规模的扩大,单纯的广告接入,然后随机的展示方式无法充分利用我们的广告位,无法达到收益最大化。随着调研的深入,点击率预估模型便提上了日程。
经过前期一个月数据的收集准备,目前的数据量已经能够满足模型的开展了。接下来便会总结一些列关于 CTR 模型相关的知识,当然这里只对相应算法铺开,限于商业数据的保密性,不对具体数据和实施细节做展开。
FM 最早是在 2010 年提出,目的是解决大规模稀疏数据下的特征组合问题。关于数据稀疏的问题,在计算广告或者推荐系统等应用场景下,是常见的。
以移动端广告推荐为例,在日志系统中,每条 pv 日志和点击日志中,均包含有用户侧的信息(比如年龄,性别,国籍,手机上安装的 app 列表)、广告侧的信息(广告 id,广告出价,广告标题,广告图片 url,app 包名,app 允许在哪些国家展示)、上下文侧信息(包括用户手机浏览器 speeddial 个数,bookmark 列表,最长访问的网站等,手机操作系统,渠道 id),对于那些 categorical 类型的特征,比如国籍,安装的 app 列表,广告 id 等等,这种类型特征的取值仅仅是一个标识,本身并没有实际意义,更不能用来取值比较大。
民宿越来越成为旅游消费的新热潮,作为国内最大的民宿平台,途家在应用 AI 技术进行个性化商品推荐方面进行了不少探索。民宿行业的数据,具有用户消费频次低,用户兴趣点不好描述等特点,基于内容和普通协同过滤的方法效果都不明显,受 graphic embedding ,word2vec 的启发, 我们运用 Embedding 技术有效建立了商品之间的相似关系,运用在物物相似推荐场景通过 AB 测试效果明显胜出。这里对这方面的主要工作进行一个介绍和分享: