《深度学习推荐系统》笔记(3)

目录

4 Embedding技术在推荐系统中的应用

4.1 什么是Embedding

4.2 Word2vec——经典的Embedding方法

4.3 Item2vec——Word2vec在推荐系统领域的推广

4.4 Graph Embedding——引入更多结构信息的图嵌入技术

DeepWalk——基础的Graph Embedding方法

Node2vec——同质性和结构性的权衡

EGES——阿里巴巴的综合性Graph Embedding方法

4.5 Embedding与深度学习推荐系统的结合

4.6 局部敏感哈希——让Embedding插上翅膀的快速搜索方法

5 多角度审视推荐系统

5.1 推荐系统的特征工程

5.2 推荐系统召回层的主要策略

5.3 推荐系统的实时性

5.4 如何合理设定推荐系统中的优化目标

5.5 推荐系统中比模型结构更重要的是什么

5.6 冷启动的解决办法

5.7 探索与利用


4 Embedding技术在推荐系统中的应用

4.1 什么是Embedding

        形式上讲,Embedding就是用一个低维稠密的向量“表示”一个对象(object),其中“表示”可以理解为Embedding向量能够表达相应对象的某些特征,同时向量之间的距离反映了对象之间的相似性。

        Embedding技术对于深度学习推荐系统的重要性:(1) 推荐场景中大量使用one-hot编码,导致样本特征向量极度稀疏,而深度学习不利于处理稀疏向量。(2) Embedding本身就是极其重要的特征向量。(3) Embedding对物品、用户相似度的计算是常用的推荐系统召回层技术。

4.2 Word2vec——经典的Embedding方法

什么是Word2vec:

        Word2vec是一个生成对“词”的向量表达的模型。为了训练Word2vec模型,需要准备由一组句子组成的语料库。假设其中一个句子为w_1,\cdots,w_T,假定每个词都是由相邻的词决定的(CBOW模型的主要原理),或者每个词都决定了相邻的词(Skip-gram模型的主要原理)。CBOW模型的输入是w_t周边的词,预测的输出是w_t,而Skip-gram则相反。本节以Skip-gram为框架讲解Word2vec模型的细节。

Word2vec模型的训练过程:

        选取一个长度为2c+1(目标词前后各选c个词)的滑动窗口,由左至右滑动,每移动一次,窗口中的词组就形成了一个训练样本。基于最大似然估计的方法,希望所有样本的条件概率p(w_{t+j} \vert w_t)之积最大,因此,定义目标函数如下:

\frac{1}{T}\sum_{t=1}^T\sum_{-c \le j \le c,\; j \ne 0} \log \, p(w_{t+j} \vert w_t)

        接下来的核心问题是如何定义p(w_{t+j} \vert w_t)。作为一个多分类问题,最直接的方法是使用softmax函数;此外,Word2vec希望用一个向量\boldsymbol{v}_w表示词w,用词之间的内积距离表示语义的接近距离,于是定义条件概率为:

p(w_O \vert w_I)=\frac{\exp({\boldsymbol{V}'_{w_o}}^\top\boldsymbol{V}_{w_I})}{\sum_{w=1}^W \exp({\boldsymbol{V}'_w}^\top\boldsymbol{V}_{w_I})}

        其中,w_O代表w_{t+j},被称为输出词;w_I代表w_t,被称为输入词。

        Word2vec的神经网络结构图如上所示。注意Word2vec用w_t预测w_{t+j},但其实二者的向量表达并不在一个向量空间内。在条件概率公式中,\boldsymbol{V}_{w_O}\boldsymbol{V}_{w_I}分别是词w的输出向量表达和输入向量表达。输入向量表达就是输入层到隐层的权重矩阵\boldsymbol{W}_{V \times N},而输出向量表达就是隐层到输出层的权重矩阵\boldsymbol{W}'_{N \times V}。在获得输入向量矩阵\boldsymbol{W}_{V \times N}后,其中每一行对应的权重向量就是通常意义上的“词向量”。

