Skip to content

这是一个基于深度学习的用户行为序列分析框架,用于从用户行为序列中构建嵌入表示(embeddings)。该框架支持多种模型架构,包括Transformer、DSSM、SASRec以及多模态模型,可以根据不同的应用场景灵活选择。这是一个基于深度学习的用户行为序列分析框架,用于从用户行为序列中构建嵌入表示(embeddings)。该框架支持多种模型架构,包括Transformer、DSSM、SASRec以及多模态模型,可以根据不同的应用场景灵活选择。

Notifications You must be signed in to change notification settings

guoyahao/deepBehaviorSequence

Repository files navigation

深度行为序列分析框架 (Deep Behavior Sequence Framework)

这是一个基于深度学习的用户行为序列分析框架,用于从用户行为序列中构建嵌入表示(embeddings)。该框架支持多种模型架构,包括Transformer、DSSM、SASRec以及多模态模型,可以根据不同的应用场景灵活选择。

项目结构

deepBehaviorSequence/
├── data.py                  # 数据处理相关代码
├── models.py                # 模型定义代码
├── train.py                 # 模型训练代码
├── embedding_utils.py       # 嵌入处理工具
├── example.py               # 使用示例
├── convert_to_onnx.py       # 模型转换为ONNX格式
├── inference_onnx.py        # ONNX模型推理
├── embeddings/              # 存储嵌入的目录
│   └── user_embeddings.pkl  # 用户嵌入数据
└── README.md                # 项目说明文档

功能特点

  1. 多种模型架构

    • UserBehaviorTransformer: 基于Transformer的用户行为分析模型
    • DSSM: 深度语义相似度模型
    • SASRec: 自注意力序列推荐模型
    • DSSM_SASRec: 结合DSSM和SASRec的混合模型
    • MultiModalBehaviorEncoder: 多模态用户行为编码器
  2. 模块化设计

    • 使用工厂模式创建不同类型的模型
    • 抽象出训练、评估和数据处理逻辑
    • 提供嵌入管理和分析工具
  3. 嵌入分析工具

    • 提取用户行为嵌入
    • 保存和加载嵌入
    • 计算用户相似度
    • 用户聚类
    • 嵌入可视化
  4. 模型部署

    • 支持将模型转换为ONNX格式
    • 提供ONNX模型推理示例

安装依赖

pip install torch numpy matplotlib scikit-learn onnxruntime

使用示例

1. 创建和训练模型

from models import ModelFactory
from train import train_model, prepare_data

# 准备数据
sequences = [...]  # 用户行为序列
labels = [...]     # 标签

# 准备训练数据
train_dataloader, val_dataloader = prepare_data(sequences, labels, batch_size=32)

# 定义模型配置
config = {
    'num_events': 10,
    'd_model': 128,
    'nhead': 4,
    'num_layers': 2
}

# 训练模型
model = train_model(
    model_type='transformer',
    config=config,
    train_dataloader=train_dataloader,
    val_dataloader=val_dataloader
)

2. 提取用户行为嵌入

from embedding_utils import EmbeddingManager

# 创建嵌入管理器
embedding_manager = EmbeddingManager(model)

# 提取用户嵌入
for user_id, sequence in user_sequences.items():
    event_ids, time_intervals, mask = sequence
    embedding_manager.extract_embedding(user_id, event_ids, time_intervals, mask)

# 保存嵌入
embedding_manager.save_embeddings("embeddings/user_embeddings.pkl")

3. 使用嵌入进行分析

from embedding_utils import find_similar_users, cluster_users

# 加载嵌入
embedding_manager = EmbeddingManager()
embedding_manager.load_embeddings("embeddings/user_embeddings.pkl")

# 查找相似用户
similar_users = find_similar_users("user1", embedding_manager, top_k=5)

# 用户聚类
user_clusters, cluster_centers = cluster_users(embedding_manager, n_clusters=3)

# 可视化嵌入
reduced_embeddings, fig = embedding_manager.visualize_embeddings(method='tsne')

4. 使用多模态模型

# 创建多模态模型
multimodal_config = {
    'num_events': 10,
    'num_locations': 10,
    'num_devices': 5,
    'd_model': 128,
    'nhead': 4,
    'num_layers': 2
}

multimodal_model = ModelFactory.create_model('multimodal', multimodal_config)

# 使用多模态模型提取嵌入
embedding = multimodal_model(event_ids, locations, devices, time_intervals, mask)

完整示例

查看 example.py 文件,了解完整的使用流程。

python example.py

模型转换和部署

  1. 将模型转换为ONNX格式:
python convert_to_onnx.py
  1. 使用ONNX模型进行推理:
python inference_onnx.py

自定义扩展

添加新的模型架构

  1. models.py 中定义新的模型类
  2. ModelFactory 类中添加对应的创建方法

添加新的嵌入分析方法

embedding_utils.py 中添加新的分析函数

许可证

MIT

About

这是一个基于深度学习的用户行为序列分析框架,用于从用户行为序列中构建嵌入表示(embeddings)。该框架支持多种模型架构,包括Transformer、DSSM、SASRec以及多模态模型,可以根据不同的应用场景灵活选择。这是一个基于深度学习的用户行为序列分析框架,用于从用户行为序列中构建嵌入表示(embeddings)。该框架支持多种模型架构,包括Transformer、DSSM、SASRec以及多模态模型,可以根据不同的应用场景灵活选择。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages