自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 收藏
  • 关注

原创 CTR之Session行为序列建模用户兴趣:DSIN

1. DSIN认为在推荐系统中,用户的行为序列是由多个历史sessions构成,在不同的session中展现了不同的兴趣;2. 然后,使用多头注意力来捕获session行为的内存相关性,并且提取每一个session兴趣3. 另外,用户的session兴趣是序列化的,并且彼此相关联,因此用适合序列结构的双向LSTM来捕获session之间的交互和session兴趣的变化;4. 最后再使用注意力机制来激活那些与target item更为相关的session兴趣;

2024-03-25 21:06:03 640

原创 CTR之行为序列建模用户兴趣:DIEN

在CTR模型中,**通过用户的行为数据捕获用户的潜在兴趣是非常重要的**。另外,考虑到外在环境和内在认知的变化,**用户的兴趣是随着时间在动态演变的**。

2024-03-12 21:05:33 881

原创 CTR之行为序列建模用户兴趣:DIN

这篇论文是阿里2017年发表在KDD上,提出了一种新的CTR建模方法:Deep Interest Network (DIN),它最大的创新点是引入了局部激活单元(local activation unit,其实是一种Attention机制),对于不同的候选item,可以根据用户的历史行为序列,动态地学习用户的兴趣表征向量。

2024-02-20 21:03:02 847 1

原创 如何实现TensorFlow自定义算子?

tensorflow自定义算子的完整实现过程。

2023-12-18 22:11:55 609 1

原创 Embedding压缩之基于二进制码的Hash Embedding

基于二进制码的hash embedding,该方法兼具了调整embedding存储的大小的灵活性和尽可能保留模型的效果

2023-12-12 20:49:28 176

原创 Embedding压缩之hash embedding

在推荐系统中,特征Embedding是极其重要的一部分,并且占了模型体积的大头,消耗巨大的显存,因此如果可以对特征Embedding进行压缩,那么是可以节省许多计算资源的。因此,这篇文章的主题便是Embedding压缩,而embedding hash便是一种实用的手段。

2023-11-30 20:50:06 272

原创 CTR特征建模:ContextNet & MaskNet(Twitter在用的排序模型)

微博在CTR特征(Embedding)重要性建模方面的一些实践方向,今天再来学习下这个方面的两个相关研究:致力于特征和特征交互精炼(refine)的ContextNet和MaskNet,其中MaskNet也是Twitter(推特)使用的精排模型底座。

2023-10-10 20:54:51 322

原创 AI绘画Stable Diffusion原理之扩散模型DDPM

1. DMs在训练阶段逐步为干净的图片加入高斯噪声,并去拟合这个噪声,而在采样生成(推理)阶段则是由随机的噪声开始,逐步预测噪声然后去去噪,直至得到高质量的图片,而这主要是通过DDPM来实现;2. LDMs则是在DMs的基础上引入了Autoencoder能够将图像从像素空间压缩到隐空间,极大提升计算效率;3. 并且LDMs还具有引入文本控制条件的建模能力,通过UNet与文本表征进行注意力交叉,实现文生图的能力。

2023-09-14 22:17:16 981

原创 AI绘画Stable Diffusion原理之VQGANs/隐空间/Autoencoder

AI绘画,输入一段文本就能生成相关的图像,其中stable diffusion是这些技术背后的重要骨架思想,这个系列的文章就是对stable diffusion的原理学习(“文生图”[text to image])。

2023-07-26 20:27:57 1693

原创 “设计模式”概述