Word2vec的“负采样”训练方法:

        为了减轻Word2vec的训练负担,往往采用负采样(Negative Sampling)的方法进行训练。相比原来需要计算所有字典中所有词的预测误差,负采样方法只需要对采样出的几个负样本计算预测误差。优化目标如下所示:

E=-\log \, \sigma({\boldsymbol{v}'_{w_O}}^\top \boldsymbol{h})-\sum_{w_j \in W_{\text{neg}}} \log \, \sigma(-{\boldsymbol{v}'_{w_j}}^\top \boldsymbol{h})

        其中,\boldsymbol{v}'_{w_O}是输出词向量(即正样本),\boldsymbol{h}是隐层向量,W_{\text{neg}}是负样本集合,\boldsymbol{v}'_{w_j}是负样本词向量。

4.3 Item2vec——Word2vec在推荐系统领域的推广

Item2vec的基本原理:

        Item2vec生成词Embedding利用的“物品序列”是由特定用户的浏览、购买等行为产生的历史行为记录序列。假设Item2vec中一个用户历史记录为w_1,\cdots,w_k,则优化目标为:

\frac{1}{K}\sum_{i=1}^K\sum_{j \ne i}^K \log \, p(w_j \vert w_i)

        Item2vec与Word2vec唯一的不同在于,Item2vec摒弃了时间窗口的概念,认为序列中任意两个物品都相关。在优化目标定义好之后,Item2vec剩余的训练过程与Word2vec完全一致。

“广义”的Item2vec:

        广义上讲,任何能够生成物品向量的方法都可以称为Item2vec。典型的例子是双塔模型,“物品塔”接收物品相关的特征向量,经过多层神经网络结构,最终生成一个多维的稠密向量。

4.4 Graph Embedding——引入更多结构信息的图嵌入技术

        Word2vec和由其衍生出的Item2vec都是建立在“序列”样本的基础上的。在互联网场景下,数据对象之间更多呈现的是图结构。典型的场景是由用户行为数据生成的物品关系图,以及由属性和实体组成的知识图谱(Knowledge Graph)。在这样的背景下,Graph Embedding成了新的研究方向。

        Graph Embedding是一种对图结构中的节点进行Embedding编码的方法。最终生成的节点Embedding向量一般包含图的结构信息及附近节点的局部相似性信息。

DeepWalk——基础的Graph Embedding方法

        DeepWalk的主要思想是在由物品组成的图结构上进行随机游走,产生大量物品序列,然后将这些物品序列作为训练样本输入Word2vec进行训练,得到物品的Embedding。

        DeepWalk的算法流程如下所示:

        (1) 获得原始的用户行为序列。

        (2) 基于用户行为序列构建物品关系图。可以看出,物品A和物品B之间的边产生的原因是第一个用户先后购买了这两个物品。如果后续产生了多条相同的有向边,则有向边的权重被加强。将所有用户行为序列都转换成物品关系图中的边。

        (3) 采用随机游走的方式随机选择起始点,重新产生物品序列。如果物品关系图是有向有权图,那么从节点v_i跳转到邻接点v_j的概率定义如下:

P(v_j \vert v_i)=\begin{cases} \frac{M_{ij}}{\sum_{j \in N_+(v_i)} M_{ij}},&v_j \in N_+(v_i) \\ 0,&e_{ij} \notin \epsilon \end{cases}

        其中\epsilon是物品关系图中所有边的集合,N_+(v_i)是节点v_i所有的出边集合,M_{ij}是节点v_i到节点v_j边的权重。如果物品关系图是无向无权图,那么权重M_{ij}将为常数1,且N_+(v_i)应是节点v_i所有“边”的集合。

        (4) 将这些物品序列输入Word2vec模型中,生成最终的物品Embedding向量。

