其他
当"狂飙"的大模型撞上推荐系统
导读 随着以 ChatGPT 为代表的大模型技术的迅速发展,推荐系统正经历着一场革命性的变革。传统的推荐系统主要基于用户和物品的历史行为数据进行预测,大模型技术的出现,为推荐系统带来了更强的泛化能力和更高的效率,解决了传统推荐系统中的一些难题,如用户和物品数量的巨大规模、不可观测因素对推荐的影响等。同时,大模型推荐技术也带来了新的挑战,如模型的可解释性和隐私保护等问题。
今天的介绍将会从以下四个方面展开:1. 推荐及 LLM 简介
2. LLM 赋能推荐系统
3. 大模型推荐展望
4. 总结
分享嘉宾|冯福利 中国科学技术大学 特任教授
编辑整理|普衍钧
内容校对|李瑶
出品社区|DataFun
用户层面(user):用户规模大(数以亿计),用户行为多样(千人千面),且受到很多推荐系统不可观测的外界因素影响,导致建模十分困难。 物料层面(item):item 之间的很多关联是十分小众的,不易被捕获(共现频次低)。为什么这个用户会同时购买这两个东西,为什么这个用户会同时看这两个视频等等问题,可能是因为非常小众的原因关联起来的,对建模也是一项挑战。 模型层面:存在很大的泛化问题,我们所熟知的很多平台例如 TikTok,用户每天新上传大量视频,产生非常多的新的低频关联和新的 item,模型可能对新的 item 推荐效果不佳,泛化问题对于主要依靠 id 特征的传统推荐系统而言是困扰多年的严重问题。
强大的建模能力:第一眼看大语言模型能力强,很可能归功于大预言模型使用的 Transformer 这样的模型结构本身具备很强大的建模能力,受其启发我们可以基于它去做一些推荐模型,提升推荐模型的建模能力。 优秀的学习范式:除了模型结构的强大建模能力,大语言模型预训练+微调+prompt 这样的学习范式也具备很大的优势,能够帮助训练出优秀的模型。我们也可以将其应用于推荐领域中,从而学习到更强大的推荐模型。 Well-train 的大模型本身:无论是 ChatGPT 这样通过 API 访问的闭源模型,还是 Llama 这样可以拿到完整参数的开源模型,都已经表现出了非常强大的能力。如果我们能够将这些 well-train 的大模型引入到推荐系统中来,也许能够获得很好的推荐效果。 将模型直接应用到合适的场景:比如 ChatGPT 刚问世时,其 chat 能力是大家公认的第一个非常惊艳的公开系统,对于做 conversational recommendation 的人来说,这就是一个非常诱人的能力。 使用大模型去做 item 的理解和表征(去 ID 化):无论是 ChatGPT 还是其前后出现的大语言模型,它们都具备强大的文本表征和理解能力,我们能否将这两种能力引入到推荐系统中来呢?当然是可以的,推荐场景中本来就具备很多的特征,比如商品的 title 和各种文本描述。除此之外,前文提到推荐系统中新 item 的问题是很棘手的,因为传统的推荐系统都是主要基于 ID 的,也就是每个新来的 item 都必须有一个 ID,然后根据这个 ID 去学习 item 的表征,最后通过学习到的表征去做推荐。但是如果存在一个通用模型能够把语言理解的非常好,那是否可以直接用语言去描述 item,去掉 ID,直接得到 item 描述的文本表征作为 item 的表征?
建立推荐大模型范式:在 NLP 领域,自从 18 年 BERT 出来之后,NLP 这件事就变得容易了很多,我们可以通过 fine-tune 的方式去解决不同场景下的任务。后来出现了 Instruction GPT,我们甚至都不需要去 fine-tune 了,基于此类强大的基础模型,只需要去写 prompt 就可以完成任务。对于推荐领域,我们依旧处于对不同场景的任务去构建和优化不同模型的阶段,与 NLP 领域的任务 solution 生产速度相对比,完全不在一个量级上,可以说是工业文明和农耕文明的巨大区别。那么我们是不是也可以在推荐领域去建造这样的强大的基础模型,在未来让推荐也可能进入一个工业化、标准化的时代呢?过去两三年在这一领域中开展了很多工作,可以总结为以下几点: 使用文本统一表示,解决依赖 ID 的问题,这样就可以忽略 cross domain 和 costar 这样的问题,包括很多长尾问题也能得到很好的解决。 使用prompt 统一任务,这样就可以做到 open ending task,使用训练好的语言模型去做到跨域,最终得到一个 open ending task and domains 的基础模型。
LLM 赋能推荐系统
存在偏差: 直接使用其 in content learning 的方式去做推荐的话,一个突出的问题是,GPT 是被高度安全优化过的,所以它很难去拒绝用户,也就是很难 say no,如果我们按照 point wise 的方式,给它一个 list,history,然后问它是不是要把这些推给这个用户,它很难 say no,有很大概率会对很多用户都直接 say yes,也就是所有东西都推对。 微调难做:当然可以采用 tuning 的方式去缓解上述问题,但是 LLM 的参数量大、模型深度高,tuning 是一件很难的事。 部署成本高:即使采用 lora 之类的方式去解决 tuning 的问题,大模型的 inference 依旧困难,相对传统的推荐模型推理成本很高。我们曾经计算过,以 TikTok 的日活用户规模,如果每个用户让大语言模型去算 100 个 candidate item 的分,那将会需要 10 万张 A100-80G 显卡,24 小时不停算才能算完,这个开销是难以接受的。 生成能力受限:针对推荐场景去对大语言模型进行 fine tune 之后,会压缩模型对生成空间,导致其生成能力受到很大的限制。
首先是语言空间:构造合适的 prompt 输入用户的历史交互序列,让大语言模型自由输出内容,充分发挥大语言模型的生成能力,从语义层面去做理解。 然后是推荐空间:与语言空间不同,对于输入的用户交互序列,推荐空间不是从语义层面去理解 sequence 中包含的信息,而是站在推荐角度去看 sequence 中哪些信息是与推荐相关的,去描述与推荐相关的文本。 最后是 item 空间:从统计角度上去理解,融合协同过滤之类的统计信息,落在要进行推荐的具体的 item 上,去做打分和排序,完成最终的推荐。
03
大模型推荐展望
总结
使用尽可能大的基础模型,比如 GPT4 这样具备强大能力的模型,不要去用 Bert 之类的模型了。 Fine-tune 过程中尽量保持模型的生成能力。 融合一些语言难以描述的统计信息是十分必要的。
分享嘉宾
INTRODUCTION
冯福利
中国科学技术大学
特任教授
冯福利,中国科学技术大学特任教授,入选国家青年人才计划。研究领域:信息检索、数据挖掘、机器学习、因果推断等,承担推荐算法合规、监管相关国家级项目,发表国内外顶级会议和期刊论文近 100 篇,谷歌学术引用 6000 余次,研究成果在多家公司的商业系统应用。曾获 SIGIR 2021 最佳论文提名奖、WWW 2018 最佳演示论文奖。
往期推荐
点个在看你最好看