<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[VariableX的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/VariableX</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; VariableX]]></copyright><item><title><![CDATA[阿里大规模图嵌入模型 EGES 论文解读]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/113268570</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/113268570</guid><author>VariableX</author><pubDate>Wed, 27 Jan 2021 20:10:09 +0800</pubDate><description><![CDATA[在大规模电商推荐系统中，至少都包含了两个过程，针对用户的候选召回（Match）以及对候选商品的精排（Rank），有时候还需要线上的策略调控（Re-rank）。本文讲解的 EGES 模型借助随机游走的思想对各种商品做图嵌入，然后用于相似推荐场景的召回过程。
图构建
文章首先介绍了如何抽取数据来构造图与随机游走序列，具体做法是：

以60分钟为窗口抽取用户的点击序列，如下图中的(a)所示。
按照点击顺序构造有向图，如下图中的(b)所示，边的权重是所有用户对两个关联商品的点击次数之和。
对图的每个节点 根据边的权]]></description><category></category></item><item><title><![CDATA[CTR深度学习模型之 DSIN(Deep Session Interest Network) 论文解读]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/113197623</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/113197623</guid><author>VariableX</author><pubDate>Tue, 26 Jan 2021 21:51:41 +0800</pubDate><description><![CDATA[之前的文章讲解了DIEN模型：CTR深度学习模型之 DIEN(Deep Interest Evolution Network) 的理解与示例，而这篇文章要讲的是DSIN模型，它与DIEN一样都从用户历史行为中抽取兴趣表示，但不同的是DSIN把历史行为划分成了不同的Session，并且使用Transformer对每个Session内的行为抽取特征。
模型解读
整体模型的结构如下：

首先看看右下部分的矩形区域，这部分主要是对用户的行为序列建模，其中包含了4个子模块。
1. Session Divsion La]]></description><category></category></item><item><title><![CDATA[图注意力网络(Graph Attention Network, GAT) 模型解读与代码实现(tensorflow2.0)]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/110825537</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/110825537</guid><author>VariableX</author><pubDate>Mon, 07 Dec 2020 19:33:16 +0800</pubDate><description><![CDATA[前面的文章，我们讲解了图神经网络三剑客GCN、GraphSAGE、GAT中的两个：

图卷积神经网络(GCN)理解与tensorflow2.0代码实现
GraphSAGE 模型解读与tensorflow2.0代码实现

本要讲的是GAT(Graph Attention Network)，它使用 Attention 机制来对邻居节点进行加权求和，和一般的Attention 机制一样，分为计算注意力系数和加权求和两个步骤。
GAT中的 Attention 机制
先来看看每一层的输入与输出：
&nbsp;inpu]]></description><category></category></item><item><title><![CDATA[GraphSAGE 模型解读与tensorflow2.0代码实现]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/110005243</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/110005243</guid><author>VariableX</author><pubDate>Mon, 23 Nov 2020 19:23:03 +0800</pubDate><description><![CDATA[上一篇文章，我们讲了图神经网络：图卷积神经网络(GCN)理解与tensorflow2.0代码实现，也提到GCN的缺点：GCN属于直推式学习(Transductive Learning)，它在固定的图上学习每个节点的embedding表示，不能泛化到未加入到图中的节点，一旦图的结构发生改变，就需要重新训练整个网络。
本文提到的 GraphSAGE 属于归纳学习(Inductive Learning)，核心是学习聚合邻居节点信息的函数（聚合函数），然后利用聚合函数来得到一个节点的表示。即使图中加入了新的节点，建]]></description><category></category></item><item><title><![CDATA[图卷积神经网络(GCN)理解与tensorflow2.0代码实现]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/109820684</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/109820684</guid><author>VariableX</author><pubDate>Thu, 19 Nov 2020 18:27:11 +0800</pubDate><description><![CDATA[图(Graph)，一般用 G=(V,E)G=(V,E)G=(V,E) 表示，这里的VVV是图中节点的集合，EEE 为边的集合，节点的个数用NNN表示。在一个图中，有三个比较重要的矩阵：

特征矩阵XXX：维度为 N×DN\times DN×D ，表示图中有N个节点，每个节点的特征个数是D。
邻居矩阵AAA：维度为 N×NN\times NN×N ，表示图中N个节点之间的连接关系。
度矩阵 DDD：维度为 N×NN\times NN×N ，是一个对角矩阵，即只有对角线上不为零，其他位置元素都是 0 ，表示图中]]></description><category></category></item><item><title><![CDATA[SDNE: 阿里应用深度学习进行图嵌入，构造凑单算法模型]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/109111361</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/109111361</guid><author>VariableX</author><pubDate>Fri, 16 Oct 2020 10:32:22 +0800</pubDate><description><![CDATA[本文介绍 Structural Deep Network Embedding ，以下简称 SDNE，以半监督的方式用深度神经网络来做图嵌入。
模型解读
论文指出学习网络表示具有三大难点：

高度非线性：网络结构是高度非线性的，使用浅层网络无法捕捉高度非线性的网络结构。
结构捕捉：同时捕捉到局部结构与全局结构。
稀疏性：大部分真实的网络都是稀疏的，仅仅利用网络中的部分连接关系建模效果还不够好。

SDNE 的目标是设计一个可以学习到一阶相似度与二阶相似度的模型。一阶相似度与二阶相似度的概念与之前博客【图嵌入】]]></description><category></category></item><item><title><![CDATA[【图嵌入】Graph Embedding 方法之 LINE 原理解读]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/108984859</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/108984859</guid><author>VariableX</author><pubDate>Fri, 09 Oct 2020 19:46:39 +0800</pubDate><description><![CDATA[LINE 出自论LINE: Large-scale Information Network Embedding，与 DeepWalk 相比，比较明显的区别在于：

DeepWalk 使用的深度优先搜索策略，而 LINE 使用了广度优先搜索策略。
DeepWalk 仅适用于无权图，而LINE模型适用于带权图与无权图。

下图展示了一个简单的图，图中的边既可以是有向的，也可以是无向的，并且边的粗细程度也代表了权重的大小：

一阶相似度
作者认为可以用一阶相似度描述图中成对顶点之间的局部相似度，连接两个节点的边权]]></description><category></category></item><item><title><![CDATA[【图嵌入】DeepWalk原理与代码实战]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/108984600</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/108984600</guid><author>VariableX</author><pubDate>Fri, 09 Oct 2020 19:34:06 +0800</pubDate><description><![CDATA[DeepWalk
基础理论
了解过 NLP 的同学对 word2vec 应该不陌生，word2vec 通过句子中词与词之间的共现关系来学习词的向量表示，如果你忘记了，可以看看我之前的博客：

【word2vec】篇一：理解词向量、CBOW与Skip-Gram等知识
【word2vec】篇二：基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型
【word2vec】篇三：基于Negative Sampling 的 CBOW 模型和 Skip-gram 模型

DeepWa]]></description><category></category></item><item><title><![CDATA[CTR深度学习模型之 DIEN(Deep Interest Evolution Network) 的理解与示例]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/108887709</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/108887709</guid><author>VariableX</author><pubDate>Wed, 30 Sep 2020 16:50:39 +0800</pubDate><description><![CDATA[本文介绍阿里提出的兴趣进化网络(Deep Interest Evolution Network，以下简称DIEN。
前一篇文章介绍的 DIN 模型如下图所示：

DIN 直接把用户的某个行为作为用户的兴趣，在实际的电商场景中这并不完全准确。
用户的兴趣受到环境因素与自身因素的影响，会不断的变化。例如用户会在一段时间内关注手机相关的商品，另一段时间内又会关注书籍相关的商品，而手机与书籍之间的关系就比较小了。本文的介绍的 DIEN 模型就是要捕捉用户兴趣的演变过程。DIEN 仍然采用了 attention 机制]]></description><category></category></item><item><title><![CDATA[CTR深度学习模型之  DIN(Deep Interest Network) 的理解与例子]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/108796376</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/108796376</guid><author>VariableX</author><pubDate>Fri, 25 Sep 2020 14:48:12 +0800</pubDate><description><![CDATA[在电商领域，每个用户都有丰富的历史行为数据，这些数据具有如下特点：


多样性（Diversity）：用户可能对多种商品感兴趣，例如手机、衣服。


局部激活（Local Activation）：用户是否点击新商品，仅仅取决于历史行为中与新商品相关度高的部分数据。


如何从中捕获特征对CTR预估模型非常重要。论文 《Deep Interest Network for Click-Through Rate Prediction 提出了深度兴趣网络 Deep Interest Network，以下简称 DIN]]></description><category></category></item><item><title><![CDATA[【面试相关】python实现快速幂取余算法详解]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107876870</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107876870</guid><author>VariableX</author><pubDate>Sat, 08 Aug 2020 11:17:50 +0800</pubDate><description><![CDATA[假设我们要计算 2102^{10}210 对1000取模的结果，可以很简单的得到24。但是如果要求 210002^{1000}21000 对1000取模的结果，常规方法就行不通了，因为常规的变量无法容纳这么大的数值。为此，需要借助数学技巧求解。
循环求余法
首先引入一个好理解的取模运算公式：
(a×b)%p=(a%p×b%p)%p
(a \times b) \% p = (a \% p \times b \% p) \% p
(a×b)%p=(a%p×b%p)%p
举个例子：
a=9,b=9(9×9)%6=]]></description><category></category></item><item><title><![CDATA[【CTR模型】TensorFlow2.0 的 xDeepFM 实现与实战(附代码+数据)]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107736113</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107736113</guid><author>VariableX</author><pubDate>Sat, 01 Aug 2020 20:22:25 +0800</pubDate><description><![CDATA[本篇文章讲解 xDeepFM 的 tensorflow2.0 实现，并使用 Criteo 数据集的子集加以实践。如果在看本文时有所困惑，可以看看 xDeepFM 的相关理论：CTR 模型之 Deep &amp; Cross (DCN) 与 xDeepFM 解读。
本文使用的数据下载地址于代码获取地址在文末获取。
首先了解一下 Criteo数据集，它由有39个特征，1个label列，其中以I开头的为数值型特征，以C开头的为类别特征：

可以看到数据中有缺失值需要填充，并且类别变量需要进行类别编码(onehot]]></description><category></category></item><item><title><![CDATA[【CTR模型】TensorFlow2.0 的 DCN(Deep & Cross Network) 实现与实战(附代码+数据)]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107733410</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107733410</guid><author>VariableX</author><pubDate>Sat, 01 Aug 2020 17:00:27 +0800</pubDate><description><![CDATA[本篇文章讲解 DeepFM 的 tensorflow2.0 实现，并使用 Criteo 数据集的子集加以实践。如果在看本文时有所困惑，可以看看DeepFM的相关理论：CTR 模型之 Deep &amp; Cross (DCN) 与 xDeepFM 解读。
本文使用的数据下载地址于代码获取地址在文末获取。
首先了解一下 Criteo数据集，它由有39个特征，1个label列，其中以I开头的为数值型特征，以C开头的为类别特征：
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pTS]]></description><category></category></item><item><title><![CDATA[CTR 模型之 Deep & Cross (DCN) 与 xDeepFM 解读]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107708856</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107708856</guid><author>VariableX</author><pubDate>Fri, 31 Jul 2020 11:02:34 +0800</pubDate><description><![CDATA[本篇文章讲解 CTR 经典模型 Deep &amp; Cross (DCN) 与 xDeepFM，之所以把这两个模型放一起讲是因为它们有很近的“血缘关系”。理解了 DCN 的思想，再去理解 xDeepFM 就不觉得困难了。
以下文章对这两个模型的讲解很到位：
首先了解揭秘 Deep &amp; Cross : 如何自动构造高阶交叉特征
推荐系统遇上深度学习(二十二)–DeepFM升级版XDeepFM模型强势来袭！
xDeepFM：名副其实的 ”Deep” Factorization Machine
因此，本]]></description><category></category></item><item><title><![CDATA[【剑指offer 07】用迭代和递归两种方法重构二叉树（python实现）]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107659537</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107659537</guid><author>VariableX</author><pubDate>Wed, 29 Jul 2020 11:31:40 +0800</pubDate><description><![CDATA[本文讲解一个经典的面试题，使用 python 通过迭代和递归两种方法重构二叉树。
题目描述
输入某二叉树的前序遍历和中序遍历的结果，请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如，给出：
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]

返回如下的二叉树：
	3
   / \
  9  20
    /  \
   15   7

限制：0 &lt;= 节点个数 &lt;= 5000。
递归方法
二叉树的前序遍]]></description><category></category></item><item><title><![CDATA[【CTR模型】TensorFlow2.0 的 DeepFM 实现与实战(附代码+数据)]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107643912</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107643912</guid><author>VariableX</author><pubDate>Tue, 28 Jul 2020 20:05:35 +0800</pubDate><description><![CDATA[本篇文章讲解 DeepFM 的 tensorflow2.0 实现，并使用 Criteo 数据集的子集加以实践。如果在看本文时有所困惑，可以看看DeepFM的相关理论： CTR深度学习模型之 DeepFM 模型解读 。
本文使用的数据下载地址于代码获取地址在文末获取。
首先了解一下 Criteo数据集，它由有39个特征，1个label列，其中以I开头的为数值型特征，以C开头的为类别特征：

可以看到数据中有缺失值需要填充，并且类别变量需要进行类别编码(onehot 编码的任务交给模型)，这部分预处理的代码不详]]></description><category></category></item><item><title><![CDATA[TensorFlow 2.0 快速上手教程与手写数字识别例子讲解]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107566301</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107566301</guid><author>VariableX</author><pubDate>Fri, 24 Jul 2020 17:45:26 +0800</pubDate><description><![CDATA[文章目录TensorFlow 基础自动求导机制参数优化TensorFlow 模型建立、训练与评估通用模型的类结构多层感知机手写数字识别Keras Pipeline *
TensorFlow 2.0 出来后不久就有人整理了一份简洁高效的中文指导手册： 简单粗暴 TensorFlow 2，本文对其中一些重点内容加以梳理，方便快速上手。
如果你还没装上 TensorFlow 2.0 ，或者希望对 TensorFlow 2.0 的新特性有个大概的了解，可以查看我之前的文章：tensorflow2.0 GPU 版本安]]></description><category></category></item><item><title><![CDATA[tensorflow2.0 GPU 版本安装测试教程及新特性初探]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107557458</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107557458</guid><author>VariableX</author><pubDate>Fri, 24 Jul 2020 11:35:23 +0800</pubDate><description><![CDATA[安装与测试
TensorFlow2.0安装：
pip install tensorflow-gpu==2.0.0 -i https://pypi.douban.com/simple/
conda install cudnn=7.6.0
conda install cudatoolkit=10.0.130

TensorFlow2.0的GPU版本测试代码如下：
import tensorflow as tf

print('GPU', tf.test.is_gpu_available())

a = tf.c]]></description><category></category></item><item><title><![CDATA[CTR深度学习模型之 DeepFM 模型解读]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107548080</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107548080</guid><author>VariableX</author><pubDate>Thu, 23 Jul 2020 21:15:01 +0800</pubDate><description><![CDATA[上一篇文章讲了一些比较经典的 CTR 模型：CTR经典模型串讲：FM / FFM / 双线性 FFM 相关推导与理解，从这一篇文章开始将会陆续介绍一些使用深度学习完成CTR预估的模型，本文主要讲的是DeepFM模型。
之前讲的 FM、FFM、Bi-FFM 本质上都是要学习户点击行为背后隐含的特征组合，不过这些经典模型主要是进行二阶特征组合。理论上也可以进行更高阶的特征组合，但是会造成特征维度指数级增长以及数据稀疏等问题。对于高阶特征组合问题不难想到可以用多层的神经网络解决。
DeepFM 的整体结构
对于类]]></description><category></category></item><item><title><![CDATA[CTR经典模型串讲：FM / FFM / 双线性 FFM 相关推导与理解]]></title><link>https://blog.youkuaiyun.com/VariableX/article/details/107529033</link><guid>https://blog.youkuaiyun.com/VariableX/article/details/107529033</guid><author>VariableX</author><pubDate>Thu, 23 Jul 2020 09:28:56 +0800</pubDate><description><![CDATA[FM
在计算广告领域，因子分解机(Factorization Machines，FM)是很经典的模型，面对量大且稀疏的数据，此算法仍然可以取得比较优秀的效果。
假设有下面的数据：




Clicked?
Country
Day
Ad_type




1
USA
26/11/15
Movie


0
China
1/7/14
Game


1
China
19/2/15
Game


其中，Clicked? 是label，Country、Day、Ad_type是特征。由于三种特征都是类别型的，需要经过独热]]></description><category></category></item></channel></rss>