| 1️⃣[组件协作](#组件协作) | Template Method模式|Strategy 策略模式|Observer 观察者模式|| 2️⃣[单一职责](#单一职责) | Decorator 装饰模式|Bridge 桥模式|| 3️⃣[对象创建](#对象创建) | Factory 工厂模式|Abstract Factory|Prototype 原型模式|Builder模式|Singleton 单例模式|Flyweight 享元模式|| 4️⃣[接口隔离](#接口隔离) | Facade 门面模式

2023-07-05 21:43:48 558

原创 CTR预估之Wide&Deep系列(下):NFM/xDeepFM

介绍两种同属这种框架的模型,但改进的不是wide部分,其中NFM(Neural Factorization Machines)是对deep部分的改进,而xDeepFM(eXtreme Deep Factorization Machine)则是引入新的子网络。

2023-06-19 21:53:52 402

原创 CTR预估之Wide&Deep系列模型:DeepFM/DCN

Wide&Deep,即同时加入低阶特征组合交互的线性模型-Wide、高阶特征交叉的深度模型(Deep),Wide部分模型提供模型的记忆能力,而Deep部分提供模型的泛化能力。这是Wide&Deep系列模型很重要的一个点。

2023-06-13 20:34:25 530

原创 CTR预估之DNN系列模型:FNN/PNN/DeepCrossing

FMs模型是由线性项和二阶交互特征组成,虽然有自动学习二阶特征组合的能力,一定程度上避免了人工组合特征的问题,但却缺少高阶的特征组合,这篇文章的主题则是介绍deep neural networks (DNNs)下的ctr模型,能够自动学习高阶特征组合模式。

2023-05-25 21:39:45 1207 3

原创 CTR预估之FMs系列模型:FM/FFM/FwFM/FEFM

搜广推系统一般包括召回和排序,ctr预估一般应用于排序阶段。而像推荐系统,一个鲜明的特点就是数据极特别稀疏。下面,我们会持续学习那些针对稀疏数据的ctr任务而提出的模型,这篇文章则主要是关于FM系列

2023-05-11 20:51:22 1378 1

原创 ctr特征重要性建模:FiBiNet&FiBiNet++模型

**FiBiNET**(Feature Importance and Bilinear feature Interaction NETwork)为推荐系统的CTR模型提出了一些创新方向:- **引入一个SENet模块,可以动态学习特征的重要性;**- **引入一个双线性模块(Bilinear-Interaction layer),来改进特征交互方式。**

2023-04-25 20:32:52 766

原创 多兴趣推荐召回模型:ComiRec

1. 论文指出了推荐召回模型中单个用户兴趣向量的弊端,提出一种可以提取多个用户兴趣向量的模型ComiRec,包括两种多兴趣提取模块:**Dynamic Routing**和**Self-Attentive Method**,对应的模型分别为ComiRec-DR和ComiRec-SA;2. 提出一种新的对用户多个兴趣向量召回结果的聚合方法(Aggregation Module),指出推荐系统可控性的重要性(论文中主要体现了推荐的多样性控制);

2023-04-23 20:51:25 711

原创 多兴趣推荐召回模型:MIND

Multi-Interest Network with Dynamic routing (MIND) ,能够提取多个用户兴趣向量,更好地捕捉用户多方面的兴趣。

2023-03-17 22:02:33 537

原创 BERT模型系列大全解读

本文讲解的BERT系列模型主要是**自编码语言模型**-AE LM(AutoEncoder Language Model):通过在输入X中随机掩码(mask)一部分单词,然后预训练的主要任务之一就是根据上下文单词来预测这些单词,从而得到的预训练语言模型。

2023-02-22 21:25:59 2109 2

原创 分类模型-类别不均衡问题之loss设计

数据类别不均衡是很多场景任务下会遇到的一种问题。针对这种类别不均衡的场景设计一种loss,能够兼顾数据少的类别,这其实是一种更理想的做法,因为不会破坏原数据的分布,并且不会带来性能问题

2022-11-11 18:00:00 1286

原创 深入浅出地理解Youtube DNN推荐模型

通过YouTube推荐模型来了解推荐的流程、召回模型的本质、负采样的注意事项、为什么召回要分成离线training和在线serving?为什么在线serving可以用Faiss这样的工具来代替?

2022-09-27 20:55:46 1138 1

原创 炼丹系列2: Stochastic Weight Averaging (SWA) & Exponential Moving Average(EMA)

EMA(Exponential Moving Average)全称为指数移动平均,主要作用是平滑模型权重,平滑可以带来更好的泛化能力。简单的在常规的SGD过程中,对多个权重点进行平均,这种方法称为Stochastic Weight Averaging(SWA),可以比传统的训练的到更好的泛化能力。

2022-08-24 20:50:27 1268

原创 炼丹系列1: 分层学习率&梯度累积

深度学习trick:变量初始化、分层学习率、梯度累积

2022-08-13 19:30:00 854

原创 BERT句向量(一):Sentence-BERT

前言句向量:能够表征整个句子语义的向量,目前效果比较好的方法还是通过bert模型结构来实现,也是本文的主题。有了句向量,我们可以用来进行聚类,处理大规模的文本相似度比较,或者基于语义搜索的信息检索。例如搜索系统中的输入query和匹配文档document、Q&A任务的问题和答案等等,都可以转化为计算两个句子的语义相似/相关度,相关度最高的n个作为模型的返回结果。题外话这种类似的模型一般称为passage retrieval models,即段落检索,有两个代表:sparse model

2022-04-26 09:30:00 10361

原创 TensorRT&Triton学习笔记(一):triton和模型部署+client

前言先介绍TensorRT、Triton的关系和区别:TensorRT:为inference(推理)为生,是NVIDIA研发的一款针对深度学习模型在GPU上的计算,显著提高GPU上的模型推理性能。即一种专门针对高性能推理的模型框架,也可以解析其他框架的模型如tensorflow、torch。主要优化手段如下:Triton:类似于TensorFlow Serving,但triton包括server和client。triton serving能够实现不同模型的统一部署和服务,提供http和grpc协

2022-03-17 09:00:00 17084

原创 多任务学习模型MTL: MMoE、PLE

常见的监督学习包括:回归:预测值为连续值,如销售额;二分类:预测值为离散值,且只有两种取值,如性别,要么是男,要么是女;多分类:预测值为离散值,且多于两种取值,如动物分类,可能有猫、狗、狮子等等;还有另外一种,也是本文的主角:多任务学习(Multi Task Learning)。MTL介绍首先,介绍什么是多任务学习,例如之前文章提到的微信视频场景,同时包含多个学习目标(task):是否转发、是否点赞、是否关注等。微信大数据挑战赛以往的做法可能会对不同的task分别建立对应的模型,但这样会

2021-10-25 19:00:00 5759

原创 TensorFlow Serving:深度学习模型在生产环境的部署&上线

TensorFlow Serving简单来说就是一个适合在生产环境中对tensorflow深度学习模型进行部署,然后可以非常方便地通过restful形式的接口进行访问。除此之外,它拥有许多有点:支持配置文件的定期轮询更新(periodically poll for updated),无需重新启动;优秀的模型版本控制;支持并发;支持批处理;基于docker,部署简单。(这些优点我们在下面会逐一提到)安装官方极力推荐通过docker的方式进行安装,所以,首先我们需要进行docker的

2021-09-07 21:53:55 3228 2

原创 强大的向量数据库:Milvus

在推荐系统中,向量的最邻近检索是极为关键的一步,特别是在召回流程中。一般常用的如Annoy、faiss都可以满足大部分的需求,今天再来介绍另外一个:MilvusMilvusMilvus不同于Annoy、faiss这类型的向量检索工具,它更是一款开源向量数据库,赋能 AI 应用和向量相似度搜索。涉及的术语Filed:类似表字段,可以是结构化数据,当然还可以是向量;Entity:一组Filed,类似表的一条数据;Collection:一组Entity,类似于表;亮点Milvus不单单是向.

2021-09-01 21:50:59 7272 1

原创 推荐系统的向量检索工具: Annoy & Faiss

在推荐系统的召回阶段,如Youtube DNN和DSSM双塔模型,向量的最邻近检索是必不可少的一步。一般的做法不会让模型在线预测召回,而是先离线将向量存储,然后在线上进行向量的最邻近检索,作为模型的召回。这篇文章将介绍两个常用的向量最邻近检索工具:Annoy和Faiss。AnnoyAnnoy Github安装pip install annoy支持的距离度量Annoy仅支持树结构的索引类型。欧式距离euclidean内积dot汉明距离hamming两个二进制字符串的距

2021-08-23 21:46:54 2173

原创 TensorFlow-HasTable: 特征ID映射集成TF中

相信很多同志,在做深度学习模型的过程中,往往会需要将特征的原始值映射为数值类型的ID,然后再通过tf.nn.embedding_lookup转化为dense向量。最终,在上线的时候,映射关系一般保存为哈希表(dict),但如果特征很多,那么管理起来就很麻烦。今天这篇博客会讲述《如何将这个过程在tensorflow实现》!MutableHashTable首先,先附上官方的API文档tf.contrib.lookup.MutableHashTable( key_dtype, value_dtyp

2021-07-05 21:21:30 1204

原创 任务调度管理工具:Airflow

安装airflow是由python编写的,安装也比较简单,可以直接通过pip命令安装:pip install airflowpip install airflow# 安装airflow使用mysql的相关依赖pip install airflow[mysql]# 可以用all安装所有相关的插件依赖pip install airflow[all]但是,官方提到,这样安装容易缺失部分前置依赖,CONSTRAINT_URL里面包含了所有airflow涉及到的依赖;我们可以在pip inst

2021-04-22 21:56:57 1115 1

原创 Supervisor:优秀的进程管理工具

前言在服务器中,我们对于项目程序、服务等等的进程管理:启动:如python,一般就是cd到对应的目录,然后通过python xxx.py进行启动;关闭:通过ps -ef | grep program_name找到对应的pid,然后再将其kill。这种管理方式确实很不方便。Supervisor安装今天就介绍一个主要是针对python的进程管理工具。(为什么说是主要呢?后面再揭晓)pip install supervisor生成配置文件如果你有root用户的权限:echo_super

2021-03-30 21:22:09 305 1

原创 tensorflow中batch_normalization的正确使用姿势

原理batch_normalization一般是用在进入网络之前,它的作用是可以将每层网络的输入的数据分布变成正态分布,有利于网络的稳定性,加快收敛。具体的公式如下:γ(x−μ)σ2+ϵ+β\frac{\gamma(x-\mu)}{\sqrt{\sigma^2+\epsilon}}+\betaσ2+ϵ​γ(x−μ)​+β其中γ\gammaγ和β\betaβ是决定最终的正态分布,分别影响了方差和均值,ϵ\epsilonϵ是为了避免出现分母为0的情况tensorflow在真实的使用中,均值μ\muμ和

2021-03-27 17:55:42 1331 1

原创 Flask优雅的使用教程(2):Resource

上一篇博客,讲述了flask最简单的接口实现demo:Flask优雅的使用教程(1):route安装pip install flaskpip install flask_restful参数校对在进行接口开发的时候,我们经常是提前约定好参数以及格式,这个时候,参数的校对就可以交给flask去做了,包括必要参数的检验、参数格式的检查等。总的来说,一般参数的类型有以下几种:普通的字符串、数值、数组等,直接设置对应的类型即可,如type=str;json:包括json里面嵌套json或json数组

2021-03-27 13:37:57 2079 1

原创 Flask优雅的使用教程(1):route

安装pip install flaskgetimport jsonfrom flask import Flask, request, jsonifyapp = Flask(__name__)@app.route('/api/get/', methods=["GET"])def get(): args = request.args name = args['name'] info = json.loads(args['json']) print("n

2021-03-27 13:22:05 801 1

原创 tensorflow eatimator实现early-stopping

相信大家,为了避免过拟合,经常需要用到early stop,即在你的loss接近收敛的时候,就可以提前停止训练了。预备知识tensorflow estimator详细介绍,实现模型的高效训练tensorflow通过tfrecord高效读写数据API介绍tf.estimator.experimental.stop_if_no_increase_hook( estimator, metric_name, max_steps_without_increase, eval_dir=None, mi

2021-03-23 21:44:35 1398 1

原创 pyspark打包依赖包&使用python虚拟环境

一、anaconda创建python环境anaconda创建python环境在这篇博客中,已经很清楚地描述了如何通过anaconda来创建你需要的python环境:即合适的python版本和包含你需要的依赖包。二、打包python环境假设我们的python环境名称为py_env,那么在anaconda的安装目录下,envs/py_env在Windows下,直接将使用压缩软件,将其压缩为zip文件;在Linux下,zip py_env.zip py_env。(必须py_env文件夹所在的目录下执行

2021-03-10 22:18:18 7313 13

原创 pyspark融入pandas的优势,真香!

近期,在使用spark的时候,发现spark在python下的使用,pyspark还挺好用的。你甚至可以把它当作pandas来使用,众所周知,pandas在数据处理方面是很强大的,不谈性能,它提供了许多的内置方法,非常的方便,极大的减少我们的开发时间。下面,简答来得展示一下它的具体使用。首先,我们初设一个SparkSession,并开启pandas的支持:Pandas with Apache Arrow;接着,简单的新建一个spark的DataFrame对象:df。import pandas as

2021-02-28 14:13:12 4306

原创 Spark在本地环境进行yarn模式的提交

一般来说,spark on yarn是将spark程序的jar包上传至服务器,然后通过spark-submit的方式。但是,相信很多人不是一次性就能写没有bug的spark代码,都有反复调试的需求,那么,上述方式的调试效率就很低了,所以,最好的方法还是能够在本地进行yarn的提交。实现代码废话不多说,先献上代码import org.apache.spark.{SparkConf, SparkContext}class SparkYarn extends Serializable { d

2021-02-28 12:45:26 1299 1

原创 Spark连接Hive,进行Hive数据表的读写操作

基础环境Hadoop安装-1,hadoop安装-2spark安装Hive安装配置将Hive的conf目录下的hive-site-xml文件拷贝到spark的conf目录下;将Hive中的mysql驱动包(mysql-connector-java-8.0.22.jar,根据自己mysql的版本进行选择)也拷贝到spark的jars目录下;spark-shell当完成了上面的步骤之后,在spaek-shell中,就可以访问hive了。import org.apache.spark.sq

2021-02-27 10:52:12 1713

原创 GitHub多账号管理

生成SSH密钥macbook打开终端(Windows打开git bash),执行命令:ssh-keygen -t rsa -C "账号1邮箱地址"然后它会在~/.ssh目录下,生成id_rsa和id_rsa.pub两个文件。上述是只有一个账号时,默认生成的密钥文件。当我们有另外的账号时,需要指定密钥文件的名称。ssh-keygen -t rsa -C "账号2邮箱地址" -f ~/.ssh/github_rsa此时,会生成另外账号2对应的密钥文件:github_rsa和github_rsa

2021-02-23 22:15:16 605

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除