博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度学习CTR模型读书笔记-阿里十亿级商品嵌入方法
阅读量:4220 次
发布时间:2019-05-26

本文共 1767 字,大约阅读时间需要 5 分钟。

论文连接:

摘要:

阿里推荐系统的三大挑战,可扩展性(scalability),稀疏性(sparsity)和冷启动(cold start)。
首先通过用户历史行为构建item graph,并在graph上学习item的embedding,这个embedding用于学习item之间的pairwise similarities。为了解决稀疏性和冷启动问题,在graph embedding framework里引入side information。并提出两种聚合方法来集成item的embedding和相关的side information。加了side information的方法优于不加side information的方法。

淘宝应对可扩展性、稀疏性和冷启动三个问题设计一个two-stage框架,matching和ranking。matching拣选商品,ranking给商品排序。本文主要关注在matching阶段,这个阶段核心任务是基于user行为计算所有item的pairwise similarities。

首先基于user行为历史构建item embedding graph->dubbed Base Graph Embedding(BGE),其次考虑到那些新的item或者有极少user交互的item,引入side information构建dubbed Graph Embedding with Side information(GES)。接着考虑到不同类型的side information,就提出带权的GES,即dubbed Enhanced Graph Embedding with Side information(EGES)。

session-based users’behaviors:考虑到用户的行为是不断变化的,以及使用用户全部的历史行为计算能力和空间存在问题,对user的行为按窗口划分(工程上采用1小时)。属于同一个时间窗口的两个item就存在一条直连边(按先后顺序的有向边),边的值是在所有user行为中出现的次数。

构建graph之前需要过滤无效数据和异常行为:

(1)扔掉少于1m的点击时间间隔的商品
(2)扔掉那些代刷用户(在三个月内点击超过3600或者买了1000个item)
(3)扔掉那些零售商不断更新内容而使得item和标识符不符合的item

BGE:

BGE

  • 建Graph
  • 扩展,使用Random Walk进行扩展得到item序列
  • 使用Skip-Gram训练item embedding
  • Negative sampling转换成二分类问题,加速训练速度

GES:

假设具有相似side information的item在embedding space也相近。

  • 除了训练item embedding,还要训练item的side information对应的embedding
  • 把side information和item embedding求平均作为item的embedding
    Hv1
    EGES:
    EGES
    GES认为side information中的每个type的重要性相同,EGES引入权重思想。
    Hv2

[以下是分割线,我是知乎的搬运工]

关于新商品的冷启动问题,因为尚未学到权重矩阵,因此将边信息向量求平均作为商品的表示。

很简单的文章,最后自问自答两个问题。

1)本文的边信息都是类别特征,如果是文本或者图像特征,该怎么加到图网络中?

我的想法是,可以先预训练文本或图像,生成文本或图像的表示向量,作为其中一个边信息向量,然后固定住文本和图像向量,放在整个网络中学习这两个向量的权重。

2)原文算法在构建图的时候采用的是有向图,这个真的是有必要的吗?skip-gram算法的训练是丢掉顺序信息的,序列 ​和序列 ​是等价的。skip-gram不关心序列顺序,只是不知道有向图和无向图生成的item pair数量分布是否有差异。(注:有时间跑个实验对比下)

【我个人的理解:建什么样的图跟数据有关,如果是双向关系,可以采用无向图,如果是单向关系,就用有向图,这两个的item pair肯定是有差异的】

作者:张备

链接:
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的文章
缩放系数计算
查看>>
cocos2dx --- 按钮点击居中放大
查看>>
cocos2dx menu位置计算
查看>>
cocos2dx资源加载机制(同步/异步)
查看>>
cocos2dx C++调用java -- 字符串传递
查看>>
git学习网站
查看>>
JavaScript 学习网站
查看>>
cocos2dx java调用c++ -- 字符串传递
查看>>
CCScaleTo与CCScaleBy比较
查看>>
cocos2dx CCObject引用计数,内存释放分析(1)
查看>>
cocos2dx2.X 编译时,传递编译选项
查看>>
ccCArray.cpp 文件
查看>>
cocos2dx 屏幕大小
查看>>
libgdx: 2D Particle Editor工具使用
查看>>
eclipse 给jar库添加源码
查看>>
3.0正式版环境搭建(4)-- 运行(3)创建的工程
查看>>
C++ 枚举声明 enum 和 enum class
查看>>
Python optionParser模块的使用方法
查看>>
android 消灭星星出错
查看>>
PyCharm 教程(三)Hello world!
查看>>