Node2vec——同质性和结构性的权衡

        Node2vec模型通过调整随机游走权重的方法使Graph Embedding的结果更倾向于体现网络的同质性(距离相近节点的Embedding应尽量近似)或结构性(结构上相似的节点的Embedding应尽量近似)。在推荐系统中,同质性相同的物品很可能是同品类的商品,而结构性相同的物品则可能是各品类的爆款。为了表达“结构性”,需要让随机游走的过程更倾向于BFS;为了表达“同质性”,需要让随机游走的过程更倾向于DFS,这通过节点间的跳转概率来控制。

        例如,Node2vec算法从节点t跳转到节点v,那么从节点v跳转到下一个节点x的概率为\pi_{vx}=\alpha_{pq}(t,x) \cdot w_{vx},其中w_{vx}是边vx的权重,\alpha_{pq}(t,x)的定义如下:

\alpha_{pq}(t,x)=\begin{cases} \frac{1}{p},&d_{tx}=0 \\ 1,&d_{tx}=1\\ \frac{1}{q},&d_{tx}=2 \end{cases}

        其中,d_{tx}为节点t到节点x的距离;p为返回参数,其值越小,随机游走回节点t的可能性越大,越注重表达网络的结构性;q为进出参数,其值越小,随机游走到远方节点的可能性越大,越注重表达网络的同质性。

EGES——阿里巴巴的综合性Graph Embedding方法

        EGES(Enhanced Graph Embedding with Side Information)的基本思想是在DeepWalk生成的Graph Embedding基础上引入补充信息,从而使“冷启动”的商品获得“合理”的初试Embedding。

        生成Graph Embedding的第一步是生成物品关系图,通过用户行为序列可以生成物品关系图,也可以利用“相同属性”“相同类别”等信息建立物品之间的边,生成基于内容的知识图谱。基于知识图谱生成的物品向量可以被称为补充信息Embedding向量。

        为了融合一个物品的多个Embedding向量,使之形成物品最后的Embedding,对每类特征对应的Embedding向量分别赋予权重a_0,a_1,\cdots,a_n。下图中的隐层表达就是对不同Embedding进行加权平均操作的层,将加权平均后的Embedding向量输入softmax层,通过梯度反向传播,求得每个Embedding的权重a_i

4.5 Embedding与深度学习推荐系统的结合

Embedding与深度学习推荐系统结合的方法:

        (1) 在深度学习网络中作为Embedding层,完成从高维稀疏特征向量到低维稠密特征向量的转换。

        (2) 作为预训练的Embedding特征向量,与其他特征向量连接后,一同输入深度学习网络进行训练。

        (3) 通过计算用户和物品的Embedding相似度,Embedding可以直接作为推荐系统的召回层或者召回策略之一。

4.6 局部敏感哈希——让Embedding插上翅膀的快速搜索方法

“快速”Embedding最近邻搜索:

        传统的Embedding相似度的计算方法是Embedding向量间的内积运算,这就意味着为了筛选某个用户的候选物品,需要对候选集合中的所有物品进行遍历,这对于物品总数动辄达到几百万量级的推荐系统是不可承受的。局部敏感哈希(Locality Sensitive Hashing, LSH)是推荐系统工程实践上主流的快速Embedding向量最近邻搜索方法。

局部敏感哈希的基本原理:

        局部敏感哈希的基本思想是让相邻的点落入同一个“桶”,这样在进行最近邻搜索时,仅需要在一个桶内,或相邻的几个桶内的元素中进行搜索即可

        对于Embedding向量,也可以用内积操作构建局部敏感哈希桶。假设\boldsymbol{v}是高维空间中的k维Embedding向量,\boldsymbol{x}是随机生成的k维映射向量,二者的内积操作可将\boldsymbol{v}映射到一维空间。即使一维空间也会部分保存高维空间的近似距离信息,因此,可以使用如下所示的哈希函数进行分桶:

