From 22de22fa82fa6d17f94d462ea3e67ad7172994f7 Mon Sep 17 00:00:00 2001 From: chengmo Date: Tue, 31 Mar 2020 17:50:07 +0800 Subject: [PATCH] update readme --- PaddleRec/tdm/tdm_demo/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PaddleRec/tdm/tdm_demo/README.md b/PaddleRec/tdm/tdm_demo/README.md index c56b169a..95fa1a1a 100644 --- a/PaddleRec/tdm/tdm_demo/README.md +++ b/PaddleRec/tdm/tdm_demo/README.md @@ -2,7 +2,6 @@ 本代码仅作tdm组网示例,使用fake数据集,用于快速调研paddle-tdm。 -# ## 代码结构 @@ -10,6 +9,7 @@ ### 名词概念 为防止概念混淆,让我们明确tdm中名词的概念: +![https://github.com/MrChengmo/models/blob/tdm_dev/PaddleRec/tdm/tdm_demo/img/demo_tree.png?raw=true](Demo-Tree) - **item**:具有实际物理含义,是我们希望通过tdm检索最后得到的结果,如一个商品,一篇文章,一个关键词等等,在tdm模型中,item位于树的叶子节点。item有其自身的ID,我们姑且称之为 `item_id`。 - **节点(node)**:tdm树的任意节点。我们完成聚类后,会生成一颗树,树的叶子节点对应着item。而非叶子节点,则是一种类别上的概括,从大方向的兴趣,不断细分到小方向的兴趣。我们希望这棵树的结构满足最大堆树的性质。同样,节点也有其自身的ID,我们称之为node_id。如上图,最左下方的节点,它的node_id是14,而对应的item_id是0. @@ -82,8 +82,9 @@ ## TDM网络设计 假设输入数据是 Emb + item_id,下面让我们开始介绍一个最简单的网络设计。 +![https://github.com/MrChengmo/models/blob/tdm_dev/PaddleRec/tdm/tdm_demo/img/demo_network.png?raw=true](Demo_Network) 上图给出了一个非常简单的TDM示例网络,没有添加任何复杂的逻辑,纯用DNN实现。 -TDM的组网,宏观上,可以概括为三个部分: +TDM的组网,宏观上,可以概括为三个部分 - 第一部分,输入侧的组网,如果想要对user/query进行一些预处理,或者添加Attention结构,通常都是在这一层次实现。 - 第二部分,每层的输入与节点信息交互的组网,这一部分是将user/query的信息与node信息结合,在树的不同层下,进行不同粒度兴趣的学习。通常而言,第一部分与第二部分具有紧密的联系,可以统一为一个部分。 - 第三部分,最终的判别组网,将每层交互得到的信息进行最终的概率判决。但这一层也不是必须的,并不要求所有层的信息都经过一个统一的分类器,可以各层拥有独立的概率判决器。为了逻辑划分更加清晰,我们在示例中添加了这个层次的组网,方便您更加直观的理解tdm网络。 -- GitLab