AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

阿里:Behavior Sequence Transformer 解读

  • 2019-12-02
  • 本文字数:1663 字

    阅读完需:约 5 分钟

阿里:Behavior Sequence Transformer 解读

背景和介绍

现在深度学习已经广泛应用到了各种 CTR 预估模型中,但是大都数模型的输入只是 concat 不同的特征,而忽视了用户历史行为本身的序列特征。比如一个用户很有可能买了苹果手机后,会买手机套,买了裤子之后会选择继续买个配套的鞋子。而之前一些模型比如 wide&deep,就没有利用用户行为历史序列中的 order information。DIN 模型使用注意力机制来捕获目标商品与用户先前行为序列中商品之间的相似性,但仍然未考虑用户行为序列背后的序列性质。


因此为了解决上述问题,本文尝试将 NLP 领域中大放异彩的 Transformer 模型来做推荐任务。具体:使用 self-attention 模块来学习用户行为历史序列中各个 item 的序列信息。

模型

  • 问题建模:给定一个用户 u 的行为序列:S(u) = {v1,v2, …,vn },学习一个函数 F 用于预测用户 u 点击 item vt 的概率。其它特征包括:user profile, context, item 和 cross features,如下图所示



  • 模型结构:

  • 1.Embedding Layer:左侧部分通过 embedding 层将所有的 other features 映射成固定维度的向量,然后 concat 起来。另外,该模型也将行为序列中的每个 Item(包括目标 Item)通过相同的 embedding 层映射成低维度的向量。这里需要注意的是,每个 Item 通过两部分来表示:“序列 item 特征”(红色部分)和“位置特征”(深蓝色),其中,“序列 item 特征”包括 item_id 和 category_id(item 通过包括上百个特征,但是 item-id 和 category_id 两个特征对于 performance 来说就已经够了)。位置特征用来刻画用户历史行为序列中的顺序信息,文中将“位置”作为中每个 item 的另一个输入特征,然后将其投射为低维向量。第 i 个位置的位置特征计算方式为 pos(vi)=t(vt)-t(vi),其中,t(vt) 表示推荐的时间戳,t(vi) 表示用户点击商品 vi 时的时间戳。

  • 2.Transformer layer:对于每个 item 抽取了一个更深层次的 representation,用于捕捉该 item 和历史行为序列中的其他 item 的关系。

  • Self-attention:Transformer 层中的 multi-head attention 模块输出:

  • 其中 headi 为:



self-attention 的计算公式为:



  • Point-wise Feed-Forward Network:目的是增加非线性。在 self-attention 和 FFN 中都使用了 dropout 和 LeakyReLU,最终 self-attention 和 FFN 的输出为:

  • Stacking the self-attention block:上面的两步操作被称为一个 self-attention 单元。为了抽取出 item 序列中更加复杂的潜在关联特征,该模型堆叠了几层 self-attention 单元:


  1. MLP layers and Loss function: 将所有的 embedding 进行拼接,输入到三层的神经网络中,并最终通过 sigmoid 函数转换为 0-1 之间的值,代表用户点击目标商品的概率。loss 函数:


实验结果

其中,b 表示 Transformer 的 block 堆叠的层数,论文里实验了 1 层、2 层和 3 层的效果,最终 1 层的效果最好。

总结

DIN、DIEN、DSIN 和本文 BST 模型的区别和联系


DIN 模型使用注意力机制来捕获目标商品与用户先前行为序列中商品之间的相似性,但是未考虑用户行为序列背后的序列性质,并且未捕捉用户兴趣的动态变化性。


DIEN 主要解决 DIN 无法捕捉用户兴趣的动态变化性的缺点,提出了兴趣抽取层 Interest Extractor Layer、兴趣进化层 Interest Evolution Layer。


DSIN 针对 DIN 和 DIEN 没考虑用户历史行为中的会话信息,因为在每个会话中的行为是相近的,而在不同会话之间差别是很大的。DSIN 主要是在 session 层面上来利用用户的历史行为序列信息。


