论文笔记:Large Language Models for Next Point-of-Interest Recommendation

SIGIR 2024

1 intro

  • 传统的基于数值的POI推荐方法在处理上下文信息时存在两个主要限制
    • 需要将异构的LBSN数据转换为数字,这可能导致上下文信息的固有含义丢失
    • 仅依赖于统计和人为设计来理解上下文信息,缺乏对上下文信息提供的语义概念的理解
  • ------>使用预训练的大语言模型来进行推荐
    • 允许在原始格式下保留异构的LBSN数据,从而避免上下文信息的丢失
    • 能够通过包含常识知识来理解上下文信息的内在含义

2 方法

2.1 轨迹提示

  • 当前轨迹块(current trajectory block)

    • 当前轨迹块中只包含当前用户的一条轨迹,且不含最后一个签到点
  • 历史轨迹块(historical trajectory block)

    • 在当前轨迹块和历史轨迹块中,为每条签到记录生成一个句子

      • 对每条签到记录 𝑞 = (𝑢,𝑝,𝑐,𝑡,𝑔),构造句子为:

        • 在 [time],用户 [user id] 访问了 POI 编号 [poi id],该地点属于 [poi category name] 类别,其类别 ID 为 [category id]。

        • 为节省 token 数量,没有将地理坐标(geo-coordinates)包含在句子中

        • 同时论文发现,未经特别地图数据微调的 LLM 无法很好地理解坐标信息

    • 历史轨迹块则可以包含来自当前用户及其他行为相似用户的多条轨迹,以应对轨迹短和冷启动问题

  • 指令块(instruction block)

    • 指令块用于引导模型关注目标任务,并提醒 POI ID 的取值范围
  • 目标块(target block)

    • 目标块用于微调和评估阶段,包含要预测的签到记录(时间戳、用户 ID、POI ID),但在推理阶段不会作为输入

    • 作者尝试将 POI 类别信息加入指令块和目标块,希望模型更关注 POI ID 与类别之间的关系,但实验显示效果提升不明显,可能模型已隐式学会这种关系。

2.2 键-查询对相似性计算

  • 为了从用户历史轨迹及其他用户轨迹中挖掘行为模式,提出了适用于自然语言轨迹格式的键-查询对相似度计算框架
    • 当前轨迹块中的轨迹被视为Key
    • 所有结束时间早于该 Key 的轨迹被视为Query
  • 计算所有 Key-Query 对的相似度,并从中选出与 Key 相似度较高的 Query,将其用于生成历史轨迹块内容
    • 每个 Key 和 Query prompt 输入到 LLM 编码器中,提取最后一层的表示向量
    • 对每组 Key 和 Query 计算余弦相似度,提取最高的top-k个Query

2.3 监督微调

在训练集中,将提示中的 <question> 部分送入预训练 LLM,而 <answer> 部分作为监督信号进行微调

LoRA+NormalFloat 4-bit量化+FlashAttention

3 实验

相关推荐
小楓1201几秒前
醫護行業在未來會被AI淘汰嗎?
人工智能·醫療·護理·職業
数据与人工智能律师13 分钟前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
chenchihwen14 分钟前
大模型应用班-第2课 DeepSeek使用与提示词工程课程重点 学习ollama 安装 用deepseek-r1:1.5b 分析PDF 内容
人工智能·学习
说私域22 分钟前
公域流量向私域流量转化策略研究——基于开源AI智能客服、AI智能名片与S2B2C商城小程序的融合应用
人工智能·小程序
Java樱木35 分钟前
AI 编程工具 Trae 重要的升级。。。
人工智能
凪卄12131 小时前
图像预处理 二
人工智能·python·深度学习·计算机视觉·pycharm
AI赋能1 小时前
自动驾驶训练-tub详解
人工智能·深度学习·自动驾驶
deephub1 小时前
AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
人工智能·深度学习·神经网络·langchain·大语言模型·rag
EulerBlind1 小时前
【运维】SGLang 安装指南
运维·人工智能·语言模型
心之语歌1 小时前
Spring AI MCP 客户端
人工智能·spring·github