自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卢之

阅文集团作家,量化交易小白,兼职某厂推荐算法工程师。

  • 博客(64)
  • 收藏
  • 关注

原创 tensorflow 异步训练及其优化

目前遇到了 tensorflow 进行分布式训练中出现 worker 训练不均的情况,这里记录一下解决问题查找的一些资料和想法推测。关于分布式的原理以及源码说明,可以参考最后的“主要参考资料”部分。目前框架实现部分使用了分布式策略,主要对应的文章就是。该算法默认采用了, 链接当中有说明,那我们看一下这个调度算法是否会造成 worker分布不均的情况。

2024-04-03 10:24:30 616

原创 论文解读 DIN: Deep Interest Network for Click-Through Rate Prediction

论文地址:https://arxiv.org/abs/1706.06978DIN是阿里发表在 KDD2018 上的一篇关于对用户行为序列建模的一篇论文。论文出了一种新型模型: 深度兴趣网络(DIN)。通过设计一个局部激活单元来自适应地学习用户对某一广告历史行为的兴趣表征,从而解决了这一难题。这种表征向量会随不同的广告而变化,从而大大提高了模型的表达能力。此外,论文还提出了迷你批量感知正则化和数据自适应激活函数,它们可以帮助训练具有数亿个参数的工业深度网络。

2024-03-26 21:43:14 811

原创 MLIR 优化学习

MLIR(多级中间表示)是编译器实用工具的表示格式和库,它位于模型表示与生成硬件特定代码的低级编译器/执行器之间。MLIR 本质上是用于现代优化编译器的灵活基础架构。这意味着它由一个中间表示 (IR) 规范和一个用于对该表示执行转换的代码工具包组成。(用编译器领域的话来说,当您从高级表示转换为低级表示时,此类转换可以被称为“降级”。MLIR 深受 LLVM 的影响,并且明显重用了后者的许多绝佳创意。它有一个灵活的类型系统,并允许在同一编译单元中结合多个级别的抽象来表示、分析和转换计算图。

2024-03-25 21:32:28 859

原创 2024 推荐系统论文汇总

对2024年的 推荐系统论文进行一波收集,给各位初学者和算法大佬作为灵感来源,后续专栏会继续更新论文解读,根据评论不断补充,欢迎大家三连~

2024-01-08 10:53:24 4317 4

原创 [ICLR 2023] MASKFUSION: FEATURE AUGMENTATION FOR CLICK-THROUGH RATE PREDICTION VIA INPUT-ADAPTIVE

这种方式基本上属于万金油的trick优化方式,提升Mask的准确性以及泛化性,适用于各个以DNN为基础的推荐系统,也属于比较好工程实现的方式。

2023-04-16 11:30:31 324 2

原创 2023 推荐系统论文整理

对2023年的推荐系统论文进行一波收集,给各位做灵感。

2023-04-14 16:25:54 7383

原创 NameError: name ‘tf‘ is not defined

NameError: name 'tf' is not defined报错如下:/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/layers/core.py in <lambda>(x) 307 It defaults to the `image_data_format` value...

2023-03-29 09:49:00 2722

原创 ValueError: The two structures don‘t have the same sequence length. Input structure has length 4

ValueError: The two structures don't have the same sequence length. Input structure has length 4, while shallow structure has length 3.整体报错:/opt/conda/lib/python3.6/site-packages/tensorflow/python/...

2023-03-14 10:45:00 518

原创 量化交易基础 - 012 - 检验中的假设条件

检验流程中的另一组成部分是假设条件,这些有关交易策略的假设条件在历史上已被检验。这里我们讨论两个例子:交易成本和(股票市场中性策略或多头/空头策略)空头头寸的可得性。交易成本已经被研究过,包含佣金和手续费、滑点、市场冲击。因此,研究员必须做出一些假设,假设订单因为市场冲击而造成的成本大小。一般而言,过高估计交易成本会使得宽客持有头寸时间长于可能的最佳值。然而低估交易成本将使得宽客太频繁地更换投资组合,产生额外的交易成本。

2023-03-11 21:49:10 116

原创 Tf2 ValueError: A merge layer should be called on a list of inputs

这个问题以前遇到过,这次又遇到的时候忘了怎么解决的,这次进行一下记录。我先搜了下资料,如果有这个类似问题的话可以跳转至参考部分。

2023-03-02 09:41:35 614

原创 量化交易基础 - 011 - 样本外检验

新的有趣的事情会混淆我们的理解。一些研究员使用滚动样本外数据的方法(rolling out-of-sample technique),在这种方法中,最古老的数据点将会被丢弃,最新的数据点被用来拟合(样本内)和检验(样本外)模型。如果样本外检验的R2与样本内检验的R2相当接近(即,如果比率大于等于0.5),则被认为是一个好的模型。样本外检验(out-of-sample testing)是检验流程中的第二部分,是告知研究员去除样本内检验中那些虚拟表格(cheat sheet)的帮助后,策略在实际中是否起作用。

2023-03-01 21:30:47 1256

原创 量化交易基础 - 010 - 拟合

但是让我们来回想量化交易模型的目的,类似于寻找阿尔法的交易者的目的,是预测未来,而不是解释过去。而且,取决于重新拟合实施的过程,也可以使用尽可能少的数据进行拟合,以免出现过度拟合的现象。然而,在判定量化策略的优度时,仍有一个极其重要的指导原则,这就是过度拟合。我们建立的模型本身就是对未来的一般性指引的概括性描述,当以这种方式进行表述,很清楚我们宁愿模型更谨慎一些,不要犯错。正因如此,对有许多参数或因子的模型通常要持怀疑的态度,尤其要考虑过度拟合的风险。第二,研究员由于条件的限制,创建相当复杂的模型。

2023-02-26 22:19:30 143

原创 量化交易基础 - 009 - 检验 (2)

斯特林比率(Sterling ratio,平均收益率与低于平均收益率的波动率),Calmar比率(Calmar ratio,平均收益率与波峰波谷间最大回测的比值),Omega比率(Omega ratio,正收益率之和与负收益之和的比值)也是广泛应用于调整风险收益的度量指标。夏普比较越高,策略越好。然而,策略的效应是非常短暂的,对接收到信息的及时性非常敏感。虽然计算新策略与现存的投资组合策略之间的相关系数是件寻常的事情,但许多宽客通过比较现存策略的结果和加进新思想后的结果,度量新策略的新增价值。

2023-02-24 21:05:57 167

原创 量化交易基础 - 007 - 研究

相反,量化研究不得不进行持续的研究,采取措施确保研究成果丰富多产。这是因为,自然是相对稳定的,但市场并非如此。无论是来自监管的改变、投资者和交易者聚集的心理的诡异变化、交易者追逐阿尔法的持续竞争还是其他现象,都表明市场实际上是一个高度动态过程。基于这个原因,量化交易者必须持续不断地进行研究,以使得他们能够更严谨与更深谋远虑,正如他们在开发最初的策略时一样。而且在自然科学领域,一个良好的理论,既很好地被证据所支持且有着广泛的实际应用价值,例如爱因斯坦的相对论,并不需要为了继续有效而修正。

2023-02-23 22:17:47 78

原创 量化交易基础 - 008 - 检验 (1)

在量化金融领域,毫不夸张地说,我们试图预测期货价格/收益率/一些金融产品的趋势,使其R2为1是不可能的,除非方法是错误的。对于这个问题,并没有太多的解决方案:计算下行风险的样本要么足够大,以至于能够覆盖很大范围内的市场体制以及有利的和不利的环境(尤其与策略测试相关的环境),要么不能覆盖。另一方面,模型允许使用的数据越多,当被调整的时候,构建模型的风险就越大,此时的模型仅仅能对过去进行很好的解释。策略的回测越低,策略越优。块度(lumpiness),指的是显著高于平均收益的时间段内的收益占策略总收益的比例。

2023-02-22 23:36:28 85

原创 量化交易基础 - 006 - 数据类型、来源和清洗

存储和提取数据所使用的数据库技术很大程度上取决于所使用数据的属性。如果数据的搜集和预处理工作没有做好,将会带来严重的后果,从另一方面阐明了数据的重要性。毕竟,当你对结果进行仔细检查时,结果通常是带着很多小数的一串精确数字,但这只是虚假精确(false precision)。所以,面对一个带有很多位小数的精确数字时,我们并不可以完全信赖这一数字。因为我们所关心的交易类型是具有时效性的,因而时间因素显得很重要。

2023-02-22 21:16:02 210

原创 量化交易基础 - 005 - 订单执行算法

现在量化交易的流程和以前人为执行交易的年代并没有什么显著不同。一些交易者喜欢主动地参与执行自己的订单,而另一些则把执行订单的工作外包给经纪商去做。一些公司会把执行订单外包给提供订单执行服务的第三方公司,第三方公司会站在交易者的立场上与经纪商交涉。现在,还有些公司继续雇用人力进行人工交易,但大部分量化交易公司通过算法来执行订单。正如上文所提及的,有些公司具有自己研发的订单执行算法,另一些公司则使用经纪商或其他服务供应商所提供的算法。订单执行算法的主要目的是,以尽可能低的价格,尽可能完整地完成想要交易的订单。

2023-02-21 21:48:24 342

原创 量化交易基础 - 004 - 投资组合优化技术

支持在投资组合构建中使用机器学习方法的观点认为,均值方差优化方法是一种数据挖掘类方法,通过在各种可能的投资组合中进行搜索,寻找表现出最好特征(通过优化工具的目标函数得以体现)的一类。机器学习领域差不多也在做基本相同的事情,这一领域已经受到了学界不同学科的关注,而不只是投资组合优化,投资组合优化仅仅是个金融领域的一个主题。这个方法的一个优势在于,投资组合的数量更加易于管理,根据在阿尔法模型中所使用的单个因素的数量,通常不会超过20个。在设计搜索最优解的算法时,需要在搜索的全局性和搜索速度间进行平衡。

2023-02-20 21:55:07 486

原创 量化交易基础 - 003 - 投资组合最优化

均值方差优化技术是基于MPT构建投资组合的一种常用方法。均值和方差是传向优化器的两个输入变量,输出变量是在各个风险水平上具有最高收益的一系列投资组合。这里的均值是指进行评估的各种资产的平均期望收益,方差是对各种资产期望风险的度量,通过计划持有的各种资产收益的标准差来计算。传向优化器的第三个输入变量是这些资产的期望相关系数矩阵(expected correlation matrix)。

2023-02-17 10:57:40 230

原创 模型预处理层介绍(3) - IntegerLookup

IntegerLookup 的作用,是将整型特征映射到连续范围的预处理层。IntegerLookup 层通过基于表的词汇表查找将一组任意整数输入标记映射到索引整数输出。该层的输出索引将连续排列,直到最大词汇表大小,即使输入标记是非连续的或无界的。该层支持通过 output_mode 对输出进行编码的多个选项,并可选地支持词汇表外(out-of-vocabulary, OOV)令牌和Mask进行掩码屏蔽。层的词汇必须在构造时提供,或者通过 adapt()学习。

2023-02-16 14:38:34 210

原创 模型预处理层介绍(2) - Hashing

Hashing的方式本质上也是分桶,在上一篇我们提到过的bucket的方式进行分桶,而在Hashingd的方法中,所有的输入都会通过Hash映射进行转换成int,然后再进行分桶。该层将分类输入转换为散列输出。它在元素上将一个转换为固定范围内的int型。稳定哈希函数使用tensorflow::ops::Fingerprint在所有平台上产生一致的输出。该层默认使用FarmHash64,它在不同的平台上提供一致的散列输出,并且通过彻底混合输入位,在不同的调用中都是稳定的,而不考虑设备和上下文。

2023-02-16 10:14:55 232

原创 量化交易基础 - 002 - 相等风险加权以及阿尔法驱动型加权

无论使用哪种基于规则的投资组合构建模型,在投资组合构建过程中都可以综合使用阿尔法模型、风险模型和交易成本模型。例如,在相等权重模型中,根据交易成本模型,某些产品的交易成本过高而无法进行交易,所以需要对相等权重加以限制。这些内容也可以在阿尔法模型内部加以考虑,例如添加一个控制变量,如果期望收益小于预期交易成本的阈值,就将期望收益设置为0,从而由阿尔法模型发出的任何信号可以被赋予相同的权重。总的来说,基于规则的投资组合构建模型可以极其简单(相等权重投资组合),也可以非常复杂(带各种约束的阿尔法权重方法)。

2023-02-15 11:22:03 301

原创 量化交易基础 - 001 - 基于规则投资 - 相等头寸加权

基于规则投资组合笔记。

2023-02-14 22:37:52 156 2

原创 分布式系统【1】

地域上扩展限制难以扩充为局域网的分布式系统的原因局域网分布式系统基于同步通信,难以适用于广域网集中式组件性能可靠性问题安全问题,资金问题,管理问题扩展技术隐藏通信等待时间异步通信减少通信量: 由服务器检查表单,由客户端检查表单分布技术分割组件,分散到系统,DNS(域名的划分),WWW复制技术:多拷贝复制:增加可用性,有助于负载均衡缓存: 在访问资源的客户周围...

2023-02-14 22:00:12 118 2

原创 将博客搬至CSDN

同步更新到csdn

2023-02-14 16:47:00 34

原创 模型预处理层介绍(1) - Discretization

预处理的作用主要在于将难以表达的string或者数组转换成模型容易训练的向量表示,其中转化过程大多是形成一张查询表用来查询。常见的预处理方式包括:接下来,本文将介绍下这些常用的预处理方式的作用和内容。

2023-02-14 16:41:27 209

原创 [CVPR2021]Beyond Self-attention External Attention using Two Linear Layers for Visual Tasks

这篇论文已经不是推荐系统系列论文当中了,而是作为讨论注意力机制以及普通的全连接层之间的关系,也就是我们是否需要使用那么复杂的注意力机制来完成各种任务。介绍注意力机制,特别是自注意力机制,在视觉任务的深度特征表示中发挥着越来越重要的作用。自我注意机制通过计算特征的加权和来更新每个位置的特征,使用所有位置的成对亲和力来捕捉单个样本内的长程依赖性。然而,自我注意机制具有二次复杂性,并且忽略了不同样...

2021-05-31 16:34:00 225

原创 [CIKM2019] AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks

像CTR预估这种任务在推荐系统或者在线广告当中十分常见,但是这个问题也非常具有挑战性,比如所使用的输入特征都是离散并且高维的,有效的预测依赖于高阶组合特征(又称交叉特征)。因此,人们一直在努力寻找稀疏和高维原始特征的低维表示及其有意义的组合。这篇论文提出了AutoInt来学习高阶特征的交叉表示。并且提出了一个具有残差连接的多头自关注力神经网络,以明确地模拟低维空间中的特征互动。通过多头自关注神...

2021-05-24 17:07:00 349

原创 [IJCAI2017] Attentional Factorization Machines: Learning the Weight of Feature Interactions

这篇论文的摘要中写道:In this work, we improve FM by discriminating the importance of different feature interactions.该论文通过区别不同特征交互的重要性来提升FM算法的性能。其主要的核心部分是通过神经网络实现的注意力机制进行区分。在有监督学习当中,特征之间的交互是非常重要的。最常见的特征交互莫...

2021-04-22 16:27:00 160

原创 [SIGIR2020] Sequential Recommendation with Self-Attentive Multi-Adversarial Network

这篇论文主要提出了一个网络,成为Multi-Factor Generative Adversarial Network,直接翻译过来的话就是多因子生成对抗网络。主要是期望能够探究影响推荐的其他因子(因素)到底起到了多大的作用。这里的因子指的是上下文的信息。说明:后文中判别器和鉴别器是相同的。里面的核心有两个部分:基于Transformer的生成器,将用户行为序列作为输入,推荐可能的下一个项...

2021-04-10 16:52:00 138

原创 推荐系统实践 0x13 Word2Vec

Word2Vec是谷歌团队提出的,让词向量在自然语言处理当中再度流行,并且推广到了广告、搜索、推荐等各个领域当中。Word2Vec顾名思义,就是一个生成对词的向量表达的模型。假设我们使用一组句子组成的语料库作为训练数据,其中一句长度为\(T\)的句子为\(w_1,w_2,...,w_T\),假设每个词都与最相邻的词关系最为密切。那么这种密切的关系可以分为两种:CBOW。 每个词都是由相邻的词...

2021-01-04 10:18:00 138

原创 推荐系统实践 0x12 Embedding

做过深度学习的小伙伴,大家应该多多少少都听说过Embedding,这么火的Embedding到底是什么呢?这篇文章就用来介绍Embedding。另外,基于深度学习的推荐系统方法或者论文还没有结束,我打算穿插进行讲解,毕竟,深度学习出来的推荐框架的算法实在是太相像了,很难有大的不同。所以,这一篇就聊聊Embedding。初识EmbeddingEmbedding又被成为向量化,或者向量的映射。E...

2020-12-21 21:44:00 209

原创 推荐系统实践 0x11 NeuralCF

前言这一篇文章我们来谈一下2017年新加坡国立大学提出的基于深度学习的协同过滤模型NeuralCF。我们在之前讲过矩阵分解技术,将协同过滤中的共现矩阵分解成用户向量矩阵以及物品向量矩阵。那么Embedding的思路也是一样的,只不过不是通过矩阵分解的形式,而是通过多层神经网络使用Embedding构造用户隐向量以及物品隐向量。用户隐向量与物品隐向量的內积,就是用户对物品的评分。这个內积的操作,...

2020-12-18 17:19:00 165

原创 推荐系统实践 0x10 Deep Crossing

这一篇,我们将介绍微软BING AD团队提出的Deep Crossing模型,用来解决大规模特征组合问题的模型,这些特征可以是稠密的,也可以是稀疏的,从而避免了人工进行特征组合,并使用了当年提出的残差神经网络。这个模型也算是深度学习在推荐系统的完整应用了:完整的解决了特征工程、稀疏向量稠密化、多层神经网络进行优化等一些列深度学习的目标应用。特征微软在广告场景中所使用的特征如下面所示:查询...

2020-12-17 15:33:00 81

原创 推荐系统实践 0x0f AutoRec

从这一篇开始,我们开始学习深度学习推荐模型,与传统的机器学习相比,深度学习模型的表达能力更强,并且更能够挖掘出数据中潜藏的模式。另外。深度学习模型结构也非常灵活,能够根据业务场景和数据结构进行调整。还是原来的样子,我会按照原理以及代码实现,再就是一些优缺点进行逐一介绍。AutoRecAutoRec可以说是最小的深度学习推荐系统了,它是一种单隐层神经网络推荐模型,将自编码器与协同过滤相结合。那...

2020-12-14 20:00:00 57

原创 推荐系统实践 0x0e LS-PLM

在之前介绍的几个模型中,存在这些问题:LR不能捕捉非线性,只能进行一次的回归预测GBDT+LR虽然能够产生非线性特征组合,但是树模型不适用于超高维稀疏数据FM利用二阶信息来产生变量之间的相关性,但是无法适应高阶组合特征,高阶组合容易爆炸那么,下面介绍的LS-PLM模型一定程度上缓解了这个问题。LS-PLMLS-PLM是阿里巴巴曾经主流的推荐模型,这一篇文章就来介绍一下LS-PLM...

2020-12-10 19:27:00 111

原创 推荐系统实践 0x0d GBDT+LR

前一篇文章我们介绍了LR->FM->FFM的整个演化过程,我们也知道,效果最好的FFM,它的计算复杂度已经达到了令人发指的\(n^2k\)。其实就是这样,希望提高特征交叉的维度来弥补稀疏特征,不可避免的带来组合爆炸和计算复杂度过高的问题。这一篇,我们介绍一下Facebook提出的GBDT+LR的组合来解决特征组合和筛选的问题。结构整体的思路就是用GBDT构建特征工程,使用LR预估...

2020-12-09 19:12:00 85

原创 推荐系统实践 0x0c FM系列(LR/FM/FFM)

逻辑回归(LR)在介绍FM系列之前,我想首先简单介绍一下逻辑回归。通常来说,逻辑回归模型能够综合利用更多的信息,如用户、物品、上下文等多种不同的特征,生成更为全面的结果。另外,逻辑回归将推荐问题看成一个分类问题。通过预测正样本的概率对物品进行排序,这里的正样本可以是用户观看了某个视频,也可以是用户点击了某个商品,或者用户播放了某个音乐等等。逻辑回归模型将推荐问题转换成了CTR(click th...

2020-12-07 19:16:00 213

原创 推荐系统实践 0x0b 矩阵分解

前言推荐系统实践那本书基本上就更新到上一篇了,之后的内容会把各个算法结合着《深度学习推荐算法》这本书拿来当专题进行讲解。在这一篇,我们将会介绍矩阵分解这一方法。一般来说,协同过滤算法(基于用户、基于物品)会有一个比较严重的问题,那就是头部效应。热门的物品容易跟大量的物品产生相似性,而尾部的物品由于特征向量系数很少产生与其他物品的相似性,也就很少被推荐。矩阵分解算法为了解决这个问题,矩阵分解...

2020-12-04 20:43:00 88

原创 推荐系统实践 0x0a 冷启动问题

什么是冷启动问题如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题。冷启动问题主要分为三类:用户冷启动物品冷启动系统冷启动下面我们将分别介绍这三种冷启动情况。用户冷启动用户冷启动主要解决如何给新用户做个性化推荐的问题。当新用户到来时,我们没有他的行为数据,所以也无法根据他的历史行为预测其兴趣,从而无法借此给他做个性化推荐...

2020-12-02 20:19:00 48

空空如也

空空如也

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

TA关注的人

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