📓
Study
  • README
  • Application
    • Contest
      • 竞赛trick
  • Basic Know
    • 半监督学习
    • 贝叶斯
      • 朴素贝叶斯分类器
    • 对抗训练
    • 概率图模型
      • CRF
      • HMM
      • 概率图模型
    • 关联分析
    • 归纳偏置
      • [什么是 Inductive bias(归纳偏置)?](BasicKnow/归纳偏置/什么是 Inductive bias(归纳偏置)?.md)
    • 聚类
    • 决策树
    • 绿色深度学习
    • 树模型&集成学习
      • 提升树
      • Ada Boost
      • [集成学习]
    • 特征工程
      • 数据分桶
      • 特征工程概述
      • 特征选择
      • LDA
      • PCA
    • 线性模型
      • 感知机
      • 最大熵模型
      • SVM
        • SVM支持向量机
      • 逻辑回归
      • 线性回归
    • 优化算法
      • 拉格朗日对偶性
      • 牛顿法
        • 牛顿法&拟牛顿法
      • 梯度下降法
        • 梯度下降算法
      • 优化算法
    • 预处理
      • [1-1]正则表达式
      • [1-2]文本预处理
      • [1-3]词性
      • [1-4]语法分析
      • [1-6]文本分类
      • [1-7]网络爬取
      • 【备用】正则表达式
      • 7.re模块
      • 词典匹配
      • 分词
      • 子表达式
      • Todo
    • 主题模型
      • LDA
    • Deep Learning
      • 反向传播
      • 梯度消失&梯度爆炸
      • Batch Size
      • 1.DLbasis
      • 小概念
      • MLstrategy
      • CNN
      • RNN及其应用
      • 关于深度学习实践
      • 神经网络概述
      • Batch Normalization
      • Program CNN
      • Program D Lbasis
      • Program DN Nimprove
      • Program Neural Style Transfer
      • Summer DL
    • EM算法
    • GAN
      • Gans In Action Master
    • GNN
      • 搜广推之GNN
      • Representation Learning
        • Anomalydetection
        • Conclusion
        • Others
        • Papernotes
        • Recommadation
    • k近邻法
      • K近邻
    • Language Model
      • 语言模型解码采样策略
      • [1-1][语言模型]从N-gram模型讲起
      • [1-2][语言模型]NNLM(神经网络语言模型)
      • [1-3][语言模型]基于RNN的语言模型
      • [1-4][语言模型]用N-gram来做完形填空
      • [1-5][语言模型]用KenLM来做完形填空
    • Loss Function
      • 常用损失函数
      • Focal Loss
      • softmax+交叉熵
    • Machine Learning
      • [基础]概念
      • 待整合
      • 交叉验证
      • 无监督学习
      • 优缺点
      • ML Yearning
      • SVD
    • Statistics Math
      • 程序员的数学基础课
      • 数学基础
      • 统计&高数
      • 统计题目
      • 线性代数
      • 组合数学
      • Discrete Choice Model
      • Nested Choice Model
  • Course Note
    • 基于TensorFlow的机器学习速成课程
      • [Key ML Terminology](CourseNote/基于TensorFlow的机器学习速成课程/Key ML Terminology.md)
    • 集训营
      • 任务说明
      • 算法实践1.1模型构建
      • 算法实践1.2模型构建之集成模型
      • 算法实践2.1数据预处理
    • 李宏毅机器学习
      • 10DNN训练Tips
        • Chapter 18
      • 16无监督学习
        • Chapter 25
    • 贪心NLP
      • 贪心NLP笔记
    • Cs 224 N 2019
      • [A Simple But Tough To Beat Baseline For Sentence Embeddings](CourseNote/cs224n2019/A Simple but Tough-to-beat Baseline for Sentence Embeddings.md)
      • [Lecture 01 Introduction And Word Vectors](CourseNote/cs224n2019/Lecture 01 Introduction and Word Vectors.md)
      • [Lecture 02 Word Vectors 2 And Word Senses](CourseNote/cs224n2019/Lecture 02 Word Vectors 2 and Word Senses.md)
      • [Lecture 03 Word Window Classification Neural Networks And Matrix Calculus](CourseNote/cs224n2019/Lecture 03 Word Window Classification, Neural Networks, and Matrix Calculus.md)
      • [Lecture 04 Backpropagation And Computation Graphs](CourseNote/cs224n2019/Lecture 04 Backpropagation and Computation Graphs.md)
      • [Lecture 05 Linguistic Structure Dependency Parsing](CourseNote/cs224n2019/Lecture 05 Linguistic Structure Dependency Parsing.md)
      • [Lecture 06 The Probability Of A Sentence Recurrent Neural Networks And Language Models](CourseNote/cs224n2019/Lecture 06 The probability of a sentence Recurrent Neural Networks and Language Models.md)
      • Stanford NLP
    • Deep Learning Book Goodfellow
      • Books
        • Deep Learning Book Chapter Summaries Master
      • 提纲
      • C 5
      • C 6
      • [Part I Applied Math And Machine Learning Basics](CourseNote/Deep-Learning-Book-Goodfellow/Part I - Applied Math and Machine Learning basics.md)
    • Lihang
    • NLP实战高手课
      • 极客时间_NLP实战高手课
    • 工具&资料
    • 机器学习、深度学习面试知识点汇总
    • 七月kaggle课程
    • 算法工程师
    • 贪心科技机器学习必修知识点特训营
    • 唐宇迪机器学习
    • 语言及工具
    • AI技术内参
    • Suggestions
  • Data Related
    • 数据质量
      • 置信学习
    • 自然语言处理中的数据增广_车万翔
      • 自然语言处理中的数据增广
    • Mixup
    • 数据不均衡问题
    • 数据增强的方法
  • Knowledge Graph
    • Information Extraction
      • 联合抽取
        • PRGC
      • Code
        • BERT微调
      • NER
        • 阅读理解做NER
          • MRC
        • FLAT
        • Global Pointer
        • 命名实体识别NER
    • Keyword Extraction
      • 关键词抽取
    • 小米在知识表示学习的探索与实践
    • KG
  • Multi Task
    • EXT 5
      • Ex T 5
  • NLG
    • Dailogue
      • 比赛
        • 对话评估比赛
          • [simpread-DSTC10 开放领域对话评估比赛冠军方法总结](NLG/Dailogue/比赛/对话评估比赛/simpread-DSTC10 开放领域对话评估比赛冠军方法总结.md)
      • 任务型对话
        • DST
          • DST概述
        • NLG
          • NLG概述
        • NLU
          • NLU概述
        • 任务型对话概述
        • simpread-任务型对话系统预训练最新研究进展
      • 问答型对话
        • 检索式问答
          • 基于预训练模型的检索式对话系统
          • 检索式文本问答
        • 业界分享
          • 低资源场景下的知识图谱表示学习和问答_阿里_李杨
          • QQ浏览器搜索智能问答
        • 问答型对话系统概述
      • 闲聊型对话
        • 闲聊型对话系统概述
      • 业界分享
        • 人工智能与心理咨询
        • 腾讯多轮对话机器人
        • 微软小冰
        • 小布助手闲聊生成式算法
        • 美团智能客服实践_江会星
        • 去哪儿智能客服探索和实践
        • 实时语音对话场景下的算法实践_阿里_陈克寒
        • 智能语音交互中的无效query识别_小米_崔世起
        • UNIT智能对话
      • 主动对话
      • EVA
        • EVA分享
        • EVA模型
      • PLATO
      • RASA
    • Machine Translation
      • 业界分享
        • 爱奇艺台词翻译分享
      • Paper
        • Deep Encoder Shallow Decoder
    • RAGRelated
    • Text 2 SQL
      • M SQL
        • [M SQL 2](NLG/Text2SQL/M-SQL/M-SQL (2).md)
      • [Text2SQL Baseline解析](NLG/Text2SQL/Text2SQL Baseline解析.md)
      • Text 2 SQL
    • Text Summarization
      • [文本摘要][paper]CTRLSUM
      • 文本摘要
  • Pre Training
    • 业界分享
      • 超大语言模型与语言理解_黄民烈
        • 超大语言模型与语言理解
      • 大模型的加速算法_腾讯微信
        • 大模型的加速算法
      • 孟子轻量化预训练模型
      • 悟道文汇文图生成模型
      • 悟道文澜图文多模态大模型
      • 语义驱动可视化内容创造_微软
        • 语义驱动可视化内容创造
    • Base
      • Attention
      • Mask
        • NLP中的Mask
      • Position Encoding
        • 位置编码
    • BERT
      • ALBERT
      • Bert
        • Venv
          • Lib
            • Site Packages
              • idna-3.2.dist-info
                • LICENSE
              • Markdown-3.3.4.dist-info
                • LICENSE
              • Tensorflow
                • Include
                  • External
                    • Libjpeg Turbo
                      • LICENSE
                  • Unsupported
                    • Eigen
                      • CXX 11
                        • Src
                          • Tensor
              • Werkzeug
                • Debug
                  • Shared
                    • ICON LICENSE
        • CONTRIBUTING
        • Multilingual
      • Ro BER Ta
      • BERT
      • BERT面试问答
      • BERT源码解析
      • NSP BERT
    • BERT Flow
    • BERT Zip
      • Distilling The Knowledge In A Neural Network
      • TINYBERT
      • 模型压缩
    • CPM
    • CPT
      • 兼顾理解和生成的中文预训练模型CPT
    • ELECTRA
    • EL Mo
    • ERNIE系列语言模型
    • GPT
    • MBART
    • NEZHA
    • NLG Sum
      • [simpread-预训练时代下的文本生成|模型 & 技巧](Pre-training/NLGSum/simpread-预训练时代下的文本生成|模型 & 技巧.md)
    • Prompt
      • 预训练模型的提示学习方法_刘知远
        • 预训练模型的提示学习方法
    • T 5
      • Unified SKG
      • T 5
    • Transformer
    • Uni LM
    • XL Net
    • 预训练语言模型
    • BERT变种
  • Recsys
    • 多任务Multi-task&推荐
    • 推荐介绍
    • 推荐系统之召回与精排
      • 代码
        • Python
          • Recall
            • Deep Match Master
              • Docs
                • Source
                  • Examples
                  • FAQ
                  • Features
                  • History
                  • Model Methods
                  • Quick Start
    • 业界分享
      • 腾讯基于知识图谱长视频推荐
    • 召回
    • Sparrow Rec Sys
    • 深度学习推荐系统实战
    • 推荐模型
    • Deep FM
  • Search
    • 搜索
    • 业界分享
      • 爱奇艺搜索排序算法实践
      • 语义搜索技术和应用
    • 查询关键字理解
    • 搜索排序
    • BM 25
    • KDD21-淘宝搜索中语义向量检索技术
    • query理解
    • TFIDF
  • Self Supervised Learning
    • Contrastive Learning
      • 业界分享
        • 对比学习在微博内容表示的应用_张俊林
      • Paper
      • R Drop
      • Sim CSE
    • 自监督学习
  • Text Classification
    • [多标签分类(Multi-label Classification)](TextClassification/多标签分类(Multi-label Classification)/多标签分类(Multi-label Classification).md)
    • Fast Text
    • Text CNN
    • 文本分类
  • Text Matching
    • 文本匹配和多轮检索
    • CNN SIM
    • Word Embedding
      • Skip Gram
      • Glove
      • Word 2 Vec
    • 文本匹配概述
  • Tool
    • 埋点
    • 向量检索(Faiss等)
    • Bigdata
      • 大数据基础task1_创建虚拟机+熟悉linux
      • 任务链接
      • Mr
      • Task1参考答案
      • Task2参考答案
      • Task3参考答案
      • Task4参考答案
      • Task5参考答案
    • Docker
    • Elasticsearch
    • Keras
    • Numpy
    • Python
      • 可视化
        • Interactivegraphics
        • Matplotlib
        • Tkinter
        • Turtle
      • 数据类型
        • Datatype
      • python爬虫
        • Python Scraping Master
          • phantomjs-2.1.1-windows
        • Regularexp
        • Scrapying
        • Selenium
      • 代码优化
      • 一行代码
      • 用python进行语言检测
      • Debug
      • Exception
      • [Features Tricks](Tool/python/Features & Tricks.md)
      • Fileprocess
      • Format
      • Functional Programming
      • I Python
      • Magic
      • Math
      • Os
      • Others
      • Pandas
      • Python Datastructure
      • Python操作数据库
      • Streamlit
      • Time
    • Pytorch
      • Dive Into DL Py Torch
        • 02 Softmax And Classification
        • 03 Mlp
        • 04 Underfit Overfit
        • 05 Gradient Vanishing Exploding
        • 06 Text Preprocess
        • 07 Language Model
        • 08 Rnn Basics
        • 09 Machine Translation
        • 10 Attention Seq 2 Seq
        • 11 Transformer
        • 12 Cnn
        • 14 Batchnorm Resnet
        • 15 Convexoptim
        • 16 Gradientdescent
        • 17 Optim Advance
    • Spark
      • Pyspark
        • pyspark之填充缺失的时间数据
      • Spark
    • SQL
      • 数据库
      • Hive Sql
      • MySQL实战45讲
    • Tensor Flow
      • TensorFlow入门
  • Common
  • NLP知识体系
