论文笔记 Where Would I Go Next? Large Language Models as Human Mobility Predictor
arxiv 2023 08的论文
1 intro
1.1 人类流动性的独特性
- 人类流动性的独特特性在于其固有的规律性、随机性以及复杂的时空依赖性
- ——>准确预测人们的行踪变得困难
- 近期的研究利用深度学习模型的时空建模能力实现了更好的预测性能
- 但准确性仍然不足,且产生的结果不能直接完全解释
1.2 本文
- LMM+位置预测
- 提出了一个名为LLM-Mob的框架
- 将流动性数据组织成历史停留和上下文停留,以解释人们移动中的长期和短期依赖性
- 利用目标停留的时间信息进行时间感知预测
- 设计了有效的prompt策略来帮助LLM理解流动性数据,最大化它们的推理能力,使预测结果的解释成为可能。
- 提出了一个名为LLM-Mob的框架
2 Preliminary
2.1 术语和符号
- 用户的轨迹被表示为一系列停留,一个停留被表示为 (st, dow, dur, pid)
- st 表示停留开始的时间,dow 表示星期几,dur 表示停留的持续时间,pid 表示停留发生地点的唯一标识符。
- 一个停留的例子可以是 (17:30, 星期二, 35分钟, 地点1),表示用户在星期二的17:30到18:05期间停留在地点1。
2.2 问题定义(next-location prediction)
- 给定一个用户到时间 n 为止的停留序列 S = (Sn−Q+1, ..., Sn),目标是预测用户在下一个时间步骤将要访问的下一个位置/地点(即 pidn+1)
3 模型
3.1 数据整体
3.2 数据格式化
3.3 任务独特的prompt
4 实验
4.1 数据集和预处理
- Geolife、纽约Foursquare 数据集(FSQ-NYC)
- 预处理步骤,包括过滤记录很少的用户、处理原始轨迹成停留点,将数据集分为训练和测试集
4.2 实验细节
- 使用的特定 LLM 是 GPT-3.51( gpt-3.5-turbo-0613)
- 将温度设置为 0 以避免输出中的随机性
- 史停留点 M 的长度和上下文停留点 N 的长度分别设置为 40 和 5
4.3 评估指标
- 准确率(Accuracy)。
- 预测按照成为下一个位置的概率降序排列,Acc@k 衡量真实位置出现在前k个预测中的比例。
- 报告了 Acc@1、Acc@5 和 Acc@10 以进行比较
- 加权F1分数(Weighted F1)
- 个人访问位置的次数高度不平衡,一些位置出现的频率比其他位置更高。
- 使用按访问次数加权的 F1 分数来强调模型在更重要位置的性能
- nDCG@k
- 归一化折扣累积增益(normalized discounted cumulative gain,简称 nDCG,以排名位置k为基准)
- 通过折扣累积增益(DCG)与理想折扣累积增益(IDCG)之比来衡量预测向量的质量
- rj 表示位置j的相关性值。
- 在位置预测的上下文中,rj∈{0,1},并且当且仅当排名预测向量中的第j个项目对应于真实的下一个位置时,rj=1
- rj 表示位置j的相关性值。
4.4 实验结果
5 讨论
5.1 LLM-Mob 为什么表现得如此出色?
- 论文测试了 LLM 在三个逐步任务上的性能,以展示论文认为对成功预测人类移动性至关重要的其能力的不同方面
- 表 5 中展示的结果显示 LLM 在所有三个任务中都做得非常好
- 生成数字和结构化输入的自然语言描述
- 总结用户的活动模式
- 以及对用户的家庭和工作场所进行推断
- 这显示了三个主要能力:
- 不仅能理解自然语言,还能理解如代表轨迹的数字列表这样的结构化数字输入
- 总结历史移动性/活动模式的能力,以便模型能有效地利用过去的信息来预测未来情况
- 强大的推理能力,意味着模型可以像人类一样“思考”并做出合理的推断
- 除了 LLM 本身的能力外,LLM-Mob 的成功还在于数据的有效格式化和实用的提示工程,其中提示已通过迭代测试仔细设计和改进
5.2 限制
- 效率问题。
- 对每个测试样本独立调用 OpenAI API,这种做法效率低下,难以应用于大规模预测
- 幻觉问题
- 这是 LLM 面临的一个常见问题。
- 如表 4 中标记为蓝色的声明所示,模型声明地点 1 是一家餐厅,这是虚构的,可能会误导用户
- 来自专有 LLM 的限制
- 首先,调用 OpenAI API 需要花费金钱,当数据量大时,成本可能会很高
- 此外,OpenAI 不断更新 GPT 模型系列,导致最新模型的性能漂移
- 在旧模型上表现良好的提示可能在新模型上不起作用,需要在提示工程上做额外工作
相关文章:

论文笔记 Where Would I Go Next? Large Language Models as Human Mobility Predictor
arxiv 2023 08的论文 1 intro 1.1 人类流动性的独特性 人类流动性的独特特性在于其固有的规律性、随机性以及复杂的时空依赖性 ——>准确预测人们的行踪变得困难近期的研究利用深度学习模型的时空建模能力实现了更好的预测性能 但准确性仍然不足,且产生的结果…...

农场管理小程序|基于微信小程序的农场管理系统设计与实现(源码+数据库+文档)
农场管理小程序目录 目录 基于微信小程序的农场管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、农场信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 五、核心代码 七、最新计算机毕设选题推荐 八、源码获取&#x…...

