编者按:现在大言语模型首要问答、对话等场景,进行被迫回答。是否能够将大模型运用于引荐体系,进行主动推送呢?

这篇文章回忆了能够将大模型作为引荐体系的理论基础,并重点描述了依据英文和阿拉伯语的购物数据集微调T5-large模型,探究将LLMs用作引荐体系的实践。一起本文还介绍了LLMs作为引荐体系的长处和缺陷,并提出主张和可行的方向。

以下是译文,Enjoy!

作者| Mohamad Aboufoul

编译 | 岳扬

最近几个月,大型言语模型(LLMs)现已成为数据科学社区和新闻界的热门话题。自2017年Transformer架构问世以来,咱们看到这些言语模型处理的自然言语使命复杂程度呈指数级增加。这些使命包括分类、意图和情感抽取,乃至它们被要求生成与人类自然言语类似的文本内容

从运用视点来看,将LLMs与现有技能相结合,假如能够避免它们的缺陷(我最喜欢的组合是GPT + Wolfram Alpha[1],可用于处理数学和符号推理问题),那么其发展潜力似乎是无限的。

令我惊讶的是,LLMs即使在没有进行额外的特征工程或手动流程的状况下,也能作为独立的引荐体系运用。这种能力很或许是由于LLMs的预练习办法和操作办法。

内容提纲:

  1. 回忆LLMs以及Transformers的工作原理

  2. LLMs作为引荐体系

  3. 运用自定义数据完成/仿制 P5

  4. 尝试用非英语的数据进行模型仿制

  5. LLMs作为引荐体系的长处和缺陷

  6. Final Thoughts 最终的思考

  7. Code 源代码

01 回忆LLMs以及Transformers的工作原理

言语模型本质上是概率模型,经过映射一系列tokens(如短语、句子中的单词)的概率来完成使命。它们在很多文本上进行练习,并相应地得出概率散布。对于能够处理的各种使命(如摘要、问答),它们运用条件概率重复迭代来挑选最有或许的token/单词来完成使命。请拜见以下示例:依据上下文的后续令牌概率示例(作者供给的图画)

探索将大语言模型用作推荐系统

依据上下文的后续tokens概率示例图(作者供给的图画)

LLM是一种言语模型,它运用很多的计算资源和大型计算架构练习海量文本。LLMs一般选用Transformer结构,该结构由Google在其2017年的闻名论文“Attention Is All You Need[2]”中公布。Transformer运用“自注意力”[3]机制,在预练习过程中答应模型学习不同token之间的联络。

在对足够大的文本集进行预练习后,类似的单词会有类似的嵌入(例如:“King”、“Monarch”),而不类似的单词将具有更不同的嵌入(embeddings) 。此外,经过这些嵌入,咱们能够看到单词之间的代数映射,使模型能够更好地确定序列的下一个正确的token。

这类似于Word2Vec中的“King – Man + Woman = Queen”[4]的经典示例。

自注意力嵌入(self-attention embeddings) 的另一个优点是,它们将因其周围的单词而异,从而使它们更符合语境中的意义。

斯坦福大学的Christopher Manning博士对LLM的工作原理进行了不错的概述。

02 LLMs作为引荐体系

2022年,来自罗格斯大学(Rutgers University)的研究人员宣布了题为“Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5) ”(作者:Geng等人)的论文。他们在文中介绍了一种“灵活而一致的text-to-text范式”,将多个引荐使命合并到了单个体系(P5)中。该体系能够经过自然言语序列(natural language sequences)执行以下操作:

序列引荐(Sequential recommendation)

评分猜测(Rating prediction)

生成解说(Explanation generation)

评论摘要(Review summarization)

直接引荐(Direct recommendation)

让咱们来看一下论文中的序列引荐使命的一个比如。

Input:”I find the purchase historylistof user_15466:

4110->4467->4468->4472

I wonder whatisthenextitem to recommend to the user.Can youhelp

me decide?”

Output:”1581″

研究人员为用户和每个物品分配了仅有的ID。运用包含数千个用户(及其购买前史记录)和共同物品的练习集,LLM能够学习到某些物品互相是类似的,某些用户对某些物品有偏好(由于自注意力机制的特性)。在这些购买序列(purchase sequences)的预练习过程中,模型实质上阅历了一种协同过滤(collaborative filtering)[5]的方式。模型能够看到哪些用户购买了相同的物品,以及哪些物品往往会一同购买。再加上LLM生成上下文嵌入(contextual embeddings)的能力,就能够得到一个十分强壮的引荐体系。

