ATNN介绍

Reading time ~1 minute

ali在《ATNN: Adversarial Two-Tower Neural Network for New Item’s Popularity Prediction in E-commerce》中提出了ATNN。

3.ADVERSARIAL TWO-TOWER NEURAL NETWORK

本节中,首先描述了new arrivals预估问题。CTR被认为是该问题的最重要的indicator。接着我们描述了ATNN,它会根据它们的流行度(popularity)对所有new arrivals进行排序。

A.问题描述

我们的目标是解决在电商平台上预估关于new arrivals的流行度的冷启问题。由于对于new arivals的流行度(popularity)没有公共评估,我们会使用CTR预估作为一个关键任务来解决该cold-start问题。在平台上有新items发出时,我们会利用模型根据CTR预估来做出个性化推荐。精准的CTR预估可以让购买者(buyers)看到它们更偏好的items,这会满足buyers对于new arrivals的消费期望,增强用户体验。同时,卖家(sellers)也愿意在该平台上提供更新的items,因为增加new arrivals的交易数可以获得利润。

另外,我们的主要目标是,在new arrivals间发现潜在的流行items。然而,对于一个模型来说,评估item流行性是很难的。我们会采用:如果一个item对于大多数购买者(buyers)具有较高CTR,那么它会具有一个高可能性是吸引人的。因此,我们会基于大规模工业界数据,将模型进行扩展,以获得new arrivals在所有用户上的流行度。在new items放到平台上前,该模型能获得关于new items的流行度

特别的,我们会使用item被释放到平台上的前30天信息作为训练数据。我们接着收集这些items的静态数据,包括:Page Views(PV)、UV(Unique Visotors)、用户行为序列(比如:点击、加购物车、加收藏、购买)。我们也会获得item profiles和user profiles作为训练数据的features。Item profiles包含了买家信息、产品名、产品图片、类别。User profiles包含了私人数据,经如:用户名、性别、位置信息、购买偏好、购买力等级等。New arrivals只有item profiles没有item统计信息。我们的目标是对所有new arrivals对在所有用户上的流行度进行排序。

B.普通pairwise user-item CTR预估的双塔模型

DNNs被广泛用来进行普通CTR预估,自动学习feature表示和高阶特征交叉。由DNNs获得的Item vectors可以被用于多个任务,包括new arrivals的流行度估计。

图2展示了一个标准的DNN model,用于pairwise user-item CTR预估。这是一个经典的方法,会首先将一个item embedding和一个user embedding进行concatenate在一起。通过该模型我们不能获得item vector和user vector。

图片名称

图2

为了显式捕获对new item流行度预估的item vectors,我们会构建一个two-tower网络,如图3所示。左塔会从item profiles和item统计信息中抽取信息,来达到item vectors;右塔会利用user profiles来获得user vectors。我们可以显式捕获item vector和user vector,可以用来训练其它模型,并求解与pairwise CTR预估相关的其它任务。我们使用ATNN获得的item vectors来训练一个generator,它会在后描述。

我们会训练模型,通过将每个item,user pair给到network中,包括它们的交叉。一条input样本如下:

\[[itemID, x_{i1}, x_{i2}, x_{i3}, \cdots, userID, x_{u1}, x_{u2}, x_{u3}, \cdots, y]\]

其中:

  • itemID和user ID是唯一标识符
  • \(x_i\)和\(x_u\)表示一个item和一个user的features
  • \(y\)是label

图片名称

图3

C.对new arrivals进行ATNN预估

New arrivals CTR预估与普通CTR预估不同,因为缺少user-item交叉。对于平台新上的items,对比起普通item,通常在它们之上具有少量的用户行为。用户行为非常稀疏,很难训练。另外,对于还没有上的new arrivals,还不存在item统计数据。所有经典方法面临着item统计信息(包括:PV、UV、用户行为预行)的缺失。

受GANs思想的启发,我们设计了一个item generator以及一个discriminator,它可以更好学习只有item profiles的item vectors。如上所述,一个原始的two-tower DNN模型能达到item vectors和user vectors,因为在item encoder和user encoder间存在一个显式层(explicit layer)。我们会利用由双塔网络生成的item vectors来增强generator的feature extraction能力。生成的item vector和user vector的quality会影响CTR预估的精准度。

我们提出在双塔结构中引入一个对抗网络(adversarial network)来进行CTR预估,称为:Adversarial Two-tower Neural Network (ATNN)。ATNN结论如图4所示。左部分是对抗组件,它使用没有任何item统计信息的item profiles来学习更好抽取item vectors。

图片名称

图4

generator设计的目的是:用来从item profiles生成item vectors,以便生成的item vectors与由item encoder生成的item vectors很相似,其中:item encoder从item profile和item统计数据中学习得到。discriminator被设计用来区分:由item generator生成的item vectors、由item encoder生成的item vectors。该generator和discriminator会做一个极大极小博弈(minimax game)来提升效果。discriminator的loss function会基于两类item vectors间的相似度,被定义为\(L_s\)。

