大模型推荐系统 (应用)
阅读书籍: 《大模型推荐系统 | 算法原理、代码实战与案例分析》刘强
数据集来源:
MIND 新闻数据集对应论文MIND: A Large-scale Dataset for News Recommendation
Amazon 电商数据集
注:大型文件包工具git-lfs、强化学习训练工具trl
大模型在电商推荐中的应用
1、冷启动
1.1 数据准备
由于涉及冷启动商品生成模拟的用户行为,因此需要确定哪些是冷启动商品。
将用户行为数据按照时间排序,前 70%作为训练样本,后 30%作为测试样本。
只在测试数据中出现但不在训练数据中出现的商品就被认为是冷启动商品。
代码cold_start/utils/utils.py
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 ...
大模型推荐系统(4)直接推荐范式
阅读书籍: 《大模型推荐系统 | 算法原理、代码实战与案例分析》刘强
数据集来源:
MIND 新闻数据集对应论文MIND: A Large-scale Dataset for News Recommendation
Amazon 电商数据集
注:大型文件包工具git-lfs、强化学习训练工具trl
直接推荐范式
利用大模型的上下文学习进行推荐
1、上下文学习推荐基本原理
当模型参数规模足够大时,大模型本身就具备非常强的泛化能力。基本能够直接使用这类大模型进行个性化推荐。
只需要使用特定提示词激发大模型的推荐能力就可以将其用于下游推荐任务,而无需进行任何微调,这种能力就叫做上下文学习,分为 zero-shot 和 few-shot 的。
另外,可以分解任务,逐步解决,叫做思维链能力。
注意,在经典的召回->排序推荐范式下,直接推荐范式其实是利用大模型进行排序,即对召回的候选物品进行排序。召回阶段使用其他推荐算法。
2、案例
2.1 LLMRank 实现
构造用户历史交互序列(方法:顺序提示词、关注最近行为的提示词、上下文学习提示词)
构造抽取候选集(方法:多路召回后 ...
大模型推荐系统(3)微调范式
阅读书籍: 《大模型推荐系统 | 算法原理、代码实战与案例分析》刘强
数据集来源:
MIND 新闻数据集对应论文MIND: A Large-scale Dataset for News Recommendation
Amazon 电商数据集
注:大型文件包工具git-lfs、强化学习训练工具trl
微调范式
微调大模型进行个性化推荐
1、微调的方法
指令微调
RLHF
2、案例
2.1 TALLRec 微调框架
指令数据模版的构建
二次微调的原理(指令微调、推荐微调)
2.2 GIRL:基于人类反馈的微调框架
三种 JD 推荐范式
常规的工作推荐
生成式工作推荐
生成增强的工作推荐
基于 RLHF 的 JD 生成框架
监督微调
奖励模型训练
PPO 更新参数
生成加强的 JD 推荐方案
3、基于 MIND 数据集实现微调
3.1 数据准备
转换得到 LoRA微调所需的格式:
文件generate_json_data.py
123456789101112131415161718192021222324252627282930313233343536373 ...
大模型推荐系统(2)预训练范式
阅读书籍: 《大模型推荐系统 | 算法原理、代码实战与案例分析》刘强
数据集来源:
MIND 新闻数据集对应论文MIND: A Large-scale Dataset for News Recommendation
Amazon 电商数据集
注:大型文件包工具git-lfs、强化学习训练工具trl
预训练范式
通过大模型预训练进行推荐
1、预训练的一般思路与方法
1.1 预训练数据的准备
直接利用用户行为序列
将用户行为序列 ID 转为相关文本
在用户行为序列中整合用户的特征
1.2 大模型架构的选择
BERT4Rec
PTUM
P5
M6-Rec
1.3 大模型预训练
Transformers 库
苹果 MLX 框架
1.4 大模型推理
Transformers 库
llama.cpp推理
2、案例
2.1 基于 PTUM 架构的预训练推荐系统
PTUM : Pre-Training User Model
掩码行为预测
后续行为预测
2.2 基于 P5 的预训练推荐系统
P5: Pretrain, Personalized Prompt, and ...
大模型推荐系统(1)生成范式
阅读书籍: 《大模型推荐系统 | 算法原理、代码实战与案例分析》刘强
模型选用:
sentence-transformers/all-MiniLM-L6-v2
数据集来源:
MIND 新闻数据集对应论文MIND: A Large-scale Dataset for News Recommendation
Amazon 电商数据集
注:大型文件包工具git-lfs、强化学习训练工具trl
生成范式
大模型生成特征、训练数据与物品
1、大模型生成嵌入特征
1.1 利用 sentence-transformers 框架嵌入
见下方代码
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859"""利用sentence_transformers框架来实现一个最简单的个性化推荐:1. 用户嵌入:用户浏览过的新闻的嵌入的平均值2. 预测:利用用户嵌入与新闻嵌入的cosine余弦"&qu ...
CS224W - Colab 2
CS224W - Colab 2
In Colab 2, we will work to construct our own graph neural network using PyTorch Geometric (PyG) and then apply that model on two Open Graph Benchmark (OGB) datasets. These two datasets will be used to benchmark your model’s performance on two different graph-based tasks: 1) node property prediction, predicting properties of single nodes and 2) graph property prediction, predicting properties of entire graphs or subgraphs.
First, we will learn how PyTorch Geometric stores graphs ...
GCN 图卷积神经网络
GCN 图卷积神经网络
参考资料:
https://pyg.org/
https://networkx.org/
https://www.dgl.ai/
https://distill.pub/2021/gnn-intro/
https://distill.pub/2021/understanding-gnns/
参考视频:
https://www.bilibili.com/video/BV1Hs4y157Ls/
https://www.bilibili.com/video/BV1z14y1A7JX/
一、引入
假定我们有一个图 GGG :
VVV 是节点集合vertex set
AAA 是邻接矩阵Adjacency matrix 二进制
X∈R∣V∣×mX \in \mathbb{R}^{|V| \times m}X∈R∣V∣×m 是节点特征矩阵
1. 原始想法
最初,我们当然是希望说,是否可以直接把整个 AAA 和 XXX 拼接起来,直接整个作为输入。
但是,实际上会有很多问题:
参数量过大
输入无法适应各种大小的图
对节点顺序敏感
我们知道,在 CNN 中,是用滑动窗 ...
PageRank:《哈利·波特》人物节点重要度
PageRank:《哈利·波特》人物节点重要度
数据来源:http://data.openkg.cn/dataset/a-harry-potter-kg
0. 理论知识
G 矩阵
其中:
每个节点A的重要度由指向A 的节点B、C、D重要度决定(B/C/D 本身可能指向了多个,则均摊出去)
为了防止陷入问题,添加 Teleport 传送概率
示例
可用于推荐系统
总结
很巧妙的是,实际上后续的两个变种,就是把传送矩阵的均等传送的概率改成非均等、有偏好的传送,就形成了推荐系统的效果。下面是总结:
1. 环境准备
1!pip install networkx numpy matplotlib pandas
12345678910import numpy as npimport pandas as pdimport networkx as nximport matplotlib.pyplot as pltimport matplotlib as mpl%matplotlib inline# 使用macOS系统自带的中文字体plt.rcParams[' ...
CS224W - Colab 1
CS224W - Colab 1
In this Colab, we will write a full pipeline for learning node embeddings.
We will go through the following 3 steps.
To start, we will load a classic graph in network science, the Karate Club Network. We will explore multiple graph statistics for that graph.
We will then work together to transform the graph structure into a PyTorch tensor, so that we can perform machine learning over the graph.
Finally, we will finish the first learning algorithm on graphs: a node embedding mode ...
CS224W - Colab 0
CS224W - Colab 0
Colab 0 will not be graded, so you don’t need to hand in this notebook. That said, we highly recommend you to run this notebook, so you can get familiar with the basic concepts of graph mining and Graph Neural Networks.
In this Colab, we will introduce two packages, NetworkX and PyTorch Geometric.
For the PyTorch Geometric section, you don’t need to understand all the details already. Concepts and implementations of graph neural network will be covered in future lectures and Col ...