yuanzhongqiao / Agent4Rec

【SIGIR 2024视角】论文《On Generative Agents inRecommendation》的实现

Home Page:https://arxiv.org/abs/2310.10108

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于推荐中的生成代理

执照

世界

Agent4Rec,一个推荐系统模拟器,拥有 1,000 个 LLM 授权的生成代理。这些代理是从MovieLens-1M数据集初始化的,体现了不同的社会特征和偏好。每个智能体以逐页的方式与个性化电影推荐进行交互,并进行观看、评分、评价、退出、采访等各种动作。通过 Agent4Rec,我们希望探索 LLM 授权的生成代理在模拟推荐环境中真实、独立的人类行为方面的潜力。

📋 目录

⚙️准备工作

步骤1.安装requirements.txt

设置 virtualenv 并手动安装pytorch。之后,requirements.txt通过运行以下命令安装文件中列出的所有依赖项:

pip install -r requirements.txt

我们的实验已在Python 3.9.12 和 PyTorch 1.13.1+cu117上进行了测试。

步骤2.设置必要的环境

确保您位于recommenders/setup.py可以找到的目录)中,然后运行以下代码。

python setup.py build_ext --inplace

该命令将安装必要的工具来加速推荐器评估。

⌛️模拟

确保您位于主目录main.py可以找到的位置)。

首先导出您的 OpenAI API 密钥:

export OPENAI_API_KEY=<Your OpenAI API key>

将 <Your OpenAI API key> 替换为您自己的 OpenAI API key

快速开始

通过运行以下命令,您将启动3 个代理的玩具模拟。

python main.py

代理对推荐项目的响应将打印在终端中。此模拟大约需要3 分钟才能完成。

探索各种推荐设置

Agent4Rec支持各种推荐系统和不同的模拟配置。

python main.py --simulation_name MyExp --modeltype MF --n_avatars 10 --max_pages 5 --items_per_page 4 --execution_mode parallel

通过运行此代码,您将启动一个名为MyExp10 个代理的模拟,每个代理将最多浏览 5 个页面,单个页面上有 4 个项目。本示例中使用的推荐器是矩阵分解(MF 的缩写)。并且实验将以并行模型执行,以加快仿真速度。

--modeltype <model_name>您可以通过在命令中修改来选择使用的推荐器。您可以替换<model_name>为以下受支持的推荐器:

  • Random:向用户随机推荐物品。
  • Pop:随机向用户推荐热门商品。
  • MF:具有 BPR 损失的预训练矩阵分解模型。
  • MultVAE:具有 BPR 损失的预训练MultVAE模型。
  • LightGCN:具有 BPR 损失的预训练LightGCN模型。

查看结果

模拟结果将保存在storage/ml-1m/<model_name>/<experiment_name>目录中。至于“探索各种推荐器设置”部分中的命令,结果将保存在storage/ml-1m/MyExp目录中。代理 0 的所有交互历史都记录在storage/ml-1m/MF/MyExp/running_logs/0.txt

💰 模拟成本

🛎️ 请注意,所有实验均由 ChatGPT-3.5 提供支持,涉及 1000 个用户的完整模拟将花费大约 16 美元。(0.016 美元/用户)

About

【SIGIR 2024视角】论文《On Generative Agents inRecommendation》的实现

https://arxiv.org/abs/2310.10108

License:MIT License


Languages

Language:Python 93.9%Language:C++ 2.9%Language:Cython 2.0%Language:Shell 1.2%