另外,我们会使用由generator和encoder两者生成的所有item vectors来训练CTR预估模型。原始two-tower模型的loss function被定义为:\(L_i\)。generated item vectors和user vectors间的CTR预估的loss function被定义为\(L_g\):

\[L_i = - \frac{1}{N} (y_i log\hat{y}_i + (1-y_i) log(1-\hat{y}_i)) \\ L_g = - \frac{1}{N} (y_i log\hat{y}_i^{(g)} + (1-y_i) log(1-\hat{y}_i^{(g)}))\]

其中:

  • \(y_i \in \lbrace 0, 1\rbrace\)是label indicator,表示用户是否对该item有点击
  • \(\hat{y} \in (0,1)\):是基于item vector和user vector的预估label
  • \(\hat{y}^{(g)} \in (0,1)\):是基于generated item vector和user vector的预估label
  • N表示训练样本数

我们会feed每对item\user pair、以及每个user-item pair的交互信息给网络来训练该模型。我们会迭代式最小化loss的方式来最优化ATNN。生成能力以及CTR的预估质量可以被增强。

在gnerators和encoders中会使用DCN。略

另外受transfer learning和multi-task learning的启发,我们让两个item embedding layers共享它们的embeddings。embedding layers会将large-scale sparse features映射到low-rank vectors中,需要大量input样本来训练一个更好模型。在embedding layers间共享features会改善generator组件的能力,以便将item profiles映射到vectors中。

我们在算法1中将ATNN的训练过程进行总结。

图片名称

算法1

在每轮迭代,我们会首先通过以下的loss function来最优化ATNN:

\[L_i(H(f_i(X_i), f_u(X_u)), y)\]

其中,

  • \(X_i\)和\(X_u\)分别表示一个item和一个user的features
  • \(f_i(X_i)\)和\(f_u(X_u)\)表示由item encoder和user encoder获得的item vector和user vector
  • \(H(\cdot)\)函数表示在一个item和一个user间的CTR预估得分

\(L_i\)会使用LR从item profiles和item统计信息,根据给定labels来进行CTR预估。在该步,我们会通过使用item tower和user tower来最优化CTR prediction。

接着,我们会通过以下的loss function来最优化ATNN:

\[L_g(H(g(X_{ip}), f_u(X_u)), y) + \lambda L_s(S(g(X_{ip}), f_i(X_i)))\]

其中:

  • \(X_{ip}\)是一个item profiles的features
  • \(g(X_{ip})\)是generated item vector
  • \(\lambda\)是一个weighting参数,用来对两个loss进行balance
  • \(S(\cdot)\)函数表示在一个generated item vector和一个普通item vector间的相似度

根据给定labels,\(L_g\)使用logistic regression从只有item profiles信息中来评估CTR预估,\(L_s\)会使用mean squared error,如下:

\[L_s(X) = mean((1 - x_i)^2)\]

其中,\(L_s\)会评估在generated item vectors和normal item vectors间的平均相似度。在该step中,我们会最小化在来自generator的generated item vector与item encoder的item vector间的差异。

D.基于ATNN进行大规模new arrivals的流行度预估

我们的目标是:通过对所有items进行流行度排序,来发现潜在的流行new arrivals。然而,对于items流行度的打分没有通用评估。基于合理假设:如果一个item对于大量买家来说具有一个较高CTR,我们认为该商品很可能更吸引人,我们可以利用ATNN来估计new arrivals的流行度。

然而,使用一个pairwise user-item CTR预估模型来完成new arrivals流行度,面临着高时间复杂度的挑战。实际上,对于new arrivals的排序,我们需要获得所有new arrivals流行度。在预估阶段,我们需要构建一个关于所有new arrivals和所有users的笛卡尔积 ( Cartesian product)。因此,预估阶段的时间复杂度是\(O(N_u * N_{NA})\),其中:\(N_{NA}\)表示new arrivals的数目。在电商平台上,每天会来数百万已存在用户和数百万新items。在实际系统中\(O(N_u * N_{NA})\)复杂度的算法是不用运转的。

为了对new arrivals进行排序,没必要获得所有user-item pairs。作为替代,我们选择top 2000w偏好new arrivals的活跃用户,将他们看成一个用户组。我们在训练阶段学习和存储它们的mean user vector。当预估一个item的流行度时,我们只需要使用存储好的mean user vector来做出预估,它可以减少时间复杂度:每个item从\(O(N_u)\)到\(O(1)\)。图5展示了ATNN模型对于new arrivals流行度预估的效率。

图片名称

图5

参考

Netflix关于cosine相似度的讨论

Netflix团队发了篇paper《Is Cosine-Similarity of Embeddings Really About Similarity?》,对cosine相似度做了相应的研究。# 摘要余弦相似度(cosine similarity)是指两个向量间夹角的余弦...… Continue reading

Meta AdaTT介绍

Published on January 02, 2024

SATrans介绍

Published on December 02, 2023