h^{\boldsymbol{x},b}(\boldsymbol{v})=\lfloor \frac{\boldsymbol{v} \cdot \boldsymbol{x}+b}{w} \rfloor

        其中,w是分桶宽度,b \sim U[0,w]是随机变量,避免分桶边界固化。

        映射操作损失了部分距离信息,如果仅采用一个哈希函数进行分桶,则必然存在相近点误判的情况。有效的解决方法是采用多个哈希函数同时进行分桶。使用几个哈希函数,是用“与”操作还是“或”操作来生成近邻点的候选集,需要在准确率和召回率之间权衡决定。

        局部敏感哈希的方法随距离定义的不同有所不同。例如,如果将余弦相似度作为距离标准,由于余弦相似度衡量的是两个向量间夹角的大小,夹角小的向量即为“近似”,可以使用固定间隔的超平面将向量空间分割成不同哈希桶。但局部敏感哈希通过分桶方式保留部分距离信息,大规模降低近邻点候选集的本质思想是通用的。

5 多角度审视推荐系统

5.1 推荐系统的特征工程

构建推荐系统特征工程的原则:

        特征的本质其实是对某个行为过程相关信息的抽象表达。应尽可能地让特征工程抽取出的一组特征能够保留推荐环境及用户行为过程中的所有有用信息,尽量摒弃冗余信息。

推荐系统中的常用特征:

        (1) 用户行为数据。用户的潜在兴趣、用户对物品的真实评价均包含在用户的行为历史中。用户行为一般分为显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。

        (2) 用户关系数据。如果说用户行为数据是人与物之间的“连接”日志,那么用户关系数据就是人与人之间连接的记录。用户关系数据也可以分为“显性”和“隐性”两种,或者称为“强关系”和“弱关系”。

        (3) 属性、标签类数据。这两类数据本质上都是直接描述用户或者物品的特征。

        (4) 内容类数据。同样是描述物品或用户的数据,但相比标签类特征,内容类数据往往是大段的描述型文字、图片,甚至视频。

        (5) 上下文信息。上下文信息是描述推荐行为产生的场景的信息,包含但不限于时间、地点、季节、月份、是否节假日、天气、空气质量、社会大事件等信息。

        (6) 统计类特征。统计类特征是指通过统计方法计算出的特征,例如历史CTR、历史CVR、物品热门程度、物品流行程度等。

        (7) 组合类特征。组合类特征是指将不同特征进行组合后生成的新特征,例如“年龄+性别”组成的人口属性分段特征(segment)。

常用的特征处理方法:

        对于连续型特征,最常用的处理手段包括归一化、离散化、加非线性函数等方法。归一化的主要目的是统一各特征的量纲;离散化的主要目的是防止连续值带来的过拟合现象及特征值分布不均匀的情况;加非线性函数的目的是更好地捕捉特征与优化目标之间的非线性关系。

        对于类别型特征,最常用的处理方法是进行one-hot或multi-hot编码。这样处理的主要问题是特征向量维度过大且过于稀疏,因此,常用Embedding技术将类别性特征编码成稠密向量。

5.2 推荐系统召回层的主要策略

召回层和排序层的功能特点:

        (1) 召回层:待计算的候选集合大、速度快、模型简单、特征较少,尽量让用户感兴趣的物品在这个阶段能够被快速召回,即保证相关物品的召回率。

        (2) 排序层:首要目标是得到精准的排序结果。需处理的物品数量少,可利用较多特征,使用比较复杂的模型。

多路召回策略:

        所谓“多路召回策略”,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用的策略。例如,信息流应用常用的多路召回策略,包括“热门新闻”“兴趣标签”“协同过滤”“最近流行”“朋友喜欢”等多种召回方法。多路召回策略是在“计算速度”和“召回率”之间进行权衡的结果。

基于Embedding的召回方法:

        利用深度学习网络生成Embedding作为召回层,使用局部敏感哈希进行快速Embedding最近邻计算。基于Embedding的召回方法在效果和速度上均不逊色于多路召回。事实上,多路召回中使用的信息都可以作为Embedding召回方法中的附加信息融合进最终的Embedding向量中。

