自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【Python】Python类的继承

Python类的继承

2022-08-11 15:47:38 491 1

原创 【机器学习】神经网络中的优化器

SGD、Momentum、NAG和AdaGrad这篇讲的很好RMSProp、Adam这篇讲的很好这篇可以看看递推

2022-08-07 15:35:42 1088

原创 【Python】Python类中函数之间调用变量

代码】【Python】Python类中函数之间调用变量。

2022-07-25 16:08:25 2050

原创 【广告系统】增量训练 & 特征准入/特征淘汰

增量训练 特征准入 特征淘汰

2022-07-02 15:49:10 1534 1

原创 【广告系统】Parameter Server分布式训练

parameter server分布式训练

2022-07-02 14:34:26 740

原创 【推荐系统学习】推荐系统的技术栈

推荐系统的技术栈

2022-06-26 15:25:32 1222

原创 【推荐系统学习】推荐系统架构

推荐系统学习

2022-06-26 14:46:29 3786

原创 【多模态】《Bilinear Attention Networks》论文阅读笔记

一、概述这篇文章做的是VQA,是对【多模态论文阅读】HADAMARD PRODUCT FOR LOW-RANK BILINEAR POOLING这篇文章中所讲述的多模态低秩双线性池化MLB的扩展。在MLB的论文中,已经讲过可以通过添加attention来实现自然语言query对视觉区域进行attention的做法,具体可以参考【多模态论文阅读】HADAMARD PRODUCT FOR LOW-RANK BILINEAR POOLING。这篇论文最大的创新点在于:提出做attention的时候,让每一对

2022-05-26 12:50:49 928

原创 【多模态】《Beyond Bilinear: Generalized Multimodal Factorized High-order Pooling for VQA》论文阅读笔记

这篇文章做的是VQA,是【多模态论文阅读】Multi-modal Factorized Bilinear Pooling with Co-Attention Learning for Visual Question Answering这篇文章的扩展工作,也就是说将介绍的MFB的结构进行了级联扩展,从而进行了高阶多模态双线性池化。回顾MFB的结构如下:模型结构非常简单,就是级联了【多模态论文阅读】Multi-modal Factorized Bilinear Pooling with Co-Attent

2022-05-25 20:49:27 369

原创 【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记

一、概述这篇文章做的是视频分类,即通过视频帧的特征和声音特征这两种模态进行多模态融合并分类。这篇文章的思路非常巧妙,采用了Transformer的结构对多种模态的特征进行了编码,因为Transformer本身就是一个编码器,这篇文章的巧妙之处就在于使用的是一个Transformer对两种模态进行编码。同时,在本文的模型框架中,在早期的时候,在模态内部做self attention;在中后期的时候,在模态之间做attention。而且这是可以动态进行调整的,也就是说可以通过调整参数来控制在一个Transf

2022-05-25 17:15:22 1389

原创 【多模态】《Multimodal Residual Learning for Visual QA》论文阅读笔记

一、概述这篇文章做的是VQA。这篇文章最大的创新点在于在【多模态】《Stacked Attention Networks for Image Question Answering》论文阅读笔记这篇的基础之上,引入了更多的堆叠block并通过残差连接解决可能会出现的梯度消失问题。二、残差网络三、模型提出的出发点在一些注意力网络中,是把问题作为query去对视觉区域做attention,然后得到统一的多模态融合表征,即:F(q,V)F(q,V)F(q,V)代表的是统一的多模态表征,pip_ipi​

2022-05-25 14:25:39 400

原创 【多模态】《GATED MULTIMODAL UNITS FOR INFORMATION FUSION》论文阅读笔记

一、概述这篇文章做的是多模态分类任务——也就是融合视觉和文本特征,并进行分类。这篇文章主要的亮点在于使用了类似于LSTM中的gate机制,提出了一种基于门控神经网络的多模态学习新模型。 门控多模态单元 (GMU) 模型旨在用作神经网络架构中的内部单元,其目的是根据来自不同模态的数据的组合找到中间表示。 GMU 学习使用乘法门来决定模态如何影响单元的激活。我们提出的模块基于门的想法,用于选择输入的哪些部分更有可能有助于正确生成所需的输出。 我们使用同时为各种特征分配重要性的乘法门,创建不需要手动调整的丰富

2022-05-25 13:37:53 2014

原创 【多模态】《High-Order Attention Models for Visual Question Answering》论文阅读笔记

