Giter Club home page Giter Club logo

agent4rec's Introduction

关于推荐中的生成代理

执照

世界

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 美元/用户)

agent4rec's People

Contributors

chenyuxin1999 avatar lehengthu avatar leolee99 avatar yuanzhongqiao avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.