5.3 推荐系统的实时性

为什么说推荐系统的实时性是重要的:

        (1) 推荐系统的更新速度越快,代表用户最近习惯和爱好的特征更新越快,越能为用户进行更有时效性的推荐。这对应着推荐系统“特征”的实时性。

        (2) 推荐系统更新得越快,模型越容易发现最新流行的数据模式(data pattern),越能让模型快速抓住最新的流行趋势。这对应着推荐系统“模型”的实时性。

推荐系统“特征”的实时性:

        推荐系统特征的实时性指的是“实时”地收集和更新推荐模型的输入特征,使推荐系统总能使用最新的特征进行预测和推荐。

         影响“特征”实时性的三个主要阶段:

        (1) 客户端实时特征。客户端是最接近用户的环节,也是能够实时收集用户会话(session)内行为及所有上下文特征的地方。其优势在于,如果客户端能够缓存session内部的行为并传给推荐服务器,那么推荐模型就能进行实时的推荐。

        (2) 流计算平台的准实时特征处理。所谓流计算平台,是将日志以流的形式进行微批处理(mini batch),常见平台有Storm、Spark Streaming、Flink等。其优势是能够进行一些简单的统计类特征的计算,比如一个物品在该时间窗口内的曝光次数等等。

        (3) 分布式批处理平台的全量特征处理。随着数据最终到达以HDFS为主的分布式存储系统,Spark等分布式批处理计算平台终于能够进行全量特征的计算和抽取。其计算结果的主要用途是:模型训练和离线评估;特征保存入特征数据库,供之后的线上推荐模型使用。

推荐系统“模型”的实时性:

        与“特征”的实时性相比,推荐系统“模型”的实时性往往是从更全局的角度考虑问题。

        (1) 模型的实时性是与训练方式紧密相关的,模型的实时性由弱到强的训练方式分别是全量更新、增量更新和在线学习。

        (2) 提高模型实时性的另一个改进方向是进行模型的局部更新,大致的思路是降低训练效率低的部分的更新频率,提高训练效率高的部分的更新频率。这种做法较多应用在“Embedding层+神经网络”的深度学习模型中。

        (3) 客户端模型实时更新。客户端往往可以保存和更新模型一部分的参数和特征,比如当前用户的Embedding向量,从而可以在客户端通过实时改变用户Embedding的方式完成推荐结果的实时更新。(物品Embedding的更新一般需要全局的数据,因此只能在服务器端进行。)

5.4 如何合理设定推荐系统中的优化目标

        如果一项技术本身是新颖的、先进的,但应用的方向与实际需求的方向有偏差,那这项技术的成果不可能是显著的。在推荐系统中,如果模型的优化目标不准确,即使评估指标做得再好,也肯定与实际希望达到的目标南辕北辙。

YouTube以观看时长为优化目标的合理性:

        YouTube推荐系统的优化目标并不是点击率、播放率等通常意义上的CTR预估类的优化目标,而是用户的播放时长,这样推荐系统就能将视频的长短、视频的质量等特征考虑进来。

        YouTube排序模型原本是把推荐问题当作分类问题对待的,即预测用户是否点击某个视频,理论上应很难预测播放时长。但YouTube巧妙地把播放时长转换成正样本的权重,输出层利用加权逻辑回归进行训练,预测过程中利用e^{Wx+b}计算样本的概率,这一概率就是模型对播放时长的预测。

模型优化和应用场景的统一性:

        在电商类网站上做推荐,用户从登录到购买的过程可以抽象成两步:(1) 产品曝光,用户浏览商品详情页。(2) 用户产生购买行为。为了达到同时优化CTR和CVR模型的目的,阿里巴巴提出了多目标优化模型ESMM(Entire Space Multi-task Model)。ESMM可以被当作一个同时模拟“曝光到点击”和“点击到转化”两个阶段的模型。

        从模型结构上看,底层的Embedding层是CVR部分和CTR部分共享的;中间层是CVR部分和CTR部分各自利用完全隔离的神经网络拟合自己的优化目标——pCVR(post-click CVR,点击后转化率)和pCTR(post-view Click through Rate,曝光后点击率)。最终,将pCVR和pCTR相乘得到pCTCVR(曝光后点击转化序列的概率)。

