自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 基于图同构网络(GIN)的图表征网络的实现

基于图同构网络(GIN)的图表征网络的实现基于图同构网络的图表征学习主要包含以下两个过程:首先计算得到节点表征;其次对图上各个节点的表征做图池化(Graph Pooling),或称为图读出(Graph Readout),得到图的表征(GraphRepresentation)。在这里,我们将采用自顶向下的方式,来学习基于图同构模型(GIN)的图表征学习方法。我们首先关注如何基于节点表征计算得到图的表征,而忽略计算结点表征的方法。基于图同构网络的图表征模块(GINGraphReprModu

2021-07-05 18:16:26 5188 1

转载 2021-07-01

超大图上的节点表征学习神经网络已经成功地应用于许多图节点或边的预测任务中,然而,在超大图上进行图神经网络的训练仍然具有挑战性。普通的基于SGD的图神经网络的训练方法,要么面临着随着图神经网络层数增加计算成本呈指数增长的问题,要么面临着保存整个图的信息和每一层每个节点的嵌入(embedding)到GPU内存而消耗巨大内存空间的问题。虽然一些论文已经提出了无需保存整个图的信息和每一层每个节点的嵌入(embedding)到GPU内存的方法,但它们可能损失预测精度或者对提高内存的利用率并不显著。于是

2021-07-01 23:31:12 85

转载 数据完全存于内存的数据集类

数据完全存于内存的数据集类PyG中,我们通过继承InMemoryDataset类来自定义一个数据可全部存储到内存的数据集类。为了创建一个 InMemoryDataset,我们需要实现四个基本方法:raw_file_names() 这是一个属性方法,返回一个文件名列表,文件应该能在raw_dir文件夹中找到,否则调用process() 函数下载文件到raw_dir文件夹。processed_file_names() 。这是一个属性方法,返回一个文件名列表,文件应该能在processed_dir

2021-06-27 20:56:33 174

转载 MLP GCN GAT

MLP GCN GAT在节点表征的学习中,MLP节点分类器只考虑了节点自身属性,忽略了节点之间的连接关系,它的结果是最差的;而GCN与GAT节点分类器,同时考虑了节点自身属性与周围邻居节点的属性,它们的结果优于MLP节点分类器。从中可以看出邻居节点的信息对于节点分类任务的重要性。基于图神经网络的节点表征的学习遵循消息传递范式:在邻居节点信息变换阶段,GCN与GAT都对邻居节点做归一化和线性变换(两个操作不分前后);在邻居节点信息聚合阶段都将变换后的邻居节点信息做求和聚合;在中心节点信息变换

2021-06-23 18:12:31 747

原创 2021-06-19

GNN MessagePassing类消息传递范式作业1… 请总结MessagePassing类的运行流程以及继承MessagePassing类的规范。Pytorch Geometric(PyG)提供了MessagePassing基类,它实现了消息传播的自动处理,继承该基类可使我们方便地构造消息传递图神经网络,我们只需定义函数 ,即message() 函数,和函数 ,即 update()函数,以及使用的消息聚合方案,即aggr=“add” 、aggr="mean"或 aggr=“max” 。这

2021-06-19 07:57:40 135

原创 2021-06-15

gnn:1.pytorch里Data类:CLASS Data(x=None, edge_index=None, edge_attr=None, y=None, pos=None, normal=None, face=None, **kwargs)[source]A plain old python object modeling a single graph with various (optional) attributes:PARAMETERSx (Tensor, optional) – No

2021-06-15 17:50:47 78

原创 2021-05-18

集成学习步骤:1 导入package2 导入数据集3 查看数据的基本信息4 数据预处理5 数据增广6 特征建模5折交叉验证light GBMxgboostRandomForestRegressorGradientBoostingRegressorExtraTreesRegressorKernel Ridge RegressionRidge RegressionElasticNet BayesianRidge7 模型融合8 结果保存...

2021-05-18 22:34:10 44

原创 2021-05-12

Blending下面我们来详细讨论下这个Blending集成学习方式:(1) 将数据划分为训练集和测试集(test_set),其中训练集需要再次划分为训练集(train_set)和验证集(val_set);(2) 创建第一层的多个模型,这些模型可以使同质的也可以是异质的;(3) 使用train_set训练步骤2中的多个模型,然后用训练好的模型预测val_set和test_set得到val_predict, test_predict1;(4) 创建第二层的模型,使用val_predict作为训练集训

2021-05-12 00:48:25 139

原创 2021-04-20

Bagging思想的实质是:通过Bootstrap 的方式对全样本数据集进行抽样得到抽样子集,对不同的子集使用同一种基本模型进行拟合,然后投票得出最终的预测。Boosting是与Bagging截然不同的思想,Boosting方法是使用同一组数据集进行反复学习,得到一系列简单模型,然后组合这些模型构成一个预测性能十分强大的机器学习模型。显然,Boosting思想提高最终的预测效果是通过不断减少偏差的形式,与Bagging有着本质的不同。弱学习:识别错误率小于1/2(即准确率仅比随机猜测略高的学习算法)强

2021-04-20 15:14:54 85

原创 2021-04-18

bagging原理bagging算法流程输入为样本集,弱学习器算法, 弱分类器迭代次数T。输出为最终的强分类器    1)对于t=1,2…,T:a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集      b)用采样集 训练第m个弱学习器    2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。随机森林算法    理解了bagging算法,随机森林(Rand

2021-04-17 23:47:12 58

原创 2021-04-17

一、MFCC概述 在语音识别(Speech Recognition)和话者识别(Speaker Recognition)方面,最常用到的语音特征就是梅尔倒谱系数(Mel-scale Frequency Cepstral Coefficients,简称MFCC)。根据人耳听觉机理的研究发现,人耳对不同频率的声波有不同的听觉敏感度。从200Hz到5000Hz的语音信号对语音的清晰度影响对大。两个响度不等的声音作用于人耳时,则响度较高的频率成分的存在会影响到对响度较低的频率成分的感受,使其变

2021-04-17 23:39:53 160

原创 2021-04-15

声音分类在很多场景中都有大模型的应用,例如对音乐的分类可以应用于音乐检索和音乐推荐中; 对人声的分类可以应用在身份识别、智能家居中。本比赛的背景是食物的声音的分类,是一个充满趣味性的任务。本次比赛的数据集来自Kaggle的“Eating Sound Collection”(可商用), 数据集中包含20种不同食物的咀嚼声音,赛题任务是给这些声音数据建模,准确分类。Python有一些很棒的音频处理库,比如Librosa和PyAudio,还有一些内置的模块用于处理音频的基本处理。我们将主要使用两个库进行音频

2021-04-15 22:00:50 78

原创 2021-04-13

投票法的思路  投票法是集成学习中常用的技巧,可以帮助我们提高模型的泛化能力,减少模型的错误率。一个常用的纠错方法是重复多次发送数据,并以少数服从多数的方法确定正确的传输数据。一般情况下,错误总是发生在局部,因此融合多个数据是降低误差的一个好方法,这就是投票法的基本思路。对于回归模型来说,投票法最终的预测结果是多个其他回归模型预测结果的平均值。对于分类模型,硬投票法的预测结果是多个模型预测结果中出现次数最多的类别,软投票对各类预测结果的概率进行求和,最终选取概率之和最大的类标签。投票法的原理分析 

2021-04-13 21:35:54 143

原创 2021-04-13

LSTMimport syssys.path.append(’…/’)import argparseimport torchimport osimport numpy as npfrom data.data import AudioDataLoader, AudioDatasetfrom solver.solver import Solverfrom model.baseline1 import Baseline1parser = argparse.ArgumentParser(“D

2021-04-13 00:32:54 134

原创 2021-03-27

DINDIN的动机就出来了,在业务的角度,我们应该自适应的去捕捉用户的兴趣变化,这样才能较为准确的实施广告推荐;而放到模型的角度, 我们应该考虑到用户的历史行为商品与当前商品广告的一个关联性,DIN模型结构及原理在具体分析DIN模型之前, 我们还得先介绍两块小内容,一个是DIN模型的数据集和特征表示, 一个是上面提到的之前深度学习模型的基线模型, 有了这两个, 再看DIN模型,就感觉是水到渠成了。2.1 特征表示工业上的CTR预测数据集一般都是multi-group categorial fo

2021-03-27 22:21:58 124

原创 2021-03-25

Task4 建模与调参4.4.1 逻辑回归优点训练速度较快,分类的时候,计算量仅仅只和特征的数目相关;简单易理解,模型的可解释性非常好,从特征的权重可以看到不同的特征对最后结果的影响;适合二分类问题,不需要缩放输入特征;内存资源占用小,只需要存储各个维度的特征值;缺点逻辑回归需要预先处理缺失值和异常值【可参考task3特征工程】;不能用Logistic回归去解决非线性问题,因为Logistic的决策面是线性的;对多重共线性数据较为敏感,且很难处理数据不平衡的问题;准确率并不是很高,因为

2021-03-25 23:09:16 60

原创 2021-03-24

NFM动机NFM(Neural Factorization Machines)是2017年由新加坡国立大学的何向南教授等人在SIGIR会议上提出的一个模型,传统的FM模型仅局限于线性表达和二阶交互, 无法胜任生活中各种具有复杂结构和规律性的真实数据, 针对FM的这点不足, 作者提出了一种将FM融合进DNN的策略,通过引进了一个特征交叉池化层的结构,使得FM与DNN进行了完美衔接,这样就组合了FM的建模低阶特征交互能力和DNN学习高阶特征交互和非线性的能力,形成了深度学习时代的神经FM模型(NFM)。

2021-03-24 23:28:54 65

原创 2021-03-21

DeepFM动机对于CTR问题,被证明的最有效的提升任务表现的策略是特征组合(Feature Interaction), 在CTR问题的探究历史上来看就是如何更好地学习特征组合,进而更加精确地描述数据的特点。可以说这是基础推荐模型到深度学习推荐模型遵循的一个主要的思想。而组合特征大牛们研究过组合二阶特征,三阶甚至更高阶,但是面临一个问题就是随着阶数的提升,复杂度就成几何倍的升高。这样即使模型的表现更好了,但是推荐系统在实时性的要求也不能满足了。所以很多模型的出现都是为了解决另外一个更加深入的问题:如何

2021-03-21 21:16:55 71

原创 2021-03-19

EDA2.1 EDA 目标¶EDA的价值主要在于***熟悉数据集,了解数据集***,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。当了解了数据集之后我们下一步就是要去***了解变量间的相互关系以及变量与预测值之间的存在关系***。引导数据科学从业者进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。完成对于数据的探索性分析,并对于数据进行一些图表或者文字总结并打卡。2.2 内容介绍载入各种数据科学以及可视化库:数据科学库 panda

2021-03-19 21:36:55 52

原创 2021-03-18

Deep and WideFM它不香吗之前我们已经学了FM模型,不是已经很好了吗,为啥还要整这个Wide&Deep呢?其缺点在于:当query-item矩阵是稀疏并且是high-rank的时候(比如user有特殊的爱好,或item比较小众),很难非常效率的学习出低维度的表示。这种情况下,大部分的query-item都没有什么关系。但是dense embedding会导致几乎所有的query-item预测值都是非0的,这就导致了推荐过度泛化,会推荐一些不那么相关的物品。相反,简单的linear

2021-03-18 18:57:34 48

原创 2021-03-16

heartbeat-baseline其实多分类的评价指标的计算方式与二分类完全一样,只不过我们计算的是针对于每一类来说的召回率、精确度、准确率和 F1分数。1、混淆矩阵(Confuse Matrix)(1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )(2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )(3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )(4)若一个实例是负类,并且被预

2021-03-16 22:17:29 33

原创 2021-03-16

Deep CrossingDeepCrossing模型应用场景是微软搜索引擎Bing中的搜索广告推荐, 用户在输入搜索词之后, 搜索引擎除了返回相关结果, 还返回与搜索词相关的广告,Deep Crossing的优化目标就是预测对于某一广告, 用户是否会点击,依然是点击率预测的一个问题。这种场景下,我们的输入一般会有类别型特征,比如广告id,和数值型特征,比如广告预算,两种情况。 对于类别型特征,我们需要进行one-hot编码处理,而数值型特征 一般需要进行归一化处理,这样算是把数据进行了一个简单清洗。

2021-03-16 22:12:44 45

原创 2021-02-21

win10 安装dockerhttps://docs.microsoft.com/zh-cn/windows/wsl/install-win10其中如果win10家庭版没有hyper-v:pushd “%~dp0”dir /b %SystemRoot%\servicing\Packages*Hyper-V*.mum >hyper-v.txtfor /f %%i in (‘findstr /i . hyper-v.txt 2^>nul’) do dism /online /noresta

2021-02-21 23:01:13 51

原创 2020-11-29

推荐算法3多路召回所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用,可以明显的看出,“多路召回策略”是在“计算速度”和“召回率”之间进行权衡的结果。其中,各种简单策略保证候选集的快速召回,从不同角度设计的策略保证召回率接近理想的状态,不至于损伤排序效果。如下图是多路召回的一个示意图,在多路召回中,每个策略之间毫不相关,所以一般可以写并发多线程同时进行,这样可以更加高效。image-20201119132726873image

2020-11-29 21:11:52 34

原创 2020-11-29

numpy3线性代数Numpy 定义了 matrix 类型,使用该 matrix 类型创建的是矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算,因此用法和Matlab十分类似。但是由于 NumPy 中同时存在 ndarray 和 matrix 对象,因此用户很容易将两者弄混。这有违 Python 的“显式优于隐式”的原则,因此官方并不推荐在程序中使用 matrix。在这里,我们仍然用 ndarray 来介绍。矩阵和向量积矩阵的定义、矩阵的加法、矩阵的数乘、矩阵的转置与二维数组完全一致,不再进行说明,

2020-11-29 21:09:52 101

原创 2020-11-26

推荐2数据分析¶数据分析的价值主要在于熟悉了解整个数据集的基本情况包括每个文件里有哪些数据,具体的文件中的每个字段表示什么实际含义,以及数据集中特征之间的相关性,在推荐场景下主要就是分析用户本身的基本属性,文章基本属性,以及用户和文章交互的一些分布,这些都有利于后面的召回策略的选择,以及特征工程。建议:当特征工程和模型调参已经很难继续上分了,可以回来在重新从新的角度去分析这些数据,或许可以找到上分的灵感从点击时间clik_timestamp来看,分布较为平均,可不做特殊处理。由于时间戳是13位的,后

2020-11-26 21:52:55 124

原创 2020-11-26

numpy2统计相关次序统计计算最小值numpy.amin(a[, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue])Return the minimum of an array or minimum along an axis.计算最大值numpy.amax(a[, axis=None, out=None, keepdims=np._NoValue, initial=np._No

2020-11-26 21:49:18 133

原创 2020-11-23

推荐算法1baseline节约内存的一个标配函数def reduce_mem(df):starttime = time.time()numerics = [‘int16’, ‘int32’, ‘int64’, ‘float16’, ‘float32’, ‘float64’]start_mem = df.memory_usage().sum() / 10242for col in df.columns:col_type = df[col].dtypesif col_type in numer

2020-11-23 22:57:53 155

原创 2020-11-23

numpy学习1输入和输出numpy 二进制文件save()、savez()和load()函数以 numpy 专用的二进制类型(npy、npz)保存和读取数据,这三个函数会自动处理ndim、dtype、shape等信息,使用它们读写数组非常方便,但是save()输出的文件很难与其它语言编写的程序兼容。npy格式:以二进制的方式存储文件,在二进制文件第一行以文本形式保存了数据的元信息(ndim,dtype,shape等),可以用二进制工具查看内容。npz格式:以压缩打包的方式存储文件,可以用压缩软件

2020-11-23 22:53:22 40

空空如也

空空如也

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

TA关注的人

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