大语言模型(LLM)与推荐系统(RecSys)

大模型现状

Large Language Model

核心 组件/思想

  • generative
  • pre-trained
  • transformer
  • decoder-only

国外

  • 以 OpenAI 的 ChatGPT 为代表
  • 图像相关的有 DALL·E
  • Meta 开源的 LLaMA
  • 包含图文能力的 LLaVA
  • 辅助在单机运行的 Ollama

国内

  • ChatGLM-6B
  • 文心大模型
  • 通义大模型
  • ...

大模型能力

能做什么

  • Text Generation(文本生成)
    • Chat(问答)
    • JSON Mode(接口模式)
    • Reproducible output(可复现输出)
    • 包含通用能力,需撰写合适的Prompt
  • Function calling(函数调用)
    • 可以理解为扩展模型使用工具的能力
    • 主要思想是模型从用户输入中抽取出调用外部函数的参数(通常以JSON结构返回),然后在外部调用后将结果返回进一步处理
  • Embedding(获取文本的嵌入表征)
    • 可以用于检索、推荐、异常检测、多样性分析等等
    • 算是表征得到向量后很常见的一些运用了
  • Fine-Fine-tuning(自定义数据集微调)
    • 在一些特殊场景下就不用再次输入较多的样例,所谓一劳永逸
  • Image generation(图像生成)
    • 基于文本的生成
    • inpainting 图片基于文本调整局部
      • image / mask / prompt
    • 基于现有图片生成更多
    • 调用GPT的能力优化了文本的书写
  • Vision(视觉能力)
    • 图片内容的理解,类似caption生成
    • 能识别出有哪些内容,对于空间感知暂时不强
  • Text to speech(文本转语音)
    • 相对以往的TTS,说得更自然
    • 支持多语言以及streaming模式
    • 输出模式:mp3以及Opus、AAC、FLAC等格式
  • Speech to text (语音识别)
    • 含转写(输出目标语言的文本)和翻译(当前均以英文输出)
  • Assistants(助手模式)
    • 基于设定,使角色有特定的个性和能力
    • 能访问上传的文件
    • 可调用代码解释器等工具以及自定义 Function calling

推荐系统概览

  • 流程
    • 定义目标和指标
      • 明确业务需求是推荐系统设计的关键第一步
    • 数据收集与处理
      • 用户、商品、上下文等多维度信息获取
      • 数据清洗和预处理
      • 特征工程
    • 推荐算法的选择与实现
      • 基于协同过滤的推荐(目前基于Embedding & X2Y可得到较好运用)
      • 基于预测点击、转化的推荐(基于深度学习的推荐)
      • 基于搭配组合的推荐(使用Graph的模式以及融合传统的模式识别可以较好解决)
      • 基于序列模型的推荐(通常转化为下一个点击的预测问题)
      • 基于内容的推荐
      • 基于社交网络的推荐
      • 业务驱动的推荐(热度、新鲜度等)
      • 因果推荐(推荐系统对用户的推荐是否会引起用户的实际行为?这可能需要采用因果推断方法)
    • 模型训练和评估
      • 离线指标评估 / 线上ABT对比
    • 推荐策略和策略调整
      • 推荐策略包括排序算法、推荐模型的组合方式、推荐结果的展示方式等
      • 推荐系统中很多策略层的问题需要我们去关注
    • 服务部署
      • 模型部署的效率和稳定性对于保证用户体验至关重要
    • 用户界面与交互
      • 合理设计的界面能够提升用户体验,并增加用户与推荐系统互动的可能性。
      • 例如经典的提供推荐理由等模式迭代
    • 监控和迭代优化
      • 持续监控业务指
        • 商业指标:点击率、转化率等
        • 多样性指标:覆盖率、多样性等
      • 基于收集到的新数据和用户反馈进行迭代优化
  • 常见挑战
    • 内容理解通常不是太到位
    • 新商品和新用户的冷启动问题(物、人理解的准确性角度)
    • 长尾商品问题
    • 新品培育、应季品扶持等问题(流量问题)
    • 引导用户探索和发现
    • 多模态数据整合和利用(文本、图像、行为数据等)
    • 多目标优化的权衡问题
      • 点击率与多样性的权衡
      • 点击率与转化率的权衡
      • 可解释性与推荐效果的权衡
      • 长尾商品与热门商品的权衡
      • 准确性与新颖性的权衡
    • 推荐系统与业务策略的协同
    • 基于多步骤推理的推荐较弱
      • 例如旅行先确定目的地,然后周边的吃喝玩乐,然后旅行计划等

可以从以上流程出发,思考LMM如何能在推荐中使用

在推荐系统中使用

LLM可以在推荐系统中发挥一定的作用,尤其是在涉及自然语言理解、用户交互和解释性方面

LLM可以给推荐系统引入更多外部知识,对于冷启动和长尾问题很有效

LLM在RecSys使用的一些方式

  • 内容理解而后用于推荐模型(可以认为是特征工程角度的)
    • 用户资料、用户对物品的评论、物品标题或描述等
    • 基于域内信息的Embeeding 融合外部GPT的Embedding
    • 能较好得解决冷启动问题
      • 针对节假日、应季等场景做商品的针对性选取(许多商品标签不足或过度)
    • 用户画像扩增,喜欢品类A、或者物品X的用户还有可能喜欢什么
      • 转化为搜索词去扩展,比如Q2I
      • 特别适合一些新品场景、以及用户行为不充足的数据上
    • 商品属性库优化(结合图文内容自动结构化推断)
  • 内容生成后用于推荐场景
    • 生成商品描述、推荐语等文本
    • 商品展示、场景呈现等图片的生成
  • 新的交互模式
    • 用户使用对话模式来获取满足需求的商品(Chat-Rec)
    • 一定程度上可以归类为搜索模式了
  • 虚拟购物助手
    • 提问回答是一种模式
    • 叙述性引导是另一种模式,例如为顾客准备一次徒步之旅,看看需要置办些什么

落地

  • 在推荐任务中使用 LLM 通常有三种方式,预训练微调提示
    • 在推荐系统中,PEFT 可以大大降低针对推荐任务微调 LLM 的计算成本,它只需较少更新,并能保持模型的大部分功能
    • 基于提示工程,可以完成推荐场景下很多子任务
  • 可能的问题
    • 工业场景直接运用延时大,线上需要做缓存处理,或者先在离线场景使用
    • 大模型上下文窗口有限且部署推断或者调用接口的成本均不低,需要权衡
    • 传统场景下大量使用ID特征,这些信息LLM很难利用,所以LLM现阶段只能打个辅助

可供参考的新范式

参考文献