专栏名称: AI前线
微信号:AI前线,ID:ai-front 运营
目录
相关文章推荐
爱可可-爱生活  ·  【[205星]Garlic:用C语言编写的J ... ·  昨天  
爱可可-爱生活  ·  [LG]《General agents ... ·  2 天前  
爱可可-爱生活  ·  晚安~ #晚安# -20250603230032 ·  2 天前  
机器之心  ·  经典ReLU回归!重大缺陷「死亡ReLU问题 ... ·  2 天前  
人工智能那点事  ·  日本女歌手滨崎步否认孩子生父是马斯克 ·  2 天前  
51好读  ›  专栏  ›  AI前线

CTR预估专栏 | 一文搞懂阿里Deep Interest Network

AI前线  · 掘金  · AI  · 2018-07-23 08:27

正文

请到「今天看啥」查看全文


先给出结论:

针对互联网电子商务领域,数据特点:Diversity、Local Activation。DIN 给出了解决方案:

  1. 使用 用户兴趣分布 来表示用户多种多样的兴趣爱好

  2. 使用 Attention 机制 来实现 Local Activation

  3. 针对模型训练,提出了 Dice 激活函数,自适应正则 ,显著提升了模型性能与收敛速度

1.1 名词解释

这两个词在论文中通篇出现,先把其表示的意思说清楚。

Diversity: 用户在访问电商网站时会对多种商品都感兴趣。也就是用户的兴趣非常的广泛。

Local Activation: 用户是否会点击推荐给他的商品,仅仅取决于历史行为数据中的一小部分,而不是全部。

不明白?举个例子:

Diversity:一个年轻的母亲,从他的历史行为中,我们可以看到她的兴趣非常广泛:羊毛衫、手提袋、耳环、童装、运动装等等。

Local Activation:一个爱游泳的人,他之前购买过 travel book、ice cream、potato chips、swimming cap。当前给他推荐的商品 (或者说是广告 Ad) 是 goggle(护目镜)。那么他是否会点击这次广告,跟他之前是否购买过薯片、书籍、冰激凌一丁点关系也没有!而是与他之前购买过游泳帽有关系。也就是说在这一次 CTR 预估中,部分历史数据 (swimming cap) 起了决定作用,而其他的基本都没啥用。

1.2 相关工作

CTR 预估是一个比较窄的研究领域,但是模型性能一点点的提升,在实际应用中都非常关键,真金白银毫不含糊。随着深度学习在 CV、NLP 等领域取得突破性进展,一些研究也开始尝试将 DNN 应用于 CTR 预估,比如:Wide&Deep, DeepFM 等。

这些做法一般分为两部分:

  1. 在输入上面加一层 embeding 层,把最原始高维度、稀疏的数据转换为低维度的实值表示上 (dense vector)。

  2. 增加多个全连接层,学习特征之间的非线性关系。

    Sparse Features -> Embedding Vector -> MLPs -> Output

这些方法的 优点 在于: 相比于原来的 Logistic Regression 方法,大大减少了人工特征工程的工作量。

缺点: 在电子商务领域中,用户的历史行为数据 (User Behavior Data) 中包含大量的用户兴趣信息,之前的研究并没有针对 Behavior data 特殊的结构 (Diversity + Local Activation) 进行建模。

这就是 DIN 要改进的地方! DIN 同时对 Diversity 和 Local Activation 进行建模。

针对 Diversity:

针对用户广泛的兴趣,DIN 用 an interest distribution 去表示。

针对 Local Activation:

DIN 借鉴机器翻译中的 Attention 机制,设计了一种 attention-like network structure , 针对当前候选 Ad,去局部的激活 ( Local Activate ) 相关的历史兴趣信息。和当前候选 Ad 相关性越高的历史行为,会获得更高的 attention score ,从而会主导这一次预测。

当 DNN 深度比较深 (参数非常多),输入又非常稀疏的时候,很容易过拟合。DIN 提出 Adaptive regularizaion 来防止过拟合,效果显著。

论文还提出,DIN 方法也可以应用于其他 有丰富用户行为数据 的场景,比如:

  • 电子商务中的个性化推荐

  • 社交网络中的信息推流排序 (feeds ranking)

2. 系统总览

阿里推荐系统工作流程就像上图所示:

  1. 检查用户历史行为数据

  2. 使用 matching module 产生候选 ads

  3. 通过 ranking module 得到候选 ads 的点击概率,并根据概率排序得到推荐列表

  4. 记录下用户在当前展示广告下的反应 (点击与否)

这是一个闭环的系统,对于用户行为数据 (User Behavior Data),系统自己生产并消费。

2.1 训练数据

前面提到,电子商务领域,充分利用 User Behavior Data 非常关键,而它又有着非常显著的特点:

  • Diversity. 兴趣爱好非常广泛

  • Local Activation. 历史行为中部分数据主导是否会点击候选广告

还有的特点,就是 CTR 中输入普遍存在的特点:

  • 高纬度

  • 非常稀疏

CTR 中一旦涉及到用户行为数据,还有一个特点:

  • 特征往往都是 multi-hot 的稀疏 ids。

也就是:多值离散特征。比如:用户在 YouTube 上看的视频和搜索过的视频。无论是看过的还是搜索过的,都不止一个,但是相对于所有的视频来说,看过和搜索过的数量都太小了 (非常稀疏)。在电子商务上的例子就是:用户购买过的 good_id 有多个,购买过的 shop_id 也有多个,而这也直接导致了每个用户的历史行为 id 长度是不同的。

为了得到一个固定长度的 Embedding Vector 表示,原来的做法是在 Embedding Layer 后面增加一个 Pooling Layer 。Pooling 可以用 sum 或 average。最终得到一个固定长度的 Embedding Vector ,是用户兴趣的一个抽象表示,常被称作 User Representation 。缺点是会损失一些信息。







请到「今天看啥」查看全文