这篇文章做的是VQA。同时,这篇文章集成了基于attention的多模态融合方法和基于双线性池化的多模态融合方法,为做VQA等多模态任务提供了很好的思路。模型比较简单,但高效。简单之处在于模型的组件都在之前的博客中学习过,没有新的结构之类的。高效之处在于集成了基于attention的多模态融合方法和基于双线性池化的多模态融合方法。基于attention的多模态融合方法可以参考以下几篇博客:【多模态】《Stacked Attention Networks for Image Question Ans

2022-05-24 20:54:45 389 1

原创 【多模态】《Dual Attention Networks for Multimodal Reasoning and Matching》论文阅读笔记

一、概述这篇文章做了两个任务:一个适用于需要多模态推理的任务,例如 VQA;另一个适用于需要多模态匹配的任务,例如Image-Text Matching。这篇文章在【多模态】《Hierarchical Question-Image Co-Attention for Visual Question Answering》论文阅读笔记这篇文章需要对视觉和文本进行互相的co-attention建模的基础之上,提出多跳融合。尽管前者同时应用了视觉和文本注意,但它独立地执行共同注意的每个步骤,而无需对先前的共同注意

2022-05-24 16:34:00 554

原创 【多模态】《Hierarchical Question-Image Co-Attention for Visual Question Answering》论文阅读笔记

一、概述这篇文章做的是VQA与之前介绍的几篇文章用问题query对图像做attention不同的是,这篇文章最大的亮点在于:在本文中,我们认为除了建模“看哪里”或视觉注意力之外,建模“听什么词”或质疑注意力同样重要。 我们为 VQA 提出了一种新颖的共同注意力模型,该模型共同推理图像和问题注意力。 此外,我们的模型通过新颖的一维卷积神经网络 (CNN) 以分层方式对问题(以及因此通过共同注意机制的图像)进行推理。之前的几篇用问题query对图像做attention的博客如下:【多模态】《Stack

2022-05-24 14:27:39 577

原创 【多模态】Co-attending Free-form Regions and Detections with Multi-modal Multiplicativ Emb for VQA 论文阅读笔记

一、概述这篇文章做的是VQA。在之前几个博客中,我们有提到在问题query对图像做attention的时候,有两种attention方式,一种是对feature map做attention,另一种是对Faster R-CNN抽取到的bounding box做attention。对feature map做attention的模型可以参考以下几篇论文阅读笔记:【多模态】《Stacked Attention Networks for Image Question Answering》论文阅读笔记【多模态

2022-05-24 12:54:52 339

原创 【多模态】《Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering》论文阅读笔记

一、概述这篇文章既做了image caption,也做了VQA。所以本文在介绍模型亮点和框架之后,也会对image caption和VQA的建模方式进行介绍,因为大多数模型在这两个任务上都是通用的。这篇文章相较于之前介绍的几篇在多模态任务上应用attention机制的文章来说,之前的几篇文章:【多模态】《Stacked Attention Networks for Image Question Answering》论文阅读笔记【多模态】《Where To Look: Focus Regions fo

2022-05-23 22:31:57 428

原创 【多模态】《Stacked Attention Networks for Image Question Answering》论文阅读笔记

一、概述这篇文章做的任务是视觉问答。论文的创新点主要在于在使用问题的语义表示作为查询来搜索图像中与答案相关的区域的基础之上,开发了一个多层 SAN(Stacked Attention Networks),在其中多次查询图像以逐步推断答案。模型的结构图如下:SAN首先使用问题向量查询第一个视觉注意层中的图像向量,然后将问题向量和检索到的图像向量组合成一个细化的查询向量,在第二个注意层再次查询图像向量。 更高级别的注意力层给出了更清晰的注意力分布,专注于与答案更相关的区域。 最后,我们将来自最高注意力层

2022-05-23 19:36:17 433 1

原创 【多模态】《Where To Look: Focus Regions for Visual Question Answering》论文阅读笔记

1. 模型概述这篇论文做的是视觉问答。模型的主要创新点在于将来自不同区域的视觉特征[v1,v2,...,vK][v_1,v_2,...,v_K][v1​,v2​,...,vK​]和文本查询q映射到一个共享空间中,然后在该空间中通过计算内积来衡量两种模态之间的相关性,然后加权求和等。模型结构为:2. 视觉问答的目标:我们的模型针对 VQA 数据集的多项选择任务进行了训练。 对于给定的问题及其相应的选择,我们网络的目标旨在以结构化学习的方式最大化正确和错误选择之间的差距。 我们通过在预测置信度 y 上

