首页 > 编程知识 正文

TDM通信,wrstdm啥意思

时间:2023-05-06 09:36:41 阅读:121009 作者:229

参考文献

学习树-基础知识模型自recommendersystems

TDM、全称基于树的深度模型,中文名称是基于树搜索的深度推荐模型。 我们知道在进行推荐时,通常有召回和排名两个阶段。 召回从所有item库中粗选一定量的item,经过分级后进行精彩筛选后推荐给用户。

综上所述,召回的任务量实际上非常大,需要从整个库中搜索用户可能感兴趣的item。 如果所有item都考虑到跨所有item,则任务量将非常大。 因此,通过将用户和item都映射到嵌入式,并在用户与item嵌入式的相似度匹配中进行k-最近邻推荐,目前普遍使用的技术确实变得高效了。 然而,这样的技术存在天花板,并且表征不出用户与item之间的更多交互。 要表达用户与item的交互,我认为用户的嵌入式和item的嵌入式必须一起输入到模型中并进行交叉,这样就必须将item的嵌入式输入到模型中。 要在整个库中搜索合适的item,难道不是需要考虑搜索整个库的嵌入式吗?那又不是遍历了! 针对这些问题,蚂蚁提出了基于树搜索的深度推荐模型。

已知树的搜索效率通常比循环高,通常为logN等级,比循环的n等级(n为搜索项的总数)在时间上的复杂度小很多。 蚂蚁利用这一点,大大降低了在所有库中检索合适推荐item时的时间复杂度。 看看蚂蚁具体怎么了。 我们先来看看模型的概况。

是的,果然看起来很复杂。 首先,让我们来看看图右下角的树的部分。 在图中,这棵树是平衡的二叉树。 (实际模型不必是二叉树,但为了便于说明,叶节点对应于一个个item,库中的所有item都对应于叶节点。 可以将非叶节点视为表示一个类别,层次越高的非叶节点,特征类别的范围越广。 例如,从上到下,非叶节点是无机物、电子产品、手机、智能手机、iPhone、iPhoneX。 考虑到每个item,用户可以映射到嵌入式,相应树中的每个节点(包括叶节点和非叶节点)也可以映射到嵌入式。 其中叶节点(表示每个具体item )的嵌入式与对应item的嵌入式完全相同,是共享的。

首先,假设我们已经有了训练有素的模型,看看如何利用它进行推荐。 例如,我推荐两个item。 根据level1,与level2中的各节点对应的embedding分别编入左边的深度模型中,可以分别计算出一个概率值。 概率值越大,对应的用户选择对应的节点所代表的类别(或item,但其到达最下级的叶节点)两个,选择概率值最大的对应节点。 从这两个节点,针对它们的子节点(level3),再次组合左层次的深度模型来算出对应的概率值,选择概率值最大的两个对应节点(这些对应节点都在level3),重复这样的动作) 这是我们向用户推荐的两个item。

图源

在图中,还可以看到我在DIN中详细介绍的Activation Unit。 出于同样的原因,用户兴趣广泛,并且只关心与推荐目标(对应的树节点、代表类别或item )相关的部分。 (相关链接DIN )

图中的Time window 1、Time window 2…Time window N实际上是按照时间分割用户的行动序列,考虑了不同时期用户的行动推移轨迹。

左侧的深度学习模型通过将与每个时期用户行为相对应的特征、推荐目标(对应的树节点)的特征相联系,进而添加普通特征(例如用户的性别、年龄等未在图中示出),来生成推荐目标请在这里注意。 对应于用户的嵌入式应用程序可以与推荐目标嵌入式应用程序一起输入深度学习模型,以在此了解更多用户与推荐目标之间的更多交互信息。 这解决了我们最初说的当前主流技术,即利用用户与item嵌入式之间的相似度匹配进行k-最近邻推荐。 无法表示更多用户与推荐目标之间更多交互的信息产生的算法瓶颈问题,因为不需要遍历所有item,不需要利用上面的树结构进行检索,有望成为下一代主流技术,值得期待

说完模型的结构,我用模型推荐。 接下来,谈谈TDM模型的训练问题。 首先是如何建造树木。 如果每个item都已经具有相应的嵌入式,则可以使用嵌入式进行kmeans群集,并将其分为两种类型。 (适当调整两个类别中的item数量,使其相同),然后将每个类别再组合为两个类别,就可以像极木结构一样一个个地聚集在一起。 没错,可以这样种树。 在没有之前,也有办法种树。 利用item原本拥有的类信息,将类似的item排列起来,将所有的item排列成一列,排序后从中间开始分割,将item分为两列,在各列的基础上再从中间分割成两列,就像二分法一样这就是树的初始化。 有初始化的树时,与树中的节点对应的嵌入式

ding就可以拼接入深度学习模型进行训练,训练收敛后我们的embedding就有了,这时就可以采用之前说的方法重新构筑出一棵树,接着再训练,当然也可以不那么麻烦,直接训练完就完了,但重新构筑树再训练最后的效果通常是更好的。

说完树的构筑我们再说样本的采样,样本有正样本,负样本,正样本就是用户最终确实表示感兴趣并点击的item,在树里面就是从对应这个item的叶子节点开始,从下往上,所有的父节点都算是正样本,负样本就是,在树的每一层,都随机抽一个节点(只要不是正样本节点)作为负样本。从上面的模型大图中我们用不同的颜色标注了正负样本,红色节点为负样本,绿色节点为正样本。

还有一点,之前说用训练好的模型作推荐的时候,说的是从level1出发,将level2中的每个节点对应的embedding分别拼接入左边的深度模型中,可以分别算出一个概率值,选出两个概率值最大的对应的节点,再从这两个节点再往下,这样一层一层下去,很顺畅,但之所以能这样,是因为我们在训练时对树有作了这样的规定

分母的Alpha(j)是个归一项,不用管,p(j)(n|u)是用户对树中某节点感兴趣的概率,是用某节点的embedding和用户相关的特征拼接入深度模型后算出来的,p(j+1)(nc|u)是用户对树中某节点的子节点感兴趣的概率,那就很清楚了,用户对树中某节点感兴趣的概率总是等于对其所有子节点中最感兴趣的那个最大概率除以一个归一项,保证父子节点之间的一致性,让我们可以从父节点开始找到用户最感兴趣的叶子节点。

到这里,关于TDM模型的介绍就结束了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。