当前位置: 代码迷 >> 综合 >> conversational recommender system论文笔记;推荐系统(recommender system)+对话系统(dialogue system)
  详细解决方案

conversational recommender system论文笔记;推荐系统(recommender system)+对话系统(dialogue system)

热度:2   发布时间:2023-12-01 13:36:56.0

Conversational Recommender System

YuemingSun,YiZhang

  • abstract

在目前的解决方案中,基于单轮的即时搜索引擎和传统的多轮对话系统(single round adhoc search engine or traditional multi round dialog system)存在的问题:只考虑用户在当前session的输入,忽略用户的长期偏好(users’ long term preferences)

已知,推荐系统可以大幅的提高销售转换率(sales conversion rate),依据过去的购物行为分析用户的偏好,优化商业导向的评测指标:转换率(conversion rate),期望收益(expected revenue)。

在这篇文章中,作者提出了一个将推荐和对话合并的统一的深度强化学习框架(framework)从而建立个性化的对话推荐代理。

把用户的会话历史表示成a semi-structured user query with facet-value pairs

其中query是通过belief tracker 在每一步中分析会话中的每一句话,生成更新得到的。

train a deep policy network to decide which action

action(i.e. asking for the value of a facet or making a recommendation)

通过询问用户问题收集用户的偏好,一旦信息足够就会进行推荐。

模型使用用户的past ratings 和在当前会话阶段收集的query 进行rating的预测和推荐的生成。

  • introduction

对话系统主要分三类:chit-chat,information chat , task oriented chat.

关于task-oriented的工作,当前主要关注于自然语言处理和semantic rich search solutions。

分为三个主要模块:NLU,(dialogue management)DM,自然语言生成模块(natural language generation module)

1.NLU:分析用户的每一句会话,跟踪用户的对话历史,持续更新用户意图(intention)。关注于抽取item的元数据。

? we train a deep belief tracker to analyze a user’s current utterance based on context and extract the facet values of the targeted item from the user utterance。

它的输出被用来更新用户意图,并且被作为一个关于target的facet-value pairs的集合在DM和推荐系统中使用。

2.DM:决定对于所处的状态采取哪种行动(action)

? we train a deep policy network that decides which machine action to take at each turn given the current user query and long term user preferences learned by the recommender system.

当得到的信息不足时,询问;当足够充足时,推荐a list of items

3.natural language generation module:生成回复。

  • 2. Related work

  • 3. conversational recommendation with reinforcement learning

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cYYkSWK7-1585840097524)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402123335017.png)]

    • 3.1 overview

framework包含:belief tracker ,recommender system , policy network

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bakj6733-1585840097527)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402120646198.png)]

只有当policy network做出推荐的action时,才调用recommender得到一个item的列表

在推荐过程中重要的三个方面:

  1. 如何正确的理解用户意图
  2. 如何做出序列的决定,采取合适的行为(action)
  3. 如何做出个性化推荐

? 3.2 belief tracker

We introduce a Belief Tracker module similar to [5] to extract facet-value pairs from user utterances during the conversation

同时这个facet-value对 当作agent的状态

在每个时刻t,给定一个用户utterance ete_tet?,通过zt=ngram(et)z_t=ngram(e_t)zt?=ngram(et?) 得到n为的输入向量 ztz_tzt?

之后ztz_tzt?输入到LSTM中,编码得到向量hth_tht?,再将其传入softmax激活层得到一个特定facet的j个值(value)的概率分布。

ht=LSTM(z1,z2,...,zt)h_t=LSTM(z_1,z_2,...,z_t)ht?=LSTM(z1?,z2?,...,zt?)

fi=softmax(ht)f_i=softmax(h_t)fi?=softmax(ht?)

假设不同的facet共有L个,则将其相互连接形成agent当前对话面临的状态(state):

? At each round,all the fif_ifi? are concatenated to each other to form the agent’s current belief of the dialogue state in the current session. If there are lll facets,then :

st=f1?f2...?fls_t=f_1\oplus f_2...\oplus f_lst?=f1??f2?...?fl?

fif_ifi? is the learned vector representation for the facet i,i≤li, i\leq li,il

关于每个时刻t输入的是用户的一句完整的话得到一个特定的facet概率分布吗???还是每个时刻t输入用户的一句话的一个单词????