2022-05-23 18:30:51 250

原创 【多模态】《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》论文阅读笔记

这篇文章是做image caption的,模型的创新点在于引入“hard”attention和“soft”attention对视觉区域进行不同的注意。模型结构跟【多模态】《Visual7W: Grounded Question Answering in Images》论文阅读笔记相似,区别在于对注意力机制的设置上。“hard” attention:sts_tst​代表模型在生成第 t 个词时focus的位置变量, 当第 i 个location(总共L个)用来作为视觉特征时,st,i=1s_{t,i}=

2022-05-23 17:58:07 309

原创 【多模态】《Visual7W: Grounded Question Answering in Images》论文阅读笔记

本文是做视觉问答的,模型的主要创新点在于在LSTM中融入对图像特定区域的attention——在 LSTM 架构中添加了一种新的空间注意机制,用于通过文本和视觉答案来处理基于视觉的 QA 任务。 该模型旨在捕捉对图像相关问题的答案通常与特定图像区域相对应的直觉。 当它按顺序读取问题标记时,它会学习关注相关区域。模型架构为:给定一个图像 I 和一个问题 Q = (q1, q2, . . . , qm),我们学习图像的嵌入和单词标记如下:F(·) 将图像 I 从像素空间转换为 4096 维的特征表示。

2022-05-23 16:09:38 507 2

原创 【多模态】多模态相关的博客总结

一、理解多模态BERT的两种预训练任务 如何更好的理解多模态BERT的两种预训练任务二、多模态在工业上的实战应用 1分钟|多模态公司工业级实战文章分享 杨宇鸿:腾讯多模态内容理解技术及应用 KDD Cup 2020多模态召回比赛亚军方案与搜索业务应用 当推荐系统遇上多模态Embedding三、多模态融合方法 【attention系列】使用attention模块来做多模态融合 最近一些多模态工作的个人理解(三) 多模态数据的表示、融合方法简述 面向深度学习的多模态融合技术研究综

2022-05-22 15:02:28 410

原创 【Keras】基于tf2.0+和tf.keras的Transformer实现

代码来自: Learning transferable visual models from natural language supervision该代码主要由有train.py、data_loader.py、model.py、utils.py和test.py组成,每一个python文件的作用如下:train.py:初始化DataLoader(来自于data_loader.py)并调用DataLoader的load()方法构建训练集和验证集;构建Transformer(来自model.py)的模型结

2022-05-20 16:42:41 3175

原创 【算法】局部敏感哈希 LSH 的 Python 实现

一、哈希算法普通的哈希算法:把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。最理想的是所有不同的输入都可以映射到散列值,但是存在这种可能性的。当不同的输入映射到相同的散列值时,就称为碰撞冲突。哈希算法是要避免碰撞冲突,而局部敏感哈希(Locality-Sensitive Hashing, 下面我们简称LSH)则相反,是要创造更多的碰撞冲突。二、局部敏感哈希在很多领域中,经常会使用最近邻查找,例如人脸匹配、指纹匹配等,输入一个人脸数据(一般对应一个向量),然后跟数据库中的所有人脸

2022-05-20 14:21:42 5003 3

原创 【工程应用】用Redis存储特征

一、Redis应用背景在工程应用中,类似 Embedding 这样的特征是在离线环境下生成的,而推荐或各种服务器是在线上环境中运行的,那这些离线的特征数据是如何导入到线上让推荐服务器使用的呢?Netflix 采用了非常经典的 Offline、Nearline、Online 三层推荐系统架构。架构图中最核心的位置就是图中用红框标出的部分,它们是三个数据库 Cassandra、MySQL 和 EVcache,这三个数据库就是 Netflix 解决特征和模型参数存储问题的钥匙。对于推荐服务器来说,由于线上

2022-05-19 15:09:33 617

转载 【工程应用】XGBoost应用(Python)

XGBoost是eXtreme Gradient Boosting的缩写,它是一个十分强大的Boosting算法工具包。XGBoost在并行计算效率、缺失值解决、抑制过拟合、预测泛化能力上都变现十分优良。一、基础XGBoost安装基于pip就能够轻松实现:pip install xgboost二、XGBoost数据读取应用XGBoost的第一步,需要加载所需的数据成为工具库所能支持的格式形态。XGBoost可以加载多种数据格式的数据用于训练建模:libsvm格式的文本数据。Numpy的二维

