Attention 机制在推荐算法中的应用 | 深度兴趣网络(DIN)算法介绍及浅析

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2020 年回看最近一两年的 CTR(Clicked Through Rate,点击率)预估算法论文就会发现,这两年新提出的一系列 CTR 预估算法都能看到 attention 的影子,足以见得 attention 逐渐成为 CTR 预估算法的一个标配。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"其中比较有代表性的是由盖坤领导的阿里妈妈精准定向检索及基础算法团队于 2018 年提出的 DIN(Deep Interest Network,深度兴趣网络)算法(论文下载地址:https:\/\/arxiv.org\/pdf\/1706.06978.pdf。),该算法充分利用\/挖掘用户历史行为数据中的信息来提高 CTR 预估的性能。DIN 算法的提出给 CTR 预估领域带来了新的研究思路,本文将对这一算法进行介绍,并做一些初步的解析,供大家参考。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"1. 论文背景"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在工业界 CTR 预估领域中,用户的历史行为特征(如最近一周的浏览商品、最近一周的点击商品等)是一类非常重要的特征,能够有效地刻画用户的兴趣和行为偏好。如何最大程度地利用丰富的用户历史行为数据进行精准的 CTR 预估一直以来都是推荐算法领域一个非常重要的研究方向。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"纵观最近几年 CTR 预估算法的发展,不难发现对于用户历史行为的挖掘已形成一套相对固定的基本范式,即:通过 embedding 层,将高维离散特征转换为固定长度的连续特征,然后通过多个全联接层,最后通过一个 sigmoid 单元转化为点击概率,即 sparse features -> embedding vector -> MLPs -> sigmoid -> output。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"比较典型的 CTR 预估算法,例如 Wide&Deep,DeepFM,xDeepFM 等,均借鉴了这一范式的核心思想。这一类方法的优点在于:通过神经网络可以拟合高阶的非线性关系,同时减少了人工特征的工作量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"面对众多的用户历史行为特征,如何处理这些特征的 embedding 向量呢?通常有两种做法:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一种是直接把这些向量 concate 起来,这样可以保证每个 embedding 的信息都被保留下来;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"还有一种就是利用 pooling 将多个 embedding 向量进行压缩,这种方法无疑会造成一定程度的信息丢失,常用的 pooling 方法包括 sum-pooling 和 average-pooling,这两种方法还有一个问题就是这些 embedding 向量的权重都是相同的,也就是认为不同的用户行为特征对 CTR 预估任务的重要性是相同的,但是事实可能并非如此。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章