Powered by GitBook
On this page
  • 多兴趣召回
  • 聚类多兴趣召回
  • MOE多兴趣召回
  • 单激活多兴趣召回
  • 总结
  • 参考资料:

Was this helpful?

  1. Recsys

召回

Previous腾讯基于知识图谱长视频推荐NextSparrow Rec Sys

Last updated 2 years ago

Was this helpful?

召回的策略与算法:策略包括考虑内容关联的频繁项集挖掘Apriori等、考虑用户与内容相关性的召回itemCF等、基于协同过滤的召回SVD等;算法包括将内容变为embedding后再进行近邻检索的item2vec和node2vec、应用内容理解的CDML召回以及近年来兴起的GNN召回等。

多兴趣召回

多兴趣召回技术类似其他召回技术都依赖着用户过往的历史行为,但不同点在于多兴趣召回技术可以学习到用户的多个兴趣表示,将个性化推荐的“千人千面”升级为“千人万面”,每一个兴趣表示都能根据最近邻搜索得到相应的视频成为召回源。一方面,多兴趣召回技术符合多数用户拥有不同志趣和爱好的现实情况,能够让推荐结果精准且丰富,能够防止内容同质化带来观感疲劳;另一方面,除了挖掘用户的已有兴趣,多兴趣召回技术不断挖掘出用户自己从未发现的潜在新兴趣,防止传统推荐算法造成的“信息茧房”现象。

聚类多兴趣召回

聚类多兴趣召回的主要优点在于不用训练复杂的神经网络,只需利用线上其他深度学习的embedding即可形成多个兴趣向量(例如较为成熟的node2vec,item2vec等video embedding空间),时间和空间代价都较小。主要理论依据为KDD2020提出的兴趣聚类方法PinnerSage。(是不是和PinSage名字很像,但它与图神经网络没有太大关系)。

PinnerSage聚类多兴趣召回是传统ii召回基础上结合聚类方法的新型策略。传统的ii召回中往往有两种做法:1,选择用户短期历史行为的每个视频,进行多次ANN查找选出近邻视频,这样的做法不仅时间成本高而且推出视频同质化严重。2,将用户短期历史行为的所有视频embedding进行pooling形成代表用户的user embedding,再进行ANN近邻查找,这样的方式能一定程度的融合信息减少时间空间代价,但很容易造成信息损失, pooling出的embedding很可能差了十万八千里。

PinnerSage则取两者之长,对用户历史行为中的视频进行聚类分组,pooling形成多个兴趣向量。聚类既避免了多次ANN带来的压力,也能一定程度上避免信息损失。PinnerSage 聚类多兴趣召回分为两步走:

a. 聚类过程 。如图所示,对用户观看过的所有视频进行聚类操作,Pinnersage聚类采用了hierarchical clustering聚类方法,并不需要像K-Means设置初始类别数,而是首先将每一个视频均看作一类,接下来每两类开始合并,若合并后组内variance增加最少则可以将两类合并为一类,直到variance超过阈值即停止。

b. 取出embedding过程 。PinnerSage依然不对类内视频embedding 取平均,而是选择类内的一个视频embedding作为类(兴趣簇)的代表,该视频embedding需满足与类内所有视频embedding距离之和最小。再利用这些代表用户兴趣的embedding们进行ANN即可。

聚类多兴趣召回通过简单的策略便形成了用户多个兴趣,时间代价较少。但由于依赖其他算法形成的embedding空间,学习到的多个兴趣embedding很容易有偏,推出内容趋于高热难以满足个性化。

MOE多兴趣召回

双塔模型是业界比较主流的召回模型,但是双塔模型在实际场景中效果有限。因此爱奇艺团队将双塔中的用户侧的塔结构进行修改,引入类似于MOE的结构,提取多个向量表示用户潜在的兴趣,从而获得了极大提升。其中MOE是多目标学习中使用广泛的经典结构,根据数据进行分离训练多个专家模型,爱奇艺最终将多个专家模型的输出作为用户兴趣向量,通过与视频侧提取的向量分别计算内积得到最相似的一个用户向量参与损失的计算。

MOE多塔结构如图所示,左边为用户侧MOE多塔部分,右边为视频侧单塔部分。模型的实现细节包括:

a. 用户侧的输入主要是用户的偏好序列,包括用户偏好的视频id序列、上传者id序列与内容标签(tag)序列,序列特征经过embedding处理与average pooling操作后得到不同的向量,拼接之后组成MOE多塔的输入,经过MOE多塔计算后得到多个向量表示用户潜在的多个兴趣。

b. 视频侧为单塔结构,输入为用户交互过的视频id、上传者id与内容标签(tag)特征,经过embedding提取和拼接之后使用单塔结构提取信息。

c. 在loss计算上,由于召回是从千万级的视频库中寻找出用户可能感兴趣的几百条视频,因此实际样本中负样本空间十分巨大。为了增加模型对负样本的筛选能力和提升模型负采样的效率,爱奇艺在模型中使用batch内负采样,将batch内其他样本作为当前样本的负样本,同时使用focal loss损失函数来提升模型对难样本的识别能力。

经过修改之后的MOE多塔模型上线之后,单召回源的点击率和人均观看时长得到极大提升(全端CTR提升0.64%,召回源推出视频CTR比全端高出28%,展均播放时长比全端高出45%)。

经过修改之后的MOE多塔模型上线之后,单召回源的点击率和人均观看时长得到极大提升。但是MOE多塔共享底层的输入,仅仅使用简单的DNN网络提取不同的向量,导致多个塔之间的区分度比较低,多向量中冗余较多难以优化;此外用户序列特征中实际包含的位置信息对用户比较重要,当前模型难以利用。

单激活多兴趣召回

单激活多兴趣召回从19年开始便被工业界使用,其中最绕不开的是阿里提出的MIND,其利用胶囊网络对用户序列进行动态路由收集多兴趣的方法在测试集上取得爆炸效果,激起了整个工业界对多兴趣网络的探索热情。随刻推荐团队也进行了探索。

4.1 单激活多兴趣召回初版

基于MIND等网络的启发,爱奇艺团队进行了单激活多兴趣网络的初版探索,网络结构如图所示。在MIND网络中,采用了胶囊网络来抓取用户的兴趣,胶囊网络可以很好的同时捕捉观看的序列顺序信息和视频间的相关性,但由于结构较为复杂计算开销较大,且观看顺序仅单个维度即可表示不需要网络对位置信息太过敏感,因此团队选择transformer结构进行代替以保证训练速度。

大致流程为:

a. 截取用户观看视频id序列{V1,…VN}作为sample,第N+1个视频作为target输入网络,经过video embedding层后形成embedding序列E={E1,E2,..EN}。

b. E经过transformer构造的兴趣抽取层得到多个兴趣向量M,取|Mi|最大的兴趣向量与target视频的embedding进行sampled softmax loss负采样,因此每次训练实际上只激活一个通道的兴趣向量。

c. 模型训练好后在推理阶段,取出用户所有兴趣向量,逐个进行ANN检索得到召回结果。

初版虽然结构简单,但上线后效果较好,极大提升消费指标、视频覆盖度和多样性。然而初版也存在着不同兴趣向量召回结果重复度较高、特征较少、即时性差等问题,因此也产生了多个版本的演变。

4.2 disagreement-regularzation多兴趣召回

4.2中兴趣向量间无任何约束,因此容易出现兴趣向量过于相似的问题,因此在损失函数上需要施加正则项。鉴于初版多兴趣召回主要部分为transformer,团队在不改变网络结构的情况下使用三种正则函数进行探索。

如图所示,分别对学习到的视频embedding(公式1),Attention(公式2),兴趣向量(公式3)进行正则化约束。在实际生产环境中发现,直接对兴趣向量进行正则化约束能达到最优效果。

4.3 容量动态化多兴趣召回

不同用户往往呈现不同的兴趣发散性,因此兴趣向量数应该是一个弹性指标而非超参数,在4.1与4.2的基础上,如图所示在网络结构中引入兴趣激活记录表。

训练过程中每当用户有任何兴趣向量被激活时,记录表均会记录这次激活。推理阶段,回溯激活表情况,将用户未激活或激活较少的兴趣向量剔除,以达到兴趣数动态化的目的,从而匹配不同用户兴趣发散性存在差异的现实情况。

4.4 多模态特征多兴趣召回

4.1-4.3中,多兴趣召回仅使用到视频id特征,学习效果依然有限,因此在后续版本的发展中,将上传者和内容标签(tag)融入训练成为主要方向。如图所示,为网络主要结构。

Transformer部分与4.1-4.3中大致相同,不同点在于训练样本加入上传者和内容标签(tag)特征后经过embedding和pooling部分再进入transformer中。值得注意的有两点:

  1. loss部分依然只对视频id的embedding进行负采样(与MIND等结构不同),这样的目的是让视频id的全部embedding可以进入负采样中,而不用折中使用batch内负采样,能够让最终推理阶段主要使用video id embedding更加精准(推理阶段ANN部分不会使用tag与uploader)。

  2. 一个视频往往有多个内容标签(tag),因此在对内容标签(tag)做embedding时需要对所有内容标签(tag)做embedding操作后进行一次pooling。

4.5小结

如4.1-4.4所示,单激活多兴趣网络进行了多次演变过程,一次次改进后的应用带来了非常显著的效果,全端CTR显著提升2%,全端时长提升1.5%,人均播放提升1.5%;特别是在推出视频的多样性上,直接提升4%以上。

同时作为一个老少皆宜的内容平台,在爱奇艺一直存在着以家庭为单位,不同年龄段用户使用同一账号的情况,因此同一账号下的历史行为往往来自各个年龄阶段,用户历史行为的复杂性给推荐带来了难题。而单激活多兴趣网络的兴趣向量在学习过程的采样中具随机性、在数学呈现上具正交性,这就使得兴趣向量的搜索范围能够召回不同年龄段所喜爱的海量视频。

总结

多兴趣召回依然有可以优化的方向:

  1. 在行为序列的选取上,大部分的多兴趣策略与网络依然只考虑到用户的观看历史,如果能够运用事件知识图谱,将用户在平台上的搜索、订阅等行为一起纳入训练数据中,应该可以抓取用户更多的兴趣与倾向。

  2. 在负反馈信息的处理上,多兴趣召回尚无应对之策。视频中的许多点踩、消极评论、不喜欢、取消关注等行为尚且未融入到多兴趣召回中,这些信息对指导兴趣网络的也至关重要,后期该方向将成为重点工作。

  3. 在用户的静态信息与偏好特征的整合上,亦有很大的应用空间。这部分特征的组合能够很好地和排序目标对齐,提升召回源质量和排序效果上限。

参考资料:

千人万面,奇妙自见:爱奇艺短视频推荐技术中多兴趣召回技术的演变

AdityaPal, et al. PinnerSage: Multi-Modal User Embedding Framework for Recommendations at Pinterest. KDD 2020

Jiaqi Ma, et al. Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts. KDD 2018

Yukuo Cen, et al. Controllable Multi-Interest Framework for Recommendation.KDD 2020.

Chao Li, et al.Multi-Interest Network with Dynamic Routing for Recommendation at Tmall. CIKM 2019.

Jian Li, et al. Multi-Head Attention with Disagreement Regularization. EMNLP 2018

多兴趣召回主要流程