CRS(1)阅读笔记:2018-NIPS Towards Deep Conversational Recommendations

前言

  • https://arxiv.org/pdf/1812.07617.pdf
  • 本文最大贡献在于基于人工标注构建了真实的对话推荐数据,并在该数据集上提出了一套CRS方法
  • 数据集:https://github.com/ReDialData/website

REDIAL数据构建

数据集构建方式:在电影数据的基础上采用众包方式分为两方:一方作为recommender,另一方作为seeker寻求推荐。虽然对话系统有时被归类为任务式对话与闲聊,但关于电影的讨论通常结合了闲谈,任务型对话甚至自然回答问题的各种要素。

指导众包志愿者按照规定的方式进行对话:要求使用正式语言,并且对话至少包含十条消息。还要求每次对话中至少要提及四部不同的电影。最后,我们要求仅谈论电影。此外,还要(与正在进行的讨论分开)对每部电影提出三个问题:(1)该电影是seeker提到的电影,还是来自recommender的推荐(“建议”标签); (2)搜寻者是否看过电影(“看过”的标签):“看过”,“没看过”或“未说”; (3)搜寻者喜欢这部电影还是该建议(“喜欢”标签):“喜欢”,“不喜欢”,“不说”之一。我们将这些附加标签称为电影对话格式。

其中HRED是一种根据上下文生成建议的NLP方法


模型架构

本文旨在研究能够与伙伴聊天并询问有关他们的电影品味的系统,以提出电影推荐,作为推荐的“聊天机器人”。模型有四个子组件:(1)使用HRED架构的分层递归编码器; (2)开关解码器Switching Decoder,对recommender产生的对话行为进行建模; (3)每次对话后,我们的模型都会检测是否已讨论过电影实体(使用@标注的),并实例化了一个RNN,重点对有关该电影的seeker的情感或观点进行分类。因此,这些RNN的数量与讨论中涉及的电影实体的数量一样多。情感分析RNN用于指示形成输入推荐模型的用户意见,即基于自动编码器的推荐模块。

Hierarchical Recurrent Encoder

由于对话数据较少,对对话语句使用预训练模型进行初始化表征,至于其中的电影实体名称,则通过词嵌入来初始化。完整一组对话用以下形式表示,表示当前语句的来源


每句话的word输入GRU,通过双向处理得到对应的表征

Dynamically Instantiated RNNs for Movie Sentiment Analysis

在测试中,用户不会提供有关对话中提到的电影的明确评分。但是,可以从他们自己的话语中推断出他们的对应情感。因此,为了构建基于自动编码器的推荐模块,我们构建了一个情感分析模型,该模型以对话和电影名称作为输入,并为该电影预测相关电影对话形式的答案。该模型为搜索者和推荐者预测了不同的答案。对于每个参与者,它学会预测三类标签:“推荐”标签(二进制),“seen”标签(三类分类),“喜欢”标签(三类分类),总共14个维度。

The Autoencoder Recommender

在每次对话开始时,推荐者都没有关于电影seeker的先验信息。在对话过程中,推荐者收集有关电影搜索者的信息,并(隐式地)建立seeker电影偏好信息。基于用户的协作过滤自动编码器(U-Autorec),该模型能够为训练集中看不到的用户预测收视率。 文中使用类似的模型,并使用MovieLens数据对其进行预训练。

Our Decoder with a Movie Recommendation Switching Mechanism

当我们处于对话D的第m步,上面的情感分析RNN可以针对目前提到的每部电影预测seeker是否喜好,这些预测。层次编码器生成的当前对话表征和推荐向量用于预测recommender的下个语句。
为了选择当前生成的是描述/问题,还是生成推荐(电影名称),文中使用switching机制进行转化。编码器使用GRU,隐藏层状态通过初始化,对于下一句话通过以下方式表示:

是预测下一个词的概率分布。下一个推荐电影预测为:
通过在上下文表征 和 的switching network来决定生成词还是电影。

这种切换机制允许在对话中包括明确的推荐系统。 这种方法的一个问题是,推荐条件取决于对话中提到的电影,而不是直接基于语言。 例如,我们的系统将无法向只要求“一部出色的科幻电影”的人提供推荐。最初的实验将推荐系统置于对话隐藏状态下导致过度拟合。 这可能是将来工作的有趣方向。 另一个问题是,它依靠使用“ @”符号来提及电影,这可以通过添加实体识别模块来解决。

实验部分

文中使用已建立的指标分别评估推荐和情感分析模块。 我们认为,当模块在推荐系统中更紧密地结合在一起时,这些单独的指标将得到改善,从而可以为总体对话质量提供代理。 我们还执行话语级别的人工评估,以比较在相似设置中不同模型生成的响应。 最终的测试环境是在与人交谈的完全交互的环境中评估模型。 然而,一次评估一个回应话语比较具有挑战性,并没有做。

  • Movie sentiment analysis performance
  • 电影推荐质量


  • 对话质量评估

    与HRED相比,我们进行了一项用户研究,以评估模型响应的整体质量。 向十名参与者展示了来自我们验证集的十个完整的真实对话,执行了56个排名任务-在这十次对话中,每个推荐者的话语都占了1个。在人类推荐者在真实对话中提供他们的回应的时候,我们展示了:HRED基线,模型和真实回应以随机顺序生成的文本。要求参与者对对话做出1至3的评分,其中1为最佳,3为最差。 我们允许平局,以便可以给多个答复相同的等级(例如,如果一个答复显然是最好的,但其他两个具有相同的质量,则可以以1、2、2的形式进行排名)。 我们显示了每个模型获得每个排名的次数的百分比。 真实反应排名349次,我们的模型为267次,HRED为223次。

小结

  • 本文最大贡献在于提出了一个人工标注的真实对话数据集
  • 在数据集上提出了一个基于GRU序列的CRS模型,该方法主要基于对话中提到的电影实体进行偏好构建,并没有充分利用对话中文本的一些信息。
  • 由于该数据集构建的对话涉及的内容还是偏少,并且只有1w+对话,对于CRS研究还不能很好支撑。

你可能感兴趣的:(CRS(1)阅读笔记:2018-NIPS Towards Deep Conversational Recommendations)