编者按:目前大语言模型次要问答、对话等场景,进行被动答复。是否能够将大模型利用于举荐零碎,进行被动推送呢?

这篇文章回顾了能够将大模型作为举荐零碎的实践根底,并重点形容了基于英文和阿拉伯语的购物数据集微调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 history list of user_15466:

4110 -> 4467 -> 4468 -> 4472

I wonder what is the next item to recommend to the user. Can you help

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.https://writings.stephenwolfram.com/2023/03/chatgpt-gets-its-...

2.https://arxiv.org/pdf/1706.03762.pdf

3.https://ai.googleblog.com/2017/08/transformer-novel-neural-ne...

4.https://kawine.github.io/blog/nlp/2019/06/21/word-analogies.html

5.https://developers.google.com/machine-learning/recommendation...

6.https://ai.googleblog.com/2020/02/exploring-transfer-learning...

7.https://huggingface.co/t5-large

8.https://huggingface.co/docs/transformers/main_classes/trainer

9.https://huggingface.co/UBC-NLP/AraT5-base

10.https://huggingface.co/google/mt5-large

11.https://huggingface.co/models

12.https://github.com/Mohammadhia/t5_p5_recommendation_system

13.https://huggingface.co/mohammadhia/t5_recommendation_sports_e...

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编译。如需转载译文,请分割获取受权。

原文链接

https://towardsdatascience.com/using-large-language-models-as...