使用大模型Transformer提升商品推荐的用户体验

ASOS人工智能团队是一个由机器学习工程师和科学家、数据科学家和产品经理组成的跨职能团队,利用机器学习来改善客户体验、提高零售效率并推动增长。

banq注:在讨论阿里最大的失败原因时,有网友说:最大的失败是,我想去超市买苹果。经过泡面货架的时候,顺手拿了一袋看了下。然后整个超市就变成了泡面专卖店。这种原因是由于缺乏基于上下文的商品推荐,看看这篇他山之石)

什么是Transformer?
Transformer(ChatGP T中的T)是一种模型架构,它彻底改变了从自然语言处理 (NLP) 到计算机视觉等机器学习的多个领域。虽然 Transformer 旨在解决自然语言任务,但最近的研究已将其用途扩展到推荐系统。 Transformer 模型使我们能够通过称为自我关注的机制更好地捕捉客户的风格,并使用位置意识推断客户交互随时间的相对重要性。

自注意力使机器学习模型能够构建序列中输入的上下文感知表示。通过在处理时权衡序列中所有其他输入相对于自身的重要性,模型能够对每个输入乃至整个序列建立更丰富的理解。例如,当一双高跟鞋与一套休闲服装和更正式的服装组合时,可以有不同的解释。这种额外的背景使模型能够更好地解释产品并捕捉客户风格的本质。

位置意识使模型能够解释客户过去产品交互的顺序,并根据产品在序列中的位置破译产品的相对重要性,例如,模型可能会更重视昨天购买的产品而不是三个月前查看的产品。当客户的上下文在浏览会话之间切换以及他们的风格随着时间的推移而演变时,这使得该模型能够更好地为客户提供相关建议。


自我注意力Self-attention 
自注意力首先在自然语言处理中变得突出:在 NLP 中,输入序列通常是一个句子。 Transformer 通过考虑周围其他单词的重要性,使用自注意力来构建句子中每个单词的丰富表示。从以下两个句子中很容易看出为什么上下文很重要:

  • 语句1: The lamp emitted dim light which illuminated the room.
  • 语句2: He found the suitcase was surprisingly light as he lifted it.

这两个句子都包含“light ”一词,但由于上下文的不同,它们有两个完全不同的含义。自注意力能够独特地捕捉每个含义:
  • 句子1:灯light 发出微弱的光,照亮了房间。
  • 句子2:当他提起行李箱时,他发现它出奇的轻light

该可视化显示了自注意力如何根据单词light来权衡两个句子中的不同单词。线条和方框的阴影表示这些权重。
可以直观地理解:

  • 第一句话集中在lamp、emited和Illuminated上,以丰富光的表示形式,表示照明。
  • 而在第二句中,"手提箱 suitcase"被赋予了 "惊喜surprising  "和 "举起lifted  "的含义,从而产生了 "weight重量 "的编码意义。

同义词生成器是使用“light”一词的丰富表示的一个示例。

  • 给定以第一句话作为输入的上下文,模型可以输出gleam、luminance或lighting。
  • 给定第二个句子的上下文作为输入,模型可以输出easy、manageable或featherweight。

如果在替代句子中使用这些同义词,则没有意义。

推荐中的自我关注
电商网站拥有的是客户的交互历史记录(产品序列),而不是句子(单词序列),但自我关注背后的直觉保持不变。

就像句子中的单词一样,服装根据产品的上下文具有不同的含义或风格。

让我们看另一个例子:

  • 顾客1:【Dare2b防水夹克、ASOS DESIGN运动袜、Salomon运动鞋、Columbia保暖长裤、Calvin Klein T恤】
  • 顾客2:【精选Homme卫衣、Carhartt WIP夹克、Salomon运动鞋、ASOS DESIGN运动裤、Dickies长裤】

虽然两个客户历史都包含Salomon 运动鞋,但它们的历史表明了不同的风格。让我们看看自我注意力如何权衡每个客户历史记录中的其他产品。

  • 对于客户 1(左),我们想象一个热衷于户外活动的人,为其最初的徒步旅行目的购买了该产品。自我关注赋予了防水夹克和保暖长裤以捕捉Salomon 兄弟在此上下文下的远足风格
  • 对于客户 2(右),我们想象有人将 Salomon 运动鞋与街头服饰搭配。这里的自我关注集中在 Carhartt 夹克和 Dickies 裤子上来捕捉这一点。

与上面 NLP 中的示例类似,我们现在拥有丰富的Salomon 表示形式,该表示形式可以根据序列中的上下文进行灵活调整


假设我们现在查询模型以返回两个客户的替代鞋子推荐(非常像之前的同义词生成器),也许我们可以期待这样的结果:

Transformer 将其进一步扩展到称为多头自注意力的东西,其中多次执行此处理以捕获输入序列中关系中的所有不同细微差别。自注意力可以创建强大的输入表示,并引入优于以前架构的优势,例如并行化和长期依赖性。

在 ASOS 构建Transformer
我们的推荐团队利用Transformers4Rec 库以及 NVIDIA 合作伙伴的支持,在内部构建了一个 Transformer 推荐系统。 “Transformers4Rec 是一个灵活高效的库,用于顺序和基于会话的推荐,并且可以与 PyTorch 配合使用。

Transformers4Rec 提供了一个框架,可以利用 Transformers 架构的优势进行顺序推荐,该框架已根据 NLP 任务的初始构建进行了调整。利用 ASOS 客户过去的交互,我们能够训练一个推荐系统,该系统利用了上面在Transformer 架构中解释的自注意力和位置感知的概念。