BST 模型通过 Transformer 模型来捕捉用户历史序列中各个 item 的关联特征,并且通过加入待推荐的商品 item,也可抽取出行为序列中商品与待推荐商品之间的相关性。


参考文献:


Behavior Sequence Transformer for E-commerce Recommendation in Alibaba


https://www.jianshu.com/p/caa2d87cb78c


Deep Interest Network for Click-Through Rate Prediction


Deep Interest Evolution Network for Click-Through Rate Prediction


Deep Session Interest Network for Click-Through Rate Prediction


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/72018969


2019-12-02 16:221298

评论

发布
暂无评论
发现更多内容

MySQL主从配置+ThinkPHP5分布式数据库

北桥苏

MySQL 分布式 thinkphp

【开发点滴】在vscode的python调试中,如何让调试程序以sudo方式运行?

无人之路

Python vscode ChatGPT

智能化生产应用搭建的实战案例

华为云开发者联盟

后端 物联网 华为云 华为云开发者联盟 企业号 5 月 PK 榜

BATM面试Java岗:精选200+面试题及答案、6大重点规划和经验总结

Java你猿哥

Java MySQL JVM 多线程 java面试

中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

易观分析

公司 游戏

Django查询、删除、更新数据

测吧(北京)科技有限公司

测试

大厂工作四年Java经验总结了学习路线规划,所有私藏资料我都贡献出来了

Java你猿哥

Java Spring Boot JVM java基础 java面

大模型时代入场级技能:提示词工程!百度文心中文教程来啦

飞桨PaddlePaddle

百度飞桨

京东短网址高可用提升最佳实践 | 京东云技术团队

京东科技开发者

最佳实践 高可用设计 企业号 5 月 PK 榜 短网址

数据库外网ip binlog主从配置

Java你猿哥

Java MySQL 后端 ssm

Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人

汀丶人工智能

人工智能 深度学习 ChatGPT prompt learning

Java面试通关:阿里内部实战模拟面试精讲题库,竟被上传GitHub!

Java你猿哥

Java 数据库 微服务 Spring Boot java面试

硬核!阿里最新出品架构核心场景实战手册,解决99%的架构问题

Java你猿哥

详解集群级备份恢复:物理细粒度备份恢复

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

软件测试是青春饭吗?

测吧(北京)科技有限公司

测试

网页版超强ChatGPT插件应用ZipZap来了,每日免费10K Token足够使用

Ricky

openai ChatGPT GPT-4

一种KV存储的GC优化实践

vivo互联网技术

KV存储 GC设计

【5.05-5.12】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

如何解决由于TLS版本不兼容导致的问题

JefferLiu

Java TLS

数据治理三大模式详解,治理新范式释放数据潜能

袋鼠云数栈

数据治理

以数据思维和技能提升数据应用测试实践 | 京东云技术团队

京东科技开发者

测试 测试覆盖率 数据思维 应用安全测试 企业号 5 月 PK 榜

夺冠秘诀?华为软件精英挑战赛两届冠军这样复盘比赛经验

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 5 月 PK 榜

Fabarta 参加 2023 数云原力大会,与各方共同发布《2023 数据资产盘点实践白皮书》

Fabarta

数据要素 数据资产管理 数据资产化 数据要素流通

穿越数据智能“海峡”,企业更需要什么样的数智底座?

用友BIP

软件测试 | admin后台管理

测吧(北京)科技有限公司

测试

2023 开源之夏来啦!报名 MegEngine 项目,赢取万元奖金!

MegEngineBot

深度学习 开源之夏 MegEngine 学生比赛 奖金

国内商业BI工具介绍,瓴羊Quick BI、帆软怎么样

流量猫猫头

Django基本数据访问

测吧(北京)科技有限公司

测试

面试官:说说 WebSocket 和 Socket 及 Http 的区别?

Java你猿哥

Java TCP ssm HTTP webSock

Alibaba技术专家倾心五年打造!Java工程师成神之路(基础篇)

做梦都在改BUG

Java

微信小程序二维码文件流上传到OSS解决方法

北桥苏

php OSS thinkphp

阿里:Behavior Sequence Transformer 解读_语言 & 开发_Alex-zhai_InfoQ精选文章