在当前时刻,如果有的facet分布还没有得到,应该怎么计算???

论文中对每一个facet都训练一个LSTM,计算其概率分布

? 3.3 recommender system

使用sts_tst?, umu_mum?(user information), ini_nin?(item information)训练recommender

使用了FM,因为结合不同的特征值 FM不太清楚

假设在数据集中有M个用户,N个item。user/item向量是 1-hot编码的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DWWcvaqe-1585840097528)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402180756204.png)]

输出ym,ny_{m,n}ym,n?可以看作是rating score for the explicit feedback or a 0-1 scalar for the implicit feedback.

关于rating prediction使用最小化真实的rating score和预测的rating score之间的L2lossL_2 lossL2?loss,使用随机梯度下降。

在进行推荐时,操作没太看懂。

看懂了后边一部分:选择μ\muμ个最有可能的combinations(这个是啥,前边的介绍没太看懂),使用它们的facet values在数据集中检索对应的item,得到一个候选集。然后使用训练好的模型计算它们的rating score重新排序。

关于那个combination的介绍没太看懂,然后这个combination的选择是怎么选出来的不太清楚????感觉是belief tracker得到的那个状态,不过怎么选择不太清楚

? 3.4 Deep policy network

使用dialogue state 进行action的选择。

使用policy gradient method,which can learn a policy directly, without consulting the value functions[22]. 不太会这个

? The reinforcement learning has the basic components of state S,action A,reward R and policy π(a|s).

State: st=f1?f2...?fls_t=f_1\oplus f_2...\oplus f_lst?=f1??f2?...?fl?

**Action:**主要分为两类:1.请求一个facet的value

? 每一个facet都被进一步分为lll个actions:{ a1,a2,...,ala_1,a_2,...,a_la1?,a2?,...,al?}

? 2.做一个个性化的推荐areca_{rec}arec?:调用上边提到的推荐系统

Reward: We model the recommendation reward in different ways,which will be introduced in section 4.3.

policy:模型尝试学习的目标。

? π(ata_tat?|sts_tst? )代表分数或者在状态sts_tst?下采取动作ata_tat?的可能性

? 使用两个全连接层,每层之间有一个RELU激活函数。输出被传送到一个softmax层。

? 网络的目的是最大化从开始状态的reward:

?															[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lVaQKGAg-1585840097530)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402185107813.png)]

梯度:使用了[28]的算法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xjdHbWh-1585840097532)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402185215439.png)]

不会这个梯度的计算

提到$\theta $不能随机初始化,不然会很难训练

4. Experimental setup

进行了线下模拟用户的实验和线上真实用户的实验。

4.1 Dataset

4.2 User Simulation

4.3 Recommendation Rewards

4.4 User Utterance Collection

4.5 Baselines

4.6 Evaluation Methodology

4.7 Model Training


  • 4.1 Dataset

使用的 yelp challenge recommendation dataset 关于餐馆和食物的数据集:https://www.yelp.com/dataset/challenge

把低于五个评论的删掉。共有五个facet。具体情况如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yoa0F3a4-1585840097534)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402190314833.png)]

  • 4.2 User Simulation

对话系统强化学习的环境很难预先定义,因为其关于真实的用户给出的反馈。如果参数的初始话很糟糕,那么可能最终的表现也不好。

为了克服这一问题,使用simulated user来预训练。(在这之前在其他文章中出现过这个方法,所以可能比较成熟了已经)。

The goal of the simulated user is to chat with the conversational system to find the target item。

simulated user的流程:先将target item的facet value值告诉agent,当agent给出推荐时,在list中查找target item。

一个user有以下三种行为:1.用自然语言回答用户的问题。2.在agent给出的list中找到目标项(成功或失败)。3.离开对话(对话过长,推荐的list中没有目标项,目标项的分数过低)

在训练时user给出reward:rqr_qrq? :negative reward 当用户放弃对话

rpr_prp? :positive reward 当用户在推荐中成功找到target

rcr_crc?:small negative reward每一轮对话,避免对话轮数太长

关于用户具体最多多少轮数推出没有说明

算法1说明了这一过程

  • 4.3 Recommendation Rewards