2022-05-18 18:51:15 1960

原创 【算法】GBDT & XGBoost

一、GBDTGDBT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终结果。它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起广泛关注。GBDT是一个应用很广泛的算法,可以用来做分类、回归。在很多的数据上都有很不错的效果1.1 决策树决策树分为俩大类,分类树和回归树。分类树是我们比较熟悉的决策树,比如C4.5分类决策树。分类树用

2022-05-18 16:06:42 3875

原创 【多模态】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 论文阅读及代码解析

一、MoE简介MMoE是在MoE的基础之上,引入多任务而来,关于MoE的相关解读,可以参考我的另一篇博客:【论文阅读】Adaptive Mixtures of Local Experts二、MMoE简介关于MMoE的论文阅读在我的另一篇博客中已经讲到,具体可以参考:【推荐算法论文阅读】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-ExpertsMMoE的模型结构如下图(c)所示:MMo

2022-05-18 14:49:54 448

原创 【计算机基础】Linux命令(持续更新中)

1.tail -f filename说明:监视filename⽂件的尾部内容(默认10⾏,相当于增加参数 -n 10),刷新显⽰在屏幕上。退出,按下CTRL+C。2.tail -n 20 filename说明:显⽰filename最后20⾏3.du -sh *说明:读取该文件夹中每个文件的大小4.cat A B C > D.txt说明:合并A B C到D文件...

2022-05-18 13:48:00 69

转载 【C++】多线程

多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。基于进程的多任务处理是程序的并发执行。基于线程的多任务处理是同一程序的片段的并发执行。多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径。一、创建线程下面的程序,我们可以用它来创建一个 POSIX 线程:#include <pthread.h>pthread_create (thr

2022-05-18 13:11:36 124

转载 【C++】预处理器

预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。我们已经看到,之前所有的实例中都有 #include 指令。这个宏用于把头文件包含到源文件中。C++ 还支持很多预处理指令,比如 #include、#define、#if、#else、#line 等,让我们一起看看这些重要指令。一、#define 预处理#define 预处理指令用于创建符号常量。该符

2022-05-17 16:47:13 169

转载 【C++】模版

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如 vector 或 vector 。模板是一种工具。使用它会给程序员编写大规模的软件带来方便。因为使用模板可以使程序员建立具有通用类型的函数库和类库。模板也是C++语言支持参数化多态性的工具。将一段程序所处理的对象类型参数化,就可以使这段程序能够处理

2022-05-17 16:28:41 115

转载 【C++】多态

一、C++ 多态多态是面向对象程序设计的一个重要特征。多态的字面意思就是多种状态,在面向对象的程序设计中,一个接口,多种实现即为多态。c++的多态性具体体现在编译和运行两个阶段。编译时多态是静态多态,在编译时就可以确定使用的接口。运行时多态是动态多态,具体引用的接口在运行时才能确定。多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基类 Shape 被派生为两个类,

2022-05-17 16:06:17 82

转载 【C++】重载运算符和重载函数

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。一、C++ 中的函数重载在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)

2022-05-17 15:55:41 161

转载 【C++】命名空间

假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。这样,编译器就无法判断您所使用的是哪一个 xyz() 函数。因此,引入了命名空间这个概念,专门用于解决上面的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。

2022-05-17 15:06:09 80

转载 【C++】动态内存

了解动态内存在 C++ 中是如何工作的是成为一名合格的 C++ 程序员必不可少的。C++ 程序中的内存分为两个部分:栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址。这种运算符即 new 运算符。如果您不再需要动态分配的内存空间,可以使

2022-05-17 14:58:29 184

转载 【C++】异常处理

异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw:throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。如果有一个块抛出一

2022-05-17 14:02:24 142

转载 【C++】文件和流

到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:要在 C++ 中进行文件处理,必须在 C++ 源代码文件中包含头文件 和 。一、打开文件在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作

2022-05-13 16:06:41 170

转载 【C++】C++ 继承

面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。代码如下:// 基类class Animal { // eat() 函数 // sl

2022-05-13 14:56:26 76

转载 【C++】C++ 类 & 对象

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。一、C++ 类定义定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。类定义是以关键字 class 开头,后跟类的名称。类的主体

2022-05-13 14:16:50 134

空空如也

空空如也

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

TA关注的人

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