• 论文阅读CRSLab: An Open-Source Toolkit for Building Conversational Recommender System


    CRSLab: An Open-Source Toolkit for Building Conversational Recommender System

      本篇论文是关于由中国人民大学AI BOX团队推出的对话推荐系统的开源项目CRSLab的介绍。CRSLab是一个用于构建对话推荐系统(CRS)的开源工具包,可以实现一键复现、快速开发和自动评测的服务,共包含了六个数据集和18个模型,相关代码也已公开,项目和文件发布在https://github.com/RUCAIBox/CRSLab。

      作者提出的开源的 CRS 工具包 CRSLab,是第一个用于构建对话推荐系统(CRS)的开源工具包,基于 PyTorch 实现、主要面向研究者使用,提供了一个统一的、可扩展的框架,具有高度解耦的模块来开发 CRS。

       CRSLab的整体框架如下:

      

      现有的CRS任务可统一为两个基本子任务和一个辅助子任务:推荐、对话和policy。其中所有的对话推荐系统都具有对话和推荐任务,它们是对话推荐系统的核心功能,而策略(policy)任务是一个辅助任务,其致力于更好的控制对话推荐系统,在不同的模型中的实现也可能不同

      本文提出的模型共分为三层:

      (1)Confuguration模块为用户提供了一个灵活的界面,可以方便地设置实验环境(如数据集、模型和超参数)。

      (2)Data,Model和Evaluator模块中集成了多个现有的数据集,模型和评测方案,省去了用户自行复现的时间,建立于Confuguration模块之上。

      (3)Utilities中集成了多个常用的功能函数,可以帮助用户快速从新搭建一个新的对话推荐系统。

     1、Confuguration

      方便用户选择或修改实验设置(如数据集、模型和超参数)。具体来说设计Config存储configuration设置,为给定实验的CRS和环境的每个组件指定模型及其超参数。

     2、Data Modules

      数据流:原始公共数据集—> 预处理数据集—>数 据集—>数据加载器 —>系统。

          (Raw Public Dataset → Preprocessed Dataset → Dataset → DataLoader →System)

    2.1 Data Preprocessing

      我们组织对话上下文和边信息作为输入, 提取推荐项、对话动作和响应分别作为推荐、策略和对话站点 子任务的输出。

    2.2 Dataset Class

      Dataset只关注将输入数据处理成统 一的格式 (即python.dict的 列表),而不考虑特定的模型。

    2.3 DataLoader Class

      DataLoader侧重于从数据集后的处理数据 中选择特征以形成张量数据(即张量数据),可以直接 用于下游模型的更新和计算。

     3、Model Modules

    3.1 Model Class 

      将重点放在为开发 提供基本结构和有 用的、高度解耦的 函数或过程上。具体来说,我们将各 种模型的基本属性和 功能(例如,参数初 始化和模型加载)统 一到类基模型中。

    3.2 System Class

      为了在高层次上支持CRS的灵活架构,我们设计了System模块作为一个连接点,将dataloader, model 和 evaluator 模块集成在一起,构建一个完整的CRS。系统模块主要是建立 完成CRS任务的模型, 将dataloader中的 张量数据分发到相应 的模型中,用合适的 优化策略对模型进行 训练,用指定的协议 进行评估。

     4、Evaluation Modules

     4.1 Automatic Evaluation Modules

      对于会话子任务,CRSLab支持基于相关性和基于多样性的评估指标。基于相关度的指标包括Perplexity、BLEU和Embedding,分别从概率、ngram和word Embedding的角度度量ground-truth和generated responses之间的相似性。基于多样性的度量是不同的-{1,2,3,4},测量生成的响应中不同的{1,2,3,4}-gram的数量。

     4.2 Human-Machine Interaction Interface 

      具体来说,要进行端到端的评估,用户首先设置一个模拟用户的背景(如交互历史和用户简介),然后通过界面与CRS自由交谈。在对话期间,对话历史记录和每个组件的输出(包括推荐的项和选择的策略)被存储为一个字典,这有助于用户很好地理解他们的系统是如何工作的。

    5、Utilities

       为了更好地使用我们的CRSLab,我们设计了实用模块,其中包括辅助函数(例如,logger()和scheduler())。具体来说,我们实现了一系列有用的函数,以方便使用我们的工具包。

    参考:

    https://blog.csdn.net/qq_27590277/article/details/112301155

    https://zhuanlan.zhihu.com/p/342186238

  • 相关阅读:
    discuz常用变量
    Discuz!X/模板标签说明
    Discuz x 默认模板文件目录说明
    apache禁止访问文件或目录执行权限、禁止运行脚本PHP文件的设置方法
    基于Java的数据采集(三)
    基于Java的数据采集(二)
    基于Java的数据采集(一)
    使用Spring JDBCTemplate简化JDBC的操作
    基于原生PHP交叉会员权限控制
    PHP上传压缩包并自解压方法
  • 原文地址:https://www.cnblogs.com/linglanhuakai/p/14596090.html
Copyright © 2020-2023  润新知