【前端】vscode快捷键和实用Api整理
vscode的快捷键 创建a.html 生成模板 !回车 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …...
抖音商家活动信息未在商详展示会有哪些处罚?
一、什么是「违规玩法-活动信息未在商详展示」? 什么是「违规玩法-活动信息未在商详展示」?由于当前平台未提供官方营销工具(例如免单、返现等),但是创作者在进行商品推广(不仅限口播、画面、标题文案等)宣传该类营销玩法,未在商品商详页展示说明&…...

智慧公厕方案_智慧公厕解决方案_智慧公厕整体解决方案
一、什么是智慧公厕? 在现代城市化进程中,公共厕所是不可或缺的基础设施之一。然而,传统的公厕管理模式已经无法满足市民对高效、便捷厕所服务的需求。为了实现公共厕所的信息化管理,智慧公厕整体解决方案应运而生。智慧公厕具体…...

【Python】成功解决IndexError: list index out of range
【Python】成功解决IndexError: list index out of range 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订…...
对于两个独立随机变量X,Y, E(XY)=E(X)E(Y)
两个独立随机变量X,Y的期望分别是E(X), E(Y), 其乘积XY的期望是多少? 我们可以利用期望的性质来求得XY的期望。由于X、Y是独立随机变量,因此它们的协方差为0,即: cov(X, Y) E(XY) - E(X)E(Y) 0 因此, …...
以题为例 浅谈前缀和算法
前缀求和算法是什么 前缀和算法就是以空间去换取时间,可用于快速求数组的区间和,它可以用于一维数组和二维数组,但我现在只接触了一维数组并没有接触二维数组,所以在这里先介绍一维数组前缀和相关的知识 前缀和典型代码 for(int…...

【Python】进阶学习:OpenCV--一文详解cv2.namedWindow()
【Python】进阶学习:OpenCV–一文详解cv2.namedWindow() 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望…...

【嵌入式】字体极限瘦身术:Fontmin在嵌入式UI中的魔法应用(附3500常用汉字)
🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…...

蓝桥杯递推与递归法|斐波那契数列|数字三角形|42点问题|数的计算|数的划分(C++)
递归是用来做dfs,是搜索算法的基础 递推是用来做dp部分,及部分其他算法,复杂度较低,不会出现爆栈问题递推法: 递推法是一种在数学和其他领域广泛应用的重要方法,它在计算机科学中被用作一种关键的数值求解…...
遗留系统现代化:理解、策略与案例
文章目录 一、什么是遗留系统二、遗留系统的特点三、改造遗留系统的方法四、案例4.1 重构4.2 替换4.3 封装4.4 服务化 五、总结 一、什么是遗留系统 遗留系统(Legacy System)是指在组织中已经存在一段时间,通常是几年或更长时间的信息系统。…...
2024.3.9 C++启航 梦开始的地方
一.基本格式: #include<iostream>using namespace std;int main() {return 0; } 二.注释 1.当行注释: 同C语言//描述信息 2.多行注释: /*描述信息*/ 三.输入输出 既可以使用scanf和printf 也可以使用标准输入流对象cin和标准输出流对象cout,且cin cout更安全和方…...

Ubuntu平铺左、右、上、下、1/2、1/4窗口(脚本)
前言 之前因为一直在用Ubuntu 18或者Ubuntu 20然后发现装了GNOME插件后,电脑在使用过程中,会时不时的卡死(鼠标没问题,键盘输入会有10-20秒的延迟)频率基本是一小时一次,因为这种卡顿会很容易打断思路&…...

深度学习+感知机
深度学习感知机 1感知机总结 2多层感知机1XOR2激活函数3多类分类总结 3代码实现 1感知机 是个很简单的模型,是个二分类的问题。 感知机(perceptron)是Frank Rosenblatt在1957年提出的一种人工神经网络,被视为一种最简单形式的前馈神经网络&…...

爬虫练习:获取某招聘网站Python岗位信息
一、相关网站 二、相关代码 import requests from lxml import etree import csv with open(拉钩Python岗位数据.csv, w, newline, encodingutf-8) as csvfile:fieldnames [公司, 规模,岗位,地区,薪资,经验要求]writer csv.DictWriter(csvfile, fieldnamesfieldnames)writer…...

Java对接腾讯云直播示例
首先是官网的文档地址 云直播 新手指南 可以发现它这个主要是按流量和功能收费的 价格总览 流量这里还只收下行的费用,就是只收观看消耗的流量费 其它的收费就是一些增值业务费 (包括直播转码、直播录制、直播截图、直播审核、智能鉴黄、实时监播、移动直…...

free pascal 调用 C#程序读 Freeplane.mm文件,生成测试用例.csv文件
C# 请参阅:C# 用 System.Xml 读 Freeplane.mm文件,生成测试用例.csv文件 Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能&#x…...

在Blender中清理由Instant-NGP等几何学习技术生成的网格
使用布尔运算: 创建一个大的立方体或其他简单几何体包裹住全部网格。使用布尔修改器对两个网格进行“差集”运算。这将移除超出包裹体之外的多余网格部分。 手动选择并删除: 进入编辑模式(按Tab键)。按A键取消选择所有顶点。按B键并拖动以选择您想要删除…...

【重要公告】BSV区块链上线TypeScript SDK,未来将支持更多开发语言
发表时间:2024年2月21日 BSV区块链协会宣布上线JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,以便利开发者在BSV区块链上开发能够任意扩容的应用程序。新上线的SDK替…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...