快捷搜索:  汽车  科技

嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)

嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)用户在淘宝上的访问行为是有时间顺序的,是一个行为序列,一般协同过滤只考虑了用户访问的商品是否在同一个行为序列中,而忽略了访问的序关系,而序关系可能反应了用户的兴趣特征。一般不会考虑用户整个访问历史,因为这样计算量大,并且用户兴趣是随着时间变化的。所以将用户在一段时间内(比如一个小时)的行为作为一个session来考虑。4.淘宝基于图嵌入的推荐算法我们在第三节3有向图嵌入中对图嵌入方案进行了介绍,在这里我们详细讲解淘宝基于图嵌入做推荐的一个算法模型,感兴趣的读者可以详细阅读参考文献6了解更多细节介绍。下面我们分4个部分来分别介绍。

都是超参数。由于各类ID是相对固定的,上述模型可以较长时间(比如一周)训练一次,也不太会影响最终推荐的精度。

通过上述最优化问题求解,获得了item的嵌入表示,那么我们可以采用第二节1中(3)的方法来为用户做个性化推荐,这里不细说了。读者可以阅读参考文献7,对技术细节做更细致了解。

4.淘宝基于图嵌入的推荐算法

我们在第三节3有向图嵌入中对图嵌入方案进行了介绍,在这里我们详细讲解淘宝基于图嵌入做推荐的一个算法模型,感兴趣的读者可以详细阅读参考文献6了解更多细节介绍。下面我们分4个部分来分别介绍。

(1) 从用户行为构建item有向图

用户在淘宝上的访问行为是有时间顺序的,是一个行为序列,一般协同过滤只考虑了用户访问的商品是否在同一个行为序列中,而忽略了访问的序关系,而序关系可能反应了用户的兴趣特征。一般不会考虑用户整个访问历史,因为这样计算量大,并且用户兴趣是随着时间变化的。所以将用户在一段时间内(比如一个小时)的行为作为一个session来考虑。

我们可以通过如下步骤来构建用户行为session的有向图(参考下图中a、b两个步骤):所有商品构成图的顶点,如果两个商品在某个用户的一个session中是相邻的(即该用户连续访问了这两个商品),那么我们就可以在这两个顶点构建一条有向边(用户访问节点的次序就是边的方向),边的权重可以是这两个商品在所有用户session中出现的次数。通过这个方式,我们就可以构建出基于用户行为的有向图了。这时边的权重就代表了两个顶点之间基于用户行为的相似度。


嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)(1)

图3:构建用户行为有向图

(2) 图嵌入

构建好有向图后,我们就可以采用随机游走(参考文献23的DeepWalk方法,参考文献13、17、18提供了其他利用图嵌入的方法,其中17、18提供了比其他图嵌入方法更高效的实现方案,可以大大节省嵌入训练的时间)的方式生成行为序列(参见图2中的c)。后面我们再用Skip-Gram算法学习图的顶点(商品)的嵌入表示(参考图2中d的Skip-Gram模型)。我们需要最大化通过随机游走生成序列中的两个顶点同时出现的概率,具体来说,我们需要求解如下最优化问题:

嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)(2)

上式中w是生成的序列中上下文节点的窗口大小。可以假设窗口中不同的节点是独立的。那么可以做如下简化

嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)(3)

利用Word2Vec中提到的负采样技术,最终的优化目标函数为

嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)(4)

上式中

嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)(5)

猜您喜欢: