• Stars
    star
    184
  • Rank 209,187 (Top 5 %)
  • Language
    Python
  • Created over 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

推荐系统学习笔记

【关于 推荐系统】 那些你不知道的事

作者:杨夕

NLP 百面百搭 地址:https://github.com/km1994/NLP-Interview-Notes

手机版NLP百面百搭

推荐系统 百面百搭 地址:https://github.com/km1994/RES-Interview-Notes

手机版推荐系统百面百搭

搜索引擎 百面百搭 地址:https://github.com/km1994/search-engine-Interview-Notes 【编写ing】

NLP论文学习笔记:https://github.com/km1994/nlp_paper_study

推荐系统论文学习笔记:https://github.com/km1994/RS_paper_study

GCN 论文学习笔记:https://github.com/km1994/GCN_study

个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。

所有文章已经搬到 知识星球【关于AiGC那些你不知道的事】,方便大家利用手机学习

NLP && 推荐学习群

目录

什么是推荐系统?

“啤酒与尿布” 的故事相信很多人都听过,年轻爸爸去超市购买尿布时,经常会买点啤酒犒劳自己。因此,沃尔玛将这两种商品进行了捆绑销售,最终获得了更好的销量。

这个故事背后的理论依据就是 “推荐算法”,因为尿布和啤酒经常出现在同一个购物车中,那么向购买尿布的年轻爸爸推荐啤酒确实有一定道理。

推荐系统到底解决的是什么问题?

  • 问题:信息过载,如何 从 从众多信息中找到用户感兴趣的信息?
  • 价值:精准推荐解决了用户痛点,提升了用户体验,最终便能留住用户。

推荐系统 的 流程是什么?

  • 本质:信息过滤系统;
  • 流程:召回->排序->重排序
  • 目标:每个环节逐层过滤,最终从海量的物料库中筛选出几十个用户可能感兴趣的物品推荐给用户

推荐系统 的 应用场景?

  • 场景:
    • 资讯类:今日头条、腾讯新闻等
    • 电商类:淘宝、京东、拼多多、亚马逊等
    • 娱乐类:抖音、快手、爱奇艺等
    • 生活服务类:美团、大众点评、携程等
    • 社交类:微信、陌陌、脉脉等
  • 按类别分类:
    • 基于用户维度的推荐:根据用户的历史行为和兴趣进行推荐,比如淘宝首页的猜你喜欢、抖音的首页推荐等;
    • 基于物品维度的推荐:根据用户当前浏览的标的物进行推荐,比如打开京东APP的商品详情页,会推荐和主商品相关的商品给你;

推荐系统 与 搜索、广告 的 异同?

  • 搜索:有明确的搜索意图,搜索出来的结果和用户的搜索词相关
  • 推荐:不具有目的性,依赖用户的历史行为和画像数据进行个性化推荐
  • 广告:借助搜索和推荐技术实现广告的精准投放,可以将广告理解成搜索推荐的一种应用场景,技术方案更复杂,涉及到智能预算控制、广告竞价等;

推荐系统 整体架构?

  • 数据源:推荐算法所依赖的各种数据源,包括物品数据、用户数据、行为日志、其他可利用的业务数据、甚至公司外部的数据。
  • 计算平台:负责对底层的各种异构数据进行清洗、加工,离线计算和实时计算。
  • 数据存储层:存储计算平台处理后的数据,根据需要可落地到不同的存储系统中,比如Redis中可以存储用户特征和用户画像数据,ES中可以用来索引物品数据,Faiss中可以存储用户或者物品的embedding向量等。
  • 召回层:包括各种推荐策略或者算法,比如经典的协同过滤,基于内容的召回,基于向量的召回,用于托底的热门推荐等。为了应对线上高并发的流量,召回结果通常会预计算好,建立好倒排索引后存入缓存中。
  • 融合过滤层:触发多路召回,由于召回层的每个召回源都会返回一个候选集,因此这一层需要进行融合和过滤。
  • 排序层:利用机器学习或者深度学习模型,以及更丰富的特征进行重排序,筛选出更小、更精准的推荐集合返回给上层业务。

推荐系统 核心部分?

  • 核心部分
    • 特征:由于数据量大,通常采用大数据的离线和实时处理技术,像Spark、Flink等,然后将计算结果保存在Redis或者其他存储系统中(比如HBase、MongoDB或者ES),供召回和排序模块使用;
    • 算法:
      • 召回算法:从海量数据中快速获取一批候选数据,要求是快和尽可能的准。这一层通常有丰富的策略和算法,用来确保多样性,为了更好的推荐效果,某些算法也会做成近实时的
      • 排序算法:对多路召回的候选集进行精细化排序。它会利用物品、用户以及它们之间的交叉特征,然后通过复杂的机器学习或者深度学习模型进行打分排序,这一层的特点是计算复杂但是结果更精准

内容介绍

推荐系统 基础

推荐系统方案

【关于 推荐系统】 那些你不知道的事

CTR

  • CTR
    • 【关于 GBDT+LR】 那些你不知道的事
    • 【关于 DeepCF】那些你不知道的事
    • 【关于 DeepFM 】那些你不知道的事
    • 【关于 DIEN】 那些你不知道的事
    • 【关于 ESMM 】 那些你不知道的事
    • 【关于 FiBiNET】那些你不知道的事
      • 论文:FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction(结合特征重要性和双线性特征相互作用进行点击率预测)
    • 【关于 阿里深度兴趣网络(DIN)】 那些你不知道的事
      • 任务:点击率预测

      • 前沿方法介绍:基于深度学习的模型,该模型遵循类似的嵌入ding和MLP范式。

        • 思路:
          • 首先将大规模稀疏输入特征映射为低维嵌入向量;
          • 然后分组变换为定长向量;
          • 最后拼接成多层感知器(MLP),学习特征之间的非线性关系。
        • 优点:通过这种方式,用户特征被压缩成一个固定长度的表示向量,而不管候选广告是什么。
        • 缺点:固定长度向量的使用将成为一个瓶颈,这给嵌入和MLP方法从丰富的历史行为中有效地捕获用户的不同兴趣带来了困难。
      • 论文方法:深度兴趣网络(Deep Interest Network,DIN)

        • 思路:通过设计一个局部激活单元,自适应地学习用户兴趣的表示,从历史行为到某个特定的广告,这种表示向量在不同的状态下变化,大大提高了模型的表达能力。
        • 开发了两种技术:小批量感知正则化和数据自适应激活函数,可以帮助训练具有数亿参数的工业深度网络。
        • 实验结果:在两个公共数据集和一个超过20亿样本的阿里巴巴真实生产数据集上的实验表明了所提方法的有效性,其性能优于现有的方法。目前,DIN已成功部署在阿里巴巴的在线展示广告系统中,服务于主要业务。

CTR

Item2Vec

【关于 Retrieval】那些你不知道的事

外部学习资料整理

  • 推荐算法在招聘商业化场景中的应用实践
    • 内容:
    • 1、58APP端招聘商业化推荐场景;
    • 2、58招聘商业推荐系统的目标;
    • 3、58平台上求职者特性;
    • 4、58招聘商业场景特点;
    • 5、58商业推荐系统架构;
    • 6、总结与展望。

参考

More Repositories

1

nlp_paper_study

该仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记
C++
3,827
star
2

NLP-Interview-Notes

该仓库主要记录 NLP 算法工程师相关的面试题
2,398
star
3

LLMsNineStoryDemonTower

【LLMs九层妖塔】分享 LLMs在自然语言处理(ChatGLM、Chinese-LLaMA-Alpaca、小羊驼 Vicuna、LLaMA、GPT4ALL等)、信息检索(langchain)、语言合成、语言识别、多模态等领域(Stable Diffusion、MiniGPT-4、VisualGLM-6B、Ziya-Visual等)等 实战与经验。
1,653
star
4

LLMs_interview_notes

该仓库主要记录 大模型(LLMs) 算法工程师相关的面试题
1,273
star
5

RES-Interview-Notes

该仓库主要记录 推荐系统 算法工程师相关的面试题
494
star
6

llms_paper

该仓库主要记录 LLMs 算法工程师相关的顶会论文研读笔记(多模态、PEFT、小样本QA问答、RAG、LMMs可解释性、Agents、CoT)
222
star
7

AwesomeNLP

此项目完成了关于 NLP-Beginner:自然语言处理入门练习 的所有任务(文本分类、信息抽取、知识图谱、机器翻译、问答系统、文本生成、Text-to-SQL、文本纠错、文本挖掘、知识蒸馏、模型加速、OCR、TTS、Prompt、embedding等),所有代码都经过测试,可以正常运行。
153
star
8

recommendation_advertisement_search

整理自然语言处理、推荐系统、搜索引擎等AI领域的入门笔记,论文学习笔记和面试资料(关于NLP那些你不知道的事、关于推荐系统那些你不知道的事、NLP百面百搭、推荐系统百面百搭、搜索引擎百面百搭)
133
star
9

GCN_study

GCN 入门学习教程
Jupyter Notebook
75
star
10

TopicShare

49
star
11

leetcode

leetcode Study
Python
27
star
12

nlp_paper_study_information_extraction

该仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记【信息抽取篇】
Jupyter Notebook
26
star
13

nlp_paper_study_transformer

该仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记【Transformer篇】
23
star
14

nlp_paper_study_qa

仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记【问答篇】
19
star
15

nlp_paper_study_kg

该仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记【知识图谱篇】
18
star
16

nlp_paper_study_search_engine

该仓库主要记录 NLP 算法工程师相关的 搜索引擎 学习笔记
12
star
17

AwesomeRAG

12
star
18

nlp_paper_study_bert

该仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记【Bert篇】
Python
12
star
19

nlp_paper_study_text_match

仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记【文本匹配篇】
11
star
20

Text_Classification_Study_Wp

Text_Classification_Study_Wp
Jupyter Notebook
11
star
21

MLStudy

机器学习算法理论学习与实践
Python
8
star
22

nlp_pytorch

该项目主要 使用 pytorch 框架 复现 NLP 基础任务上的应用。
Python
6
star
23

nlp_paper_study_game

该仓库主要记录 NLP 算法工程师相关的 竞赛笔记
5
star
24

sparkStudy

spark 学习
Jupyter Notebook
4
star
25

Transformers

Transformers 学习
Python
4
star
26

eda_study

常用数据增强方法介绍及学习
Jupyter Notebook
2
star
27

NLP_CS224n

JavaScript
2
star
28

key_extraction

关键词提取
Jupyter Notebook
2
star
29

bert_to_nlp_tf

该项目主要 使用 tensorflow 框架 复现 NLP 基础任务上的应用。
Python
2
star
30

ML_beginer

面向小白的机器学习 课程
Jupyter Notebook
1
star