在上面的比如中,虽然咱们不知道每个ID对应哪个物品,但咱们能够推断出物品“1581”是由其他用户与“user_15466”现已购买的任何物品一同购买的。

关于P5的体系结构,能够阅读“utilizes the pretrained T5 checkpoints as backbone”(作者:Geng等人)。

T5是谷歌几年前发布的另一个LLM[6]。它被规划用来处理多种类型的sequence-to-sequence使命,因而将其用作这种体系的起点是有道理的。

03 运用自定义数据完成/仿制 P5

我对这篇论文印象深入,想要了解是否能够在更小的数据规划下仿制其序列引荐功用。因而我打算运用开源的T5模型(T5-large)[7]进行微调,来生成合适引荐的内容。为此我预备了一个自定义的数据集,包括了100多个体育器材的购买事例和下一个购买的物品。举个比如:

Input:“Soccer Goal Post,Soccer Ball,Soccer Cleats,Goalie Gloves”

Target Output:“Soccer Jersey”

当然,为了让该模型具有更强的鲁棒性(robust),我决定运用愈加明确的prompt。以下是我运用的详细prompt:

Input: “ITEMS PURCHASED:{Soccer Goal Post, Soccer Ball, Soccer Cleats, Goalie Gloves}— CANDIDATES FOR RECOMMENDATION:{Soccer Jersey, Basketball Jersey, Football Jersey, Baseball Jersey, Tennis Shirt, Hockey Jersey, Basketball, Football, Baseball, Tennis Ball, Hockey Puck, Basketball Shoes, Football Cleats, Baseball Cleats, Tennis Shoes, Hockey Helmet, Basketball Arm Sleeve, Football Shoulder Pads, Baseball Cap, Tennis Racket, Hockey Skates, Basketball Hoop, Football Helmet, Baseball Bat, Hockey Stick, Soccer Cones, Basketball Shorts, Baseball Glove, Hockey Pads, Soccer Shin Guards, Soccer Shorts}— RECOMMENDATION: ”

Target Output: “Soccer Jersey”

能够在上方看到用户现在已购买的物品清单,接下来是尚未购买的(即整个库存中)候选引荐物品列表。

在运用Hugging Face的Trainer API[8](Seq2SeqTrainer)对T5模型进行微调(10轮左右)之后,我获得了一些特别出色的成果!以下是一些示例评价:

Input:“ITEMS PURCHASED:{Soccer Jersey,Soccer Goal Post,Soccer Cleats,Goalie Gloves}— CANDIDATES FOR RECOMMENDATION:{Basketball Jersey,Football Jersey,Baseball Jersey,Tennis Shirt,Hockey Jersey,Soccer Ball,Basketball,Football,Baseball,Tennis Ball,Hockey Puck,Basketball Shoes,Football Cleats,Baseball Cleats,Tennis Shoes,Hockey Helmet,Basketball Arm Sleeve,Football Shoulder Pads,Baseball Cap,Tennis Racket,Hockey Skates,Basketball Hoop,Football Helmet,Baseball Bat,Hockey Stick,Soccer Cones,Basketball Shorts,Baseball Glove,Hockey Pads,Soccer Shin Guards,Soccer Shorts}— RECOMMENDATION:”

Model Output:“Soccer Ball”

Input:“ITEMS PURCHASED:{Basketball Jersey,Basketball,Basketball Arm Sleeve}— CANDIDATES FOR RECOMMENDATION:{Soccer Jersey,Football Jersey,Baseball Jersey,Tennis Shirt,Hockey Jersey,Soccer Ball,Football,Baseball,Tennis Ball,Hockey Puck,Soccer Cleats,Basketball Shoes,Football Cleats,Baseball Cleats,Tennis Shoes,Hockey Helmet,Goalie Gloves,Football Shoulder Pads,Baseball Cap,Tennis Racket,Hockey Skates,Soccer Goal Post,Basketball Hoop,Football Helmet,Baseball Bat,Hockey Stick,Soccer Cones,Basketball Shorts,Baseball Glove,Hockey Pads,Soccer Shin Guards,Soccer Shorts}— RECOMMENDATION:”

Model Output:“Basketball Shoes”

由于引荐成果并非二元的成功或失败,咱们其实只能依据片面感觉来做出评判,但是引荐成果与用户现已购买的物品十分类似,这一现象仍然令人印象深入。

04 尝试用非英语的数据进行模型仿制