用户查看推荐的list的方法各式各样,给出了几种不同的success reward $r_p $,C是当推荐的第一个是target时能得到的最多reward。K是查看列表项个数的阈值

Linear $r_p :::r_p=\frac{C*(K- \tau +1)}{K}$

其中τ<K\tau<Kτ<K时,τ\tauτ是target的排名;当大于时,表明失败。

NDCG$r_p $: When computing the NDCG,we use a binary relevance score.So rp=C?NDCG@Kr_p =C ?NDCG@Krp?=C?NDCG@K

Cascade $r_p $:based on the cascade model==[4]==

用户每次有prp_rpr?的概率继续看下一页的推荐,有1-prp_rpr?的概率停止。其中看下一页的概率指数衰减(α1\alpha_1α1?)。同时得到的reward也指数衰减(α2\alpha_2α2?)。其中指数均大于0小于1.

? rp=C?α2ρ?1r_p=C*\alpha_2^{\rho -1}rp?=C?α2ρ?1?ρ≤[K/k]\rho \leq [K/k]ρ[K/k])这里设置k=3k=3k=3

  • 4.4 User Utterance Collection

因为yelp的数据集不包含对话utterance,所以论文人工收集了385个会话,再通过会话的模板生成了875721个会话对应于yelp数据集的user-item pairs

  • 4.5 Baselines

use a Maximum Entropy rule based method as the baseline

对于每一个未知的facet都计算entropy,选择一个最大的值进行询问,知道没有item符合当前对话的belief或者所以的facet 都已知或对话轮数超过了阈值(但文章没说是多少轮数设置为7

MaxEnt Full : for the one that asking all the facets

MaxEnt @K : for ones that asking exactly K facets.

  • 4.6 Evaluation Methodology

Average Reward

Success Rate

Average of Turns

Wrong Quit Rate:由于belief tracker的错误,target不在推荐的候选list中

Low Rank Rate

  • 4.7 Model Training

关于模型的训练和各种参数的设置

5. experiment result

  • 5.1 Offline Experiments
  • 5.2 Online User Study

  • 5.1 Offline Experiments

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MtoG8JgD-1585840097536)(C:\Users\17806\AppData\Roaming\Typora\typora-user-images\image-20200402224601445.png)]

    上边的表采用的linear 的rpr_prp?计算方法。可以看到CRM相比于baseline可以在较少的轮数里实现较高的成功率。在文中指出由于belief tracker 的不完美,减少和belief tracker的交互次数,调用的越多约有可能出错。

    文中还尝试不使用状态向量$s_t $,没有给出结果,直接说发现状态向量可以帮助推荐候选集的选择,但却对促进FM模型没作用后半段不太懂(we find that $ s_t $ contributes to the candidate selection step in recommendation, however it does not seem to boost the FM model.)

    改变reward rpr_prp?的计算方法,下表放出关于NDCG$r_p $,Cascade $r_p $的结果
    在这里插入图片描述

    可以看到linear的方法得到的模型表现要比另外两个好,文章中说是因为这两个reward的计算方法随着排名的下降是非线性减少的。

    belief tracker的正确率对模型的影响:
    在这里插入图片描述

    由上图可以看到belief tracker的正确率影响着强化学习模型的鲁棒性,与平均奖励和成功率成正相关的关系。对话的轮数影响不是很明显。

    关于 the Maximum Success Reward C and the Recommendation List Stop Threshold也即环境对模型的影响:
    在这里插入图片描述

  • 5.2 Online User Study

文中提到理想的线上评测用户:The ideal users would be those yelp user who have actually visited a number of restaurants and would like to chat with our agent to inform her current interest of a target

但这个条件十分难达成,所以采用了一种方法:

从test数据集中sample一批target restaurant,包含 user id, a restaurant id, and the facets of this restaurant。然后从train数据集中根据user id检索出他曾经去过的restaurant 的列表。把这个列表当作历史信息,让参与评估的工作人员被要求根据这个列表学习对应用户的偏好,模拟那个用户;然后给工作人员目标餐馆的facet value,但不知道目标餐馆,让工作人员从agent推荐的list中选择他认为对的target(可以选三个)。如果正确,则成功;否则失败。

下面是评估结果:
在这里插入图片描述

  相关解决方案