5.5 推荐系统中比模型结构更重要的是什么

        在构建推荐模型的过程中,从应用场景出发,基于用户行为和数据的特点,提出合理的改进模型的动机才是最重要的。

5.6 冷启动的解决办法

        在缺乏有价值数据的时候,如何进行有效的推荐被称为“冷启动问题”。冷启动问题根据数据匮乏情况的不同,主要分为三类:用户冷启动;物品冷启动;系统冷启动。主流的冷启动策略归为以下三类:基于规则的冷启动过程;丰富冷启动过程中可获得的用户和物品特征;利用主动学习、迁移学习和“探索与利用”机制

基于规则的冷启动过程:

        在用户冷启动场景下,可以使用“热门排行榜”等榜单作为默认的推荐列表。更进一步,可以参考专家意见建立一些个性化物品列表,根据用户有限的信息,例如注册时填写的年龄、性别等信息做粗粒度的规则推荐。在物品冷启动场景下,可以根据一些规则找到该物品的相似物品,利用相似物品的推荐逻辑完成物品的冷启动过程。

丰富冷启动过程中可获得的用户和物品特征:

        在历史数据特征缺失的情况下,推荐系统仍然可以凭借用户和物品的属性特征完成较粗粒度的推荐。这类属性特征主要包括:用户的注册信息,第三方DMP(Data Management Platform,数据管理平台)提供的用户信息,物品的内容特征,引导用户输入的冷启动特征。

利用主动学习、迁移学习和“探索与利用”机制:

        (1) 主动学习

        被动学习是在已有的数据集上建模,学习过程中不对数据集进行更改,也不会加入新的数据。而主动学习不仅利用已有的数据集进行建模,而且可以“主动”发现哪些数据是最急需的,主动向外界发出询问,获得反馈,从而加速整个学习的过程,生成更全面的模型。

        以上图为例说明主动学习模型在推荐系统冷启动过程中的应用。主动学习的学习目标是尽可能快速地定位所有物品可能的打分。以主动学习的思路,下一次应选择最大聚类d的中心节点作为推荐影片,因为通过主动问询用户对d中心节点的打分,可以得到用户对最大聚类d的反馈,使推荐系统的收益最大。

        (2) 迁移学习

        迁移学习是在某领域知识不足的情况下,迁移其他领域的数据知识,用于本领域的学习。

        在ESMM模型中,利用CTR数据生成用户和物品的Embedding,然后共享给CVR模型,这本身就是迁移学习的思路。其他较实用的迁移学习方法是,在领域A和领域B的模型结构和特征工程相同的前提下,若领域A的模型已经得到充分的训练,则可以直接将领域A模型的参数作为领域B模型参数的初始值。

        (3) “探索与利用”机制

        探索与利用是在“探索新数据”和“利用旧数据”之间进行平衡,使系统既能利用旧数据进行推荐,达到推荐系统的商业目标,又能高效地探索冷启动的物品是否是“优质”物品,使冷启动物品获得曝光的倾向,快速收集冷启动数据。

5.7 探索与利用

        推荐用户喜欢的内容和探索用户的新兴趣这两件事都会占用宝贵的推荐机会,如何在推荐系统中权衡这两件事,这就是“探索与利用”试图解决的问题。探索与利用算法在推荐系统中的应用场景主要包括:物品冷启动,发掘用户新兴趣,增加结果多样性。

