kmeans matlab 离散度_强化学习系列三——如何处理大规模离散动作空间

在深度学习大潮之后,搜索推荐等领域模型该如何升级迭代呢?强化学习在游戏等领域大放异彩,那是否可将强化学习应用到搜索推荐领域呢?推荐搜索问题往往也可看作是序列决策的问题,引入强化学习的思想来实现长期回报最大的想法也是很自然的,事实上在工业界已有相关探索。因此后面将会写一个系列来介绍近期强化学习在搜索推荐业务上的应用。
本次将介绍两篇 解决强化学习中大规模离散动作空间的论文。
第一篇是DeepMind在2015年发表的,题目为 Deep Reinforcement Learning in Large Discrete Action Space,链接为 https:// arxiv.org/abs/1512.0767 9 ,适合精读;
第二篇是发表在AAAI2019上,题目为 Large-scale Interactive Recommendation with Tree-structured Policy Gradient,链接为 https:// arxiv.org/abs/1811.0586 9 ,适合泛读。

一、Introduction

传统的推荐模型在建模时只考虑单次推荐,那是否可以考虑连续推荐形成的序列来改善推荐策略呢?事实上已经有一些工作引入强化学习来对推荐过程进行建模。但有个问题就是推荐场景涉及的item数目往往非常高,大规模离散动作空间会使得一些RL方法无法有效应用。比如基于DQN的方法在学习策略时使用

,其中A表示item集合,对A中所有item均要计算一次Q函数。如果|A|非常大的话从时间开销上来讲无法接受。但这个方法有个优点就是Q函数往往在动作上有较好的泛化性。而基于actor-critic的方法中actor网络往往类似一个分类器,输出经过softmax后是动作上的概率分布,所以就避免了DQN类方法中的性能问题,但是这类方法缺点就是对未出现过的action泛化能力并不好。所以就需要寻找一种针对动作空间来说复杂度为次线性而且在动作空间上能较好泛化的方法。

二、Wolpertinger Architecture

该算法是第一篇论文提出来的,整体流程如下。

ee87bb123f3e587f315ce9f7f5862803.png
Wolpertinger Architecture

整个算法基于actor-critic框架,通过DDPG来训练参数,这里只介绍文章的重点部分即action的选择。算法先经过

得到proto-action
,但
可能并不是一个有效的action,也就是说
。然后从A中找到k个和
最相似的action,表示为
,该步可在
对数时间内得到近似解,属于次线性复杂度,避免了时间复杂度过高的问题。但是有些Q值低的action可能也恰好出现在
的周围,所以直接选择一个和
最接近的action并不是很理想的做法。为了避免选出异常的action,需要通过action对应的Q值再进行一次修正,表示为
,其中涉及的参数
包括action产生过程的
和critic网络的
。通过Q值的筛选可使得算法在action选择上更加鲁棒。

三、TPGR模型

该算法是第二篇论文提出来的,主要思路是对item集合先预处理聚类从而解决效率问题,模型框架图如下。左半部分展示了一个平衡的树结构,整颗树对应着将item全集进行层次聚类的结果,每个根节点对应一个具体的item。右半部分展示了如何基于树结构进行决策,具体来说每个非叶节点对应一个策略网络,从根节点到叶子节点的路径中使用多个策略网络分别进行决策。TPGR模型可使决策的复杂度从

降低到
,其中d表示树的深度。下面分别介绍下左右两部分。

057adceeacfed163a12139f164bb342a.png
TPGR模型框架图
  • 平衡的层次聚类

这步目的是将item全集进行层次聚类,聚类结果可通过树结构进行表示。文中强调这里是平衡的树结构,也就是说子树高度差小于等于1,而且子树均符合平衡性质。设树的深度为d,除去叶子节点的父节点外其他中间节点的子树数均为c,可以得到d、c和item数目|A|的关系如下

涉及如何表示item和如何进行聚类两个问题。第一个问题,可以使用评分矩阵、基于矩阵分解方法得到的隐向量等方法作为item的表示。而第二个问题,文章提出了两种方法。篇幅有限,只介绍基于Kmeans改进的方法,具体来说:先进行正常的Kmeans聚类得到的簇中心(c个),然后遍历所有簇,以欧几里得距离作为相似度指标将和簇中心最近的item加到当前簇中,遍历所有簇一遍后继续循环遍历所有簇,直到将所有item都进行了分配为止。通过这种分配的方式可使得最后每个簇的item数目基本一致,也就达到了平衡的要求。

  • 基于树结构的策略网络

之前提到,每个非叶节点均对应一个策略网络。其输入是当前节点对应的状态,输出则是每个子节点上的概率分布,也就是移动到每个子节点的概率。在上面的框架图中,根节点为

,根据其策略网络输出的概率移动到
,以此类推,最后到
,将
推荐给user。策略网络具体采用REINFORCE算法,梯度更新公式为
,其中
表示
策略下状态s采取动作a的期望累积回报,可通过采用抽样来进行估计。

三、总结

  • 一般推荐系统中会有召回步骤将候选的item范围缩小到几十到几百量级,所以从这个角度来看处理大规模离散动作的必要性就不那么大了。
  • TPGR模型中平衡树和子树数目限制只是为了使时间复杂度保证是对数量级,也就是解决大规模离散动作空间的前提。而item分布都会有倾斜的情况,所以实际情况下将所有item集合聚类成数目基本一致的多个簇在实际情况下并不合理。这点肯定会影响到模型效果,所以树的构建可能还需要更多的探索和尝试。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值