接着,我尝试对阿拉伯语数据进行相同的操作。我将数据集进行了翻译,并寻觅合适处理阿拉伯文本的开源T5模型(如AraT5[9]、MT5[10]等)。但是,经过尝试了Hugging Face Hub[11]上十几个相关变体模型后,我发现没有得到符合要求的成果。即使运用微调的模型,在不管某产品过去是否购买过的基础上,也仅引荐相同的1或2件物品,一般是“ ”(足球)(也许该模型知道阿拉伯言语人士喜欢足球,并一直在查找足球相关物品)。即使尝试运用更大规划的T5模型,如MT5-xl,仍然得到相同的成果。这或许是由于这些言语模型对英语以外的数据支持不足。

为了尝试进行改善,我决定运用Google翻译API以及我现已微调的英文T5模型进行操作。详细步骤如下:

●将阿拉伯输入文本翻译为英文。

●将翻译后的英文文本输入到现已微调的英文模型中。

●获取模型在英文上的猜测成果。

●将猜测成果翻译回阿拉伯语。

但是,这一过程并没有带来太大协助,由于翻译工具也会犯一些错误(比如说,“ ”,谷歌翻译将其翻译成“足球”,但它实际上的意思是“橄榄球”),这导致了模型呈现了差错,最终成果是一直引荐相同的1-2件物品。

05 LLMs作为引荐体系的优缺陷

这种技能最首要的长处在于其能够作为一个独立的体系(stand-alone system.)来完成,便利性很高。 由于LLMs和预练习技能具有的特性,咱们能够避免很多手动的特征工程(manual feature engineering)要求。由于该模型应该能够自然地学习表征(representations)和联络(relationships)。此外,咱们也能够在必定程度上避免新推出的物品面对的“冷启动”问题。咱们能够经过提取出新物品的名称/描述,并将其自然地与用户现已购买/挑选的现有物品相关联。

但是,这种办法也存在一些缺陷(不要把你现有的引荐体系丢掉!)。首要表现为对引荐内容缺乏控制

●由于用户浏览产品和购买产品的不同行为/事情(actions/events)没有进行加权,咱们彻底依赖于LLM去猜测最有或许的下一个token或token组,来进行引荐。这种办法无法考虑用户的收藏、浏览前史、购物车等行为。

●此外,由于这些LLM大部分引荐都是依据类似度,即与迄今购买过的产品语义类似的产品,存在必定风险。但是,我以为经过很多的用户购买前史数据,能够选用此办法所模拟的“协同过滤”办法来改善这个问题。

●最终,由于LLM在理论上能够生成任何文本,引荐的内容或许并不彻底匹配产品库存中的项目。不过,我以为这种状况发生的或许性较低。

06 Final Thoughts 最终的思考

依据P5论文的成果以及我尝试在T5模型上经过微调和Prompt来进行仿制的经理,我推断这种技能能够用于许多言语模型。假如微调模型的数据足够大,Prompt技能得到完善,运用更强壮的sequence-to-sequence模型能够显著增强效果。

但是,我不会主张单独运用这种办法。我主张将其与其他引荐体系技能结合起来运用,这样就能够避免上面提到的缺陷并一起获得更好的效果。 如何做到这一点我不确定,但我以为只要有创造力,将LLM技能与其他引荐体系技能相结合或许会很有协助(例如,能够提取依据嵌入的特征(embedding-based features)用于协同过滤(collaborative filtering) ,或与 “Two Tower”架构结合运用等等)。

07 Code

  1. 我完成的 T5 引荐体系(在 Github 库房中)[12]

  2. 我在 Hugging Face 平台微调过的 T5 模型(Hugging Face Hub)[13]

END

参考资料

1.writings.stephenwolfram.com/2023/03/cha…

2.arxiv.org/pdf/1706.03…

3.ai.googleblog.com/2017/08/tra…

4.kawine.github.io/blog/nlp/20…

5.developers.google.com/machine-lea…

6.ai.googleblog.com/2020/02/exp…

7.huggingface.co/t5-large

8.huggingface.co/docs/transf…

9.huggingface.co/UBC-NLP/Ara…

10.huggingface.co/google/mt5-…

11.huggingface.co/models

12.github.com/Mohammadhia…

13.huggingface.co/mohammadhia…

14.S. Geng, S. Liu, Z. Fu, Y. Ge, Y. Zhang, Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5) (2023), 16th ACM Conference on Recommender Systems

本文经原作者授权,由Baihai IDP编译。如需转载译文,请联络获取授权。

原文链接

towardsdatascience.com/using-large…