问题

根据用户个人兴趣偏好不同,输出不同的内容,实现大模型多样化回复,同时也更切近用户需求。

为了实现个性化输出,普遍的有两种做法:

  1. 为某个用户单独微调一个LLM,但成本高昂,为控制成本产生了几个相关优化工作:
    1. OPPU模型,通过LoRA方法为每个用户微调
    2. 将用户分到不同的组,针对每个组做微调
    3. 通过为每个用户寻找最佳的微调参数来进行微调(本质上是微调参数的学习)
  2. 基于rag的方法
    1. 简单来说就是把历史数据chunk embedding到向量数据库中,后续检索出来放到context中检索学习,但是这样只能检索出部分内容,会破坏用户历史的连续性
    2. 或者粗暴一点,直接把用户的历史数据放到prompt中,但是长度受限

新的方案和前面两个方案的对比:

image.png


提出方法-PPlug

image.png

User Embedder部分

Encoding

对应的右图,将历史记录和用户输入通过encoder,转换为向量表示。为后面的Aggregator做准备。

为了提升训练效率,在论文中freeze了User Behavior Encoder,对Input Encoder进行了微调

不太理解为什么这里要微调input encoder,微调的目标是什么?

实验中,两个encoder都选用了BGE-base-en-V1.5作为默认的encoder模型,同时对比了Contriver,两者差距不大。

image.png

Aggregator