使用基于图形的深度强化学习来玩文本冒险游戏
摘要
基于文本的冒险游戏提供了一个平台,在组合行动空间(如自然语言)的背景下探索强化学习。我们提出了一个深度强化学习架构,将游戏状态表示为探索过程中学习的知识图。此图用于修剪操作空间,使探索更有效。采取哪种行动的问题可以简化为一个回答问题的任务,这是一种预先训练我们架构的某些部分的迁移学习形式。在使用TextWorld框架的实验中,我们表明,我们提出的技术可以比基线替代方法更快地学习控制策略。我们还在https://github.com/rajammanabrolu/KGDQN上开放了我们的代码。
1.介绍
自然语言交流可以用来影响现实世界的变化。在文本冒险游戏中,玩家必须通过文本描述理解世界,并通过自然语言声明行动,这可以为玩家走向更真实的环境提供一个跳板,在这种环境中,代理必须通过交流来理解世界的状态,并间接影响世界的变化。文本冒险游戏对于开发和测试强化学习算法也很有用,这些算法必须处理世界的部分可观察性(Narasimhan等人,2015;He et al., 2016)。
在文本冒险游戏中,代理会收到关于当前世界状态的不完整文本描述。根据这些信息以及之前与游戏世界的互动,玩家必须决定下一个最佳行动以实现某些任务或目标。然后,玩家必须编写他们打算采取的行动的文本描述,并接收行动效果的文本反馈。形式上,基于文本的游戏是一个部分可观察的马尔可夫决策过程(POMDP),表示为的7元组,分别表示环境状态集、状态之间的条件转移概率、用于组成文本命令的单词、观察结果、观察条件概率、奖励函数和折扣因子(Cˆoté等,2018)。
在基于文本的游戏中,代理永远无法接触到真正的潜在世界状态,只能基于文本观察判断如何在世界中行动。此外,代理的操作必须通过自然语言命令来表达,以确保操作空间组合起来比较大。因此,基于文本的游戏所面临的挑战与传统电子游戏不同。基于文本的游戏需要更好地理解之前的背景,从而能够更有效地探索状态-行动空间。历史证明,这类游戏对于AI来说很难玩,像《Zork》这样更复杂的变体仍然是现有方法无法触及的。
我们将介绍基于文本的游戏玩法的三个贡献,以处理组合大的状态和行动空间。首先,我们展示了以知识图形式表示的状态,使我们能够有效地修剪动作空间。知识图以有向图的形式捕获实体之间的关系。随着时间的推移,知识图谱提供了对世界的持久记忆,并使代理能够事先知道在游戏的特定阶段不应该采取什么行动。
我们的第二个贡献是一个深度强化学习架构,知识图DQN (KG-DQN),它有效地使用这种状态表示来估计状态-动作对的q值。这种架构利用了图嵌入和注意力技术的最新进展(Guan等人,2018;V eliˇckovi´c et al., 2018),以了解在给定输入状态描述的情况下,除了具有允许自然语言动作输入的机制外,还应该注意图的哪些部分。最后,我们采取初步步骤将POMDP框架为一个问答(QA)问题,其中知识图谱不仅可以用来修剪行动,而且可以回答什么行动是最合适的问题。先前的研究表明,许多NLP任务可以被框架为回答问题的实例,我们可以在这些任务之间转移知识(McCann等人,2017)。我们展示了如何使用现有的QA方法对KG-DQN网络的某些部分进行预先训练,以提高性能,并允许从不同游戏中传递知识。
我们提供了烧蚀实验的结果,比较我们的基于知识图的方法方法强基线。结果表明,将知识图加入到强化学习代理中,收敛到最高奖励的速度比最佳基线快40%以上。通过使用提问回答范式的预训练,我们实现了这种快速的收敛速度,同时也实现了高质量的任务解决方案,衡量所需的步骤的数量,以完成任务。
2.相关工作
越来越多的研究已经探索了与文本游戏相关的挑战,试图通过使用LSTM编码观察结果来解决基于解析器的文本游戏。然后,动作评分网络使用这个编码向量,该网络确定动作动词和每个相应参数对象的分数。然后对这两个分数取平均值,以确定状态-动作对的q值。He等人(2016)提出了深度强化关联网络(DRRN),它使用两个独立的深度神经网络来编码状态和动作。状态-动作对的q值由两个编码表示之间的成对交互函数计算。这两种方法都不基于之前的观察结果,所以在处理部分可观察到的复杂游戏时处于劣势。此外,这两种方法都没有削减动作空间,因此最终浪费了探索可能具有低q值的状态-动作对的试验,可能导致组合大动作空间的收敛时间变慢。
Haroush等人(2018)引入了动作消除网络(AEN),该网络试图利用模拟器的反馈,将每个状态中的动作限制为最可能的前k个。网络会在特定状态下学习哪些动作不应该被执行。他们的工作表明,减少行动空间的大小允许更有效的探索,导致更好的表现。他们的网络也不以之前的观察为条件。
知识图表已经被证明可以在文本冒险游戏之外的其他领域提高自然语言理解能力。例如,Guan等人(2018)使用常识知识图,如ConceptNet (Speer和Havasi, 2012),显著提高了神经网络预测故事结局的能力。他们使用概念网(ConceptNet)和图表注意力(V eliˇckovi´c et al., 2018)中的特征,以知识上下文向量的形式表示图表。我们选择的状态表示以及我们的行动方法是建立在现有方法的优势基础上,同时避免了无效探索和缺乏长期背景的缺点。
3.知识图谱DQN
在本节中,我们将介绍我们的知识图表示、动作剪枝和深度Qnetwork架构。
图1:给出两个观察结果的图状态更新示例
3.1知识图表示
在我们的方法中,我们的代理学习一个知识图,存储为一组RDF三元组,即主体、关系、对象的三元组。这些三元组使用斯坦福大学的开放信息抽取(OpenIE)从观察中提取(Angeli et al., 2015)。OpenIE并没有优化文本冒险游戏的规律,从典型的描述性文本结构中可以推断出许多关系。例如,从一个短语,如“有一个出口到北方”,人们可以推断出当前的位置和出口的方向之间有关系。这些附加规则填写了OpenIE没有提供的信息。由此产生的知识图谱实质上相当于游戏世界的心理地图。
知识图在每个代理操作之后都会更新(参见图1)。更新规则的定义是,图中有提供短期和长期上下文的部分。一个特殊的节点(指定为“you”)表示代理,除了表示代理库存的关系之外,该节点的关系在每次操作后都会更新。其他关系在每次行动后都持续。我们打算将更新规则应用于不同领域的基于文本的游戏,所以只手工制作了一套我们认为普遍适用的最小规则。它们是:
将当前房间类型(如“地下室”、“房间”)与房间中找到的物品联系起来,并使用“有”的关系,如(Hchamber, has, bed stand)
提取出入口信息,并将其与当前房间连接,例如(地下室,有,北出口)
生成的所有其他RDF三元组都来自OpenIE。
3.2行动修剪
文本冒险游戏中的代理可以使用的行动数量相当大:a = O(|V | × |O|2),其中V是行动动词的数量,O是世界中代理可以与之互动的不同对象的数量,假设动词可以有两个参数。有些行为,如移动、检查库存或观察房间,没有争论。
知识图用于修剪agent可用的组合大空间的可能操作,如下所示。给定当前状态图表示Gt,通过对全部动作集合排序并选择top-k来修剪动作空间。我们的动作评分函数是
- +1表示图形中出现的动作中的每个对象
- 如果图中两个对象之间存在有效的有向路径,则+1
我们假设每个动作最多有两个对象(例如,将钥匙插入锁中)
3.3模型架构和训练
图2:KG-DQN架构,蓝色阴影表示可以预训练的组件,红色表示没有预训练。实线表示可学习组件的梯度流动。
在Narasimhan等人(2015)之后,所有被游戏解析器接受的动作A在任何时候都对代理可用。在进行游戏时,代理选择一个动作并接收来自模拟器的观察结果,该观察结果是对当前游戏状态的文本描述。状态图Gt根据给定的观察结果进行更新,如3.1节所述。
其中γ为折现因子,rt+1为观察到的奖励。因此,策略是在特定状态下采取使q值最大化的行动,这将对应于使奖励期望最大化的行动,假设代理在当前状态st采取了行动,并在之后遵循策略π(a|s)。
图2中的架构负责计算状态st和动作a(i)∈a的表示,并对特定状态和动作的q值进行估计。在正向激活过程中,agent使用观察数据根据3.2节的规则更新图Gt。
然后,图被嵌入到单个矢量gt中。我们使用带有类似于上述注意机制的图注意(graph Attention)。形式上,多头图关注组件接收一组节点特征H =,其中N为节点数,F为每个节点中的特征数,以及Gt的邻接矩阵。每个节点特征由该节点中令牌的平均词嵌入组成,由上一图嵌入层确定。注意机制是通过对所有节点特征进行可学习的线性变换后,利用节点上的自我注意建立的
其中p∈I R2F是可学习参数。然后,通过使用softmax函数对k∈N的选择进行归一化,计算注意系数αij。这里N指的是我们计算注意系数的邻域。它由Gt的邻接矩阵决定,由特定节点的所有三阶邻居组成。
然后使用多头注意,计算多个独立注意系数。然后将得到的特征连接并传递到一个线性层以确定gt:
同时,利用滑动双向LSTM (SB-LSTM)对观测结果进行编码表示。最终状态表示st的计算公式为:
根据之前描述的机制,使用最新更新的Gt+1,对每个a∈A进行打分,从而修剪整个可能动作集A。然后,我们使用LSTM编码器嵌入和编码所有这些动作字符串(Sutskever等人,2014)。图2中的虚线表示不可微过程。
状态-动作对的最后一个q值是:
这种分别计算状态和动作表示的方法类似于DRRN中采取的方法(He et al., 2016)。
我们使用经验回放和优先抽样以及改进的?-贪婪算法(Sutton和Barto, 2018)来训练网络,我们称之为。体验重放策略在游戏中找到路径,然后将这些路径作为转换元组存储在体验重放缓冲区D中。通过从概率为?1的a和概率为?2的At中随机选择行动进行探索。第二个阈值用于解释agent在Gt中没有优先级的情况下,必须选择一个动作来推进任务。也就是说,动作修剪可能会删除任务完成所必需的动作,因为这些动作涉及到以前从未遇到过的实体的组合。
然后,我们采样了一小批转换元组,由D,计算时差损失为:
从D的重放抽样是通过从跃迁元组中抽样一个带有正奖励的分式ρ和从其余分式1−ρ来完成的。正如(Narasimhan et al., 2015)所示,从具有积极奖励的体验中进行优先抽样,有助于深度q网络更容易找到推动游戏的稀疏过渡集。具体的训练机制在算法1中描述
4.游戏玩法是问题的回答
先前的研究表明,许多NLP任务可以被框架为回答问题的实例,在这样做的过程中,人们可以在这些任务之间转移知识(McCann等人,2017)。从抽象意义上来说,玩文本冒险游戏的代理可以被认为是在不断地问“在这种情况下执行什么是正确的行动?”经过适当的训练,代理可以自己回答这个问题,并选择一个好的下一步行动来执行。将问题视为问题回答并不会取代文本冒险游戏中的探索需求。然而,我们假设这将减少测试期间所需的探索量,从理论上讲让它能够更快地完成任务;文本冒险游戏的一大挑战在于,任务是谜题,即使经过训练,执行策略也需要大量探索。
为了教代理回答这样的问题:在观察的情况下,采取什么行动是最好的,我们使用离线的、训练前的方法。训练前方法的数据是使用一个能够以尽可能少的步骤完美完成游戏的代理生成的。具体来说,agent清楚地知道在给定状态观察的情况下采取什么行动,以便以最优的方式推进游戏。通过这个过程,我们生成了一组由状态观察和行为组成的痕迹,这样状态观察就为“应该采取什么行动”这一隐含问题提供了上下文。神谕师的正确行动就是答案。然后,我们使用DrQA (Chen等人,2017)问答技术来训练成对的问题编码器和答案编码器,它们一起从问题(文本观察)预测答案(动作)。然后使用DrQA系统中文档编码器中SB-LSTM的权重来初始化SB-LSTM的权重。类似地,图和LSTM动作编码器的嵌入层都使用同一文档编码器的嵌入层的权值初始化。由于DrQA嵌入层是用GloVe初始化的,我们正在转换在QA体系结构培训期间调优的单词嵌入。
用于训练回答问题的游戏轨迹来自一套相同领域的游戏,但具有不同的环境和不同任务的具体配置。我们使用TextWorld框架(Cˆoté等人,2018),它使用语法生成随机的世界和任务。房间的类型是相同的,但它们的相对空间配置、物品类型以及完成任务所需的特定行动顺序每次都是不同的。这意味着代理不能简单地记住任务。为了让培训前的工作顺利进行,代理必须培养出一种通用的回答问题的能力,以适应新的任务。因此,我们在文本冒险游戏中回答问题的方法代表了迁移学习的一种形式。
5.实验
我们在TextWorld框架(Cˆoté等人,2018)中使用他们的“家”主题进行实验。TextWorld使用语法随机生成带有给定参数的游戏世界和任务。使用TextWorld生成的游戏从第0个观察点开始,即给予任务指示;我们不允许我们的代理访问这些信息。TextWorld API还提供了每个状态下可接受的操作列表——基于当前的对象可以执行的操作。我们不允许我们的探员接触可采纳的行动。
我们生成了两组带有不同随机种子的游戏,代表了不同的游戏难度,我们将其区分为大小。小型游戏有10个房间和5个任务长度,大型游戏有20个房间和10个任务长度。游戏的统计数据如表1所示。任务长度是指agent为了完成任务而需要执行的操作数量;在环境中移动和查找需要交互的对象通常需要更多的操作。分支因素是特定游戏的行动集合A的大小。
TextWorld提供的奖励函数如下:每执行一个行动,使代理更接近完成任务,奖励+1;-1用于扩展当前阶段完成任务所需的最小步数的每个行动;其他情况都是0。小型和大型游戏的最大可实现奖励分别是5和10。这允许任务质量的大量变化——通过完成任务的步骤来衡量——获得最大的奖励。
下面的训练前程序分别针对每组游戏进行。通过从同一个TextWorld主题生成200个游戏,对问答架构内的SB-LSTM进行预训练。然后QA系统根据随机选择的160款生成游戏的通关数据进行训练,调整20款游戏的开发集,并根据这20款游戏进行评估。表2提供了QA系统在训练小游戏和大游戏后的精确匹配(EM)、精确度、召回和F1分数的详细信息。Precision、recall和F1分数是通过计算预测答案和地面真相之间的标记数来计算的。精确匹配是指整个预测答案与基础事实相匹配。这个分数用于基于游戏开发集调整模型。
在游戏测试集中随机选择一个游戏作为agent进行深度q网络训练的环境。因此,在KG-DQN网络训练之前,QA系统从未看到最终的测试游戏。
我们将我们的技术与三个基线进行比较:
随机命令,它从TextWorld模拟器在每一步返回的可接受动作列表中采样。
Bag-of-Words DQN,它使用带有多层前馈网络的词袋编码,而不是LSTM。
我们测试了三个版本的KG-DQN:
我们的模型使用50维单词嵌入,2个头部在图的注意层,小批大小为16,并执行梯度下降更新每5步代理。
所有模型都是通过观察(a)奖励收敛时间和(b) agent完成游戏所需的平均步骤数来评估的。=训练完成后5次以上0.1次。跟随Narasimhan等人(2015),我们设置?这是非零值,因为文本冒险游戏本质上需要探索才能完成任务。所有结果报告基于多个独立的试验。对于大型游戏,我们只对小型游戏中表现最好的模型进行实验。还需要注意的是,对于大型游戏的实验,我们并没有显示LSTM-DQN基线的整个学习曲线,因为它的收敛速度明显慢于KG-DQN。我们将每个实验进行5次,并将结果取平均值。
此外,人类在这两款游戏中的表现都是通过计算完成游戏所采取的步骤数来衡量的,不管是否有明确的任务指示。我们修改了Textworld,以分数的形式给予人类玩家奖励反馈,奖励函数本身与深度强化学习代理接收到的相同。在这个实验的一个变体中,除了分数形式的奖励外,人类会被告知完成游戏所需的潜在步骤顺序,而在另一个变体中,人类没有得到任何指示。
6.结果与讨论
回想一下,对于oracle代理,完成游戏所需的步骤数分别为5步和10步(对于小型和大型地图)。由于任务结构的原因,我们不可能实现这种理想的表现。玩家需要与物体进行互动并探索环境,以便明确完成任务所需的确切行动顺序。为了帮助衡量我们的代理的表现,我们观察到与研究无关的人在玩与其他模型相同的TextWorld“家庭”任务。那些没有得到如何完成任务的指示的人从来没有完成过一个任务,他们在小地图上平均走184步,在大地图上平均走190步后就放弃了。在得到指示后,人类玩家平均只需23步就能完成大地图上的任务,并以最大的奖励完成游戏。还要注意,深度强化学习主体中没有一个接受指令。
在小型和大型地图上,所有被测试的KG-DQN版本的收敛速度都快于基线(小型游戏见图3,大型游戏见图4)。我们没有展示BOW-DQN,因为它在所有情况下都严格劣于LSTM-DQN)。KG-DQN在小游戏上的收敛速度比基线快40%;KG-DQN和LSTM-DQN基线均达到最大奖励5。在大型游戏中,没有agent获得10的最大奖励,LSTM-DQN需要超过300集才能收敛到与KG-DQN相同的水平。由于所有版本的KG-DQN以近似相同的速率收敛,我们得出结论:持久性记忆——是帮助收敛时间的主要因素,因为它是所有实验的共同元素。
图3:小游戏实验的奖励学习曲线 图4:在大型游戏中选择实验的奖励学习曲线
训练完成后,我们测量每个agent完成每个任务所需的步数。完全KG-DQN在小博弈(表3)和大博弈(表4)中需要相同的步数。LSTM-DQN和完全KG-DQN之间的差异在统计上不显著,在独立的Ttest p = 0.199。未修剪的KG-DQN和未预先训练的KG-DQN需要更多的步骤来完成任务。TextWorld的奖励功能允许玩家在不受惩罚的情况下对环境进行大量探索,因此,将奖励集中在5个步骤或数百个步骤中完成任务的模式是可能的。从这些结果中,我们得出结论,使用我们的提问回答范式的训练前允许代理找到如何选择好的行动的一般理解,即使代理从来没有看到最后的测试游戏。LSTM- dqn也学习如何有效地选择动作,但这些知识是在LSTM的细胞状态中获取的,而KG-DQN的知识是在知识图中明确的,并通过图注意力有效地检索。总之,KG-DQN在不损失任务解质量的情况下收敛更快。
表3:完成小游戏的平均步骤数(和标准差)。 表4:完成大型游戏的平均步骤数(和标准差)。
7.结论
我们已经证明,将知识图整合到深度q网络中可以减少agent玩各种长度的文本冒险游戏的训练时间。我们推测这是因为知识图谱在探索世界的过程中提供了关于世界的持久记忆。虽然知识图谱允许代理更快地获得最佳奖励,但它不能确保任务的高质量解决方案。利用知识图进行动作修剪,并对深度q网络中使用的嵌入进行预训练,从而缩短完成任务所需的动作序列。
对代理架构的训练前部分的洞察是基于将文本冒险游戏玩法转换为问答活动。也就是说,在每一步,代理都在问——并试图回答——什么是最重要的尝试。训练前作为一种形式的迁移学习,从不同的,但相关的游戏。然而,单靠问题回答并不能解决文本冒险游戏的问题,因为游戏中总是需要进行一些尝试和错误.
通过解决部分可观察性的挑战,结合大动作,通过持久记忆的空间,我们在玩文本冒险游戏的工作解决了强化语言学习的关键需求。文本冒险游戏可以被视为通向更复杂的现实世界任务的垫脚石;人类的世界是一个通过交流来局部理解的世界,是一个用语言行动的世界.