传统的探索与利用方法:

        传统的探索与利用方法要解决的其实是一个多臂老虎机问题(Multi-Armed Bandit problem, MAB)。在推荐系统中,每个候选物品就是一台老虎机,系统向用户推荐物品就相当于选择老虎机的过程。值得注意的是,传统的多臂老虎机问题假设每台老虎机的回报期望对所有用户一视同仁,也就是说,这不一个“个性化”的问题。

        (1) ε-Greedy算法

        ε-Greedy算法的主要流程是:选一个[0,1]的数ε,每次以ε的概率在所有老虎机中进行随机选择,以1-ε的概率选择截至当前平均收益最大的老虎机,在摇臂后,根据回报值对老虎机的回报期望进行更新。

        (2) Thompson Sampling算法

        该算法假设每个老虎机能够赢钱(这里假设赢钱的数额一致)的概率是p,同时概率p的分布符合beta(win, lose)分布,每个老虎机都维护一组beta分布的参数。每次试验后,选中一个老虎机,摇臂后,有收益(这里假设收益是0或1)则该老虎机的win参数增加1,否则该老虎机的lose参数增加1。每次选择老虎机的方式是:利用每个老虎机现有的beta分布产生一个随机数b,逐一生成每个老虎机的随机数,选择随机数中最大的那个老虎机进行尝试。

        (3) UCB算法

        利用下式计算每个物品的得分:

\text{UCB}(j)=\bar{x}_j+\sqrt{\frac{2\ln n}{n_j}}

        其中\bar{x}_j为观测到的第j个物品的平均回报(点击率、转化率、播放率等),n_j为目前为止向用户曝光第j个物品的次数,n为到目前为止曝光所有物品的次数之和。\bar{x}_j可以被看作“利用”的分值,\sqrt{\frac{2 \ln n}{n_j}}代表了“探索”的分值。

        每次选择UCB值最大的老虎机摇臂,并根据其收益更新该老虎机的收益期望值,并重复该步骤。使用UCB方法进行推荐,推荐系统会倾向于推荐“效果好”或者“冷启动”的物品。

个性化的探索与利用方法:

        在传统的探索与利用方法的基础上,引入个性化信息是很重要的,这类方法通常被称为基于上下文的多臂老虎机算法(Contextual-Bandit Algorithm),其中最具代表性的是LinUCB算法。

        LinUCB是建立在线性推荐模型或CTR预估模型之上的,线性模型的数学形式如下所示:

E[\boldsymbol{r}_{t,a} \vert \boldsymbol{x}_{t,a}]=\boldsymbol{x}_{t,a}^\top \theta_a^*

        其中,\boldsymbol{x}_{t,a}代表老虎机a在第t次试验中的特征向量,\theta_a^*代表模型参数,\boldsymbol{r}_{t,a}代表摇动老虎机a获得的回报。

        采用岭回归的训练方法得到每个老虎机的模型参数:

\hat{\theta_a}=(\boldsymbol{D}_a^\top \boldsymbol{D}_a+\boldsymbol{I}_d)^{-1}\boldsymbol{D}_a^\top\boldsymbol{c}_a

        其中,d是老虎机a特征向量的维度;\boldsymbol{D}是一个m \times d维的样本矩阵,每一行就是一个与老虎机a相关样本的特征矩阵;\boldsymbol{c}_a是所有样本的标签组成的向量。

        LinUCB的探索部分得分定义如下:

\alpha \sqrt{\boldsymbol{x}_{t,a}^\top \boldsymbol{A}_a^{-1}\boldsymbol{x}_{t,a}}, \; \boldsymbol{A}_a=\boldsymbol{D}_a^\top\boldsymbol{D}_a+\boldsymbol{I}_d

        其中,\alpha是一个控制探索强弱力度的超参数。探索部分的得分本质上是对预测不确定性的一种估计,预测的不确定性越高,抽样得出高分的可能性越大。

基于模型的探索与利用方法:

        在DRN中,对于已经训练好的当前网络Q,通过对其模型W添加一个较小的随机扰动\Delta W,得到新的模型参数\tilde{W},称其对应的网络为探索网络\tilde{Q}。再通过系统的实时效果反馈决定是保留探索网络\tilde{Q}还是沿用当前网络Q

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值