自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tensorflow2实现deepfm

tensorflow2实现deepfm1.deepfm的概述2.FM侧的二阶组合tensorflow实现deepfm的实现1.deepfm的概述deepfm是wide&deep的衍生模型,将wide&deep模型中的wide侧替换成FM模型,从而实现二阶的特征组合,增强模型的“记忆性”,deep侧依旧使用传统的DNN模型,增强模型的泛化能力。2.FM侧的二阶组合tensorflow实现class FM(Layer): """Factorization Machine mode

2020-12-23 16:12:40 519

原创 随机森林的随机性体现和优缺点

随机森林的随机性体现和优缺点1.随机性主要体现在两个方面:2.优点3.缺点:1.随机性主要体现在两个方面:训练每棵树时,从全部训练样本(样本数为N)中选取一个可能有重复的大小同样为N的数据集进行训练(即bootstrap取样)在每个节点,随机选取所有特征的一个子集,用来计算最佳分割方式。2.优点在当前的很多数据集上,相对其他算法有着很大的优势,表现良好它能够处理很高维度(feature很多)的数据,并且不用做特征选择 PS:特征子集是随机选择的在训练完后,它能够给出哪些f

2020-11-26 09:20:53 5380

原创 特征工程:推荐系统有哪些可供利用的特征?

特征工程:推荐系统有哪些可供利用的特征?一、什么是特征工程二、构建推荐系统特征工程的原则三、推荐系统中的常用特征1. 用户行为数据用户如果说整个推荐系统是一个饭馆,那么特征工程就是负责配料和食材的厨师,推荐模型这个大厨做的菜好不好吃,大厨的厨艺肯定很重要,但配料和食材作为美食的基础也同样重要。而且只有充分了解配料和食材的特点,我们才能把它们的作用发挥到极致。现在,我们就先来讲讲特征工程,说说到底什么是特征工程,构建特征工程的基本原则是什么,以及推荐系统中常用的特征有哪些。一、什么是特征工程在推荐系统

2020-11-25 22:31:10 835

原创 模型特征工程:归一化

特征归一化一、归一化二、归一化的常用方法三、为什么需要对数值型特征做归一化?一、归一化为了消除数据特征之间的量纲影响, 我们需要对特征进行归一化处理, 使得不同指标之间具有可比性。例如, 分析一个人的身高和体重对健康的影响, 如果使用米(m) 和千(kg) 作为单位, 那么身高特征会在1.6~1.8m的数值范围内, 体重特征会在50~100kg的范围内, 分析出来的结果显然会倾向于数值差别比较大的体重特征。 想要得到更为准确的结果, 就需要进行特征归一化。二、归一化的常用方法线性函数归一化(Mi

2020-11-25 21:03:47 993

原创 为什么深度学习的结构特点不利于稀疏特征向量的处理呢?

问题:为什么深度学习的结构特点不利于稀疏特征向量的处理呢?一方面,如果我们深入到神经网络的梯度下降学习过程就会发现,特征过于稀疏会导致整个网络的收敛非常慢,因为每一个样本的学习只有极少数的权重会得到更新,这在样本数量有限的情况下会导致模型不收敛。另一个方面,One-hot 类稀疏特征的维度往往非常地大,可能会达到千万甚至亿的级别,如果直接连接进入深度学习网络,那整个模型的参数数量会非常庞大,这对于一般公司的算力开销都是吃不消的。所以基于上面两个原因,我们往往先通过 Embedding 把原始稀疏特征

2020-11-25 20:35:16 1670

原创 对特征进行开方改变了特征分布,模型能否正确拟合训练数据了?

问题:对训练数据中的某项特征进行平方或者开方,是为了改变训练数据的分布。训练数据的分布被改变后,训练出来的模型岂不是不能正确拟合训练数据了?对训练数据中的某个特征进行开方或者平方操作,本质上是改变了特征的分布,并不是训练数据的分布。特征的分布和训练数据的分布没有本质的联系,只要你不改变训练数据 label 的分布,最终预测出的结果都应该是符合数据本身分布的。因为你要预测的是 label,并不是特征本身。而且在最终的预测过程中,这些开方、平方的特征处理操作是在模型推断过程中复现的,本质上可以看作是模型的

2020-11-25 20:30:32 239

原创 多模态或者预训练向量对模型的影响

问题 :像多模态或者是通过其它预训练方法得到的向量,直接加到推荐排序模型作为特征的话,为什么效果不明显?多模态指的是在推荐系统中引入视频、图片、语音等多种不同形式的数据和特征,希望来提升推荐效果。在实际的业务应用里,确实存在多模态特征效果不强的问题。问题根源还是因为目前多模态的技术本质上还处于比较初期的阶段。比如用一些 CV 的技术去处理视频图像,识别出一些物品,比如视频里有汽车、有树木、有人物之类。但你要说这些物品对于最终的推荐效果到底有没有影响,比如说视频中出现汽车到底对用户的点击率影响有多大,我

2020-11-25 20:25:59 283

原创 hbase的常见api操作

import java.io.IOExceptionimport org.apache.hadoop.hbase.{HBaseConfiguration, HColumnDescriptor, HConstants, HTableDescriptor, TableName}import org.apache.hadoop.hbase.client._import org.apache.hadoop.hbase.util.Bytesimport scala.collection.mutable.Lis

2020-09-24 21:16:55 110

原创 tensorflow2实现wide&deep

tensorflow2基于criteo数据集实现wide&deepcriteo数据集导包读取数据集数据粗粒度处理,使其可以运用tf21.查看下null比例2.数据处理wide&deep1. 预备工作(1)SparseFeat(2) Densefeat(3) 创建dict来存储Input(4) 获取sparse列的信息(5) 获取dense列的信息2. wide侧3.deep侧4. wide + deep5. 模型构建的完整代码数据+模型运行criteo数据集导包import panda

2020-09-20 12:23:50 1179 4

原创 Spark-shell中停止打印INFO日志

Spark-shell中停止打印INFO日志spark设置info不显示spark设置info不显示spark-shell在运行时常常输出一堆红色文字日志,影响代码体验,那么如何设置使得info不输出呢?可在代码中如下设置(亲测有效):...

2020-09-14 21:17:20 504

原创 word2vec的经验总结

word2vec的经验总结1. word2vec 是word embedding 最好的工具吗?2. word2vec 训练结果的差异主要来自什么因素?2.1 语料影响最大2.2 为什么会出现这种情况呢?2.3 算法参数的影响。3 word2vec 影响速度的因素有哪些?4 怎样评估word2vec训练的好坏?1. word2vec 是word embedding 最好的工具吗?word2vec并非是效果最好的word embedding 工具。最容易看出的就是word2vec没有考虑语序,这

2020-08-24 21:10:23 1706 1

原创 DIN的问题归纳

DIN的问题归纳为什么DIN中采用attention?注意力机制顾名思义,就是模型在预测的时候,对用户不同行为的注意力是不一样的,“相关”的行为历史看重一些,“不相关”的历史甚至可以忽略。首先,我们会得到一个用户的行为序列listing,如果按照之前的做法,我们会一碗水端平的考虑所有行为记录的影响,对应到模型中就是我们会用一个average pooling层把用户交互 过的所有商品的embedding vector平均一下形成这个用户的user vector,机灵一点的工程师最多加一个time

2020-08-23 20:23:31 1339

原创 pyspark partitionby与mapPartitions并行

pyspark partitionby与mapPartitions并行在大数据中,算法工程师经常使用spark来进行模型训练,但是基于不同的业务场景和模型的训练时间要求,算法工程师可能需要并行运行某个任务(训练模型)举个例子:在电商场景中,不同的品类具有不同的时序性,具有不同的表现,工程师可能想将每个品类都运行一个算法,最终汇总看看效果,但是for循环满足不了时间的要求,这时候就可以运用mapPartitions来处理啦1. 先定义个rdd数据吧from pyspark import SparkCo

2020-08-20 22:55:13 4191 1

原创 bert生成句子向量

bert生成句子向量1. bert中文语料库下载2. 如何使用bert的词向量3.直接使用bert源码生成词向量1.下载bert项目2.下载中文预训练模型3.加载下载的预训练模型参数进行句向量特征提取BERT本质上是一个两段式的NLP模型。第一个阶段叫做:Pre-training,跟WordEmbedding类似,利用现有无标记的语料训练一个语言模型。第二个阶段叫做:Fine-tuning,利用预训练好的语言模型,完成具体的NLP下游任务。1. bert中文语料库下载Google已经投入了大规模的语料

2020-08-18 21:58:52 2249 3

原创 word2vec原理(三)基于Negative Sampling 的模型

基于Negative Sampling 的模型1.CBOW模型1.1cbow原理1.2 cbow 梯度上升1.3 cbow更新伪代码2. skip-gram模型2.1 skip-gram 原理2.2 skip-gram 随机梯度上升法2.3 skip-gram 参数更新伪代码3.负采样算法此章节将介绍基于Negative Sampling的CBOW和skip-gram模型。Negative Sampling(简称NEG)是Tomas Mikolov等人提出的,它是NCG(Noise Contrastive

2020-08-17 21:55:45 307 1

原创 word2vec 原理(二)基于 Hierarchical Softmax 的模型

基于 Hierarchical Softmax 的模型1. negative sampling and hierarchical softmax2. CBOW model2.1 原理图2.2 梯度下降1. negative sampling and hierarchical softmax由于softmax运算考虑了背景词可能是词典 V 中的任一词,以上损失包含了词典大小数目的项的累加。在上一节中我们看到,不论是skip-gram模型还是cbow模型,由于条件概率使用了softmax运算,每一步的梯度计

2020-08-08 18:45:01 331

原创 Word2Vec原理(一)

word2vec原理词嵌入(word2vec)1.为何不采用one-hot向量2.skip-gram模型2.1 skip-gram原理+最大似然2.2 skip-gram模型梯度下降3. CBOW模型3.1 CBOW原理+最大似然3.2 CBOW模型梯度下降4. 小结5. 思考词嵌入(word2vec)自然语言是一套用来表达含义的复杂系统。在这套系统中,词是表义的基本单元。顾名思义,词向量是用来表示词的向量,也可被认为是词的特征向量或表征。把词映射为实数域向量的技术也叫词嵌入(word embeddin

2020-08-07 21:37:48 256

原创 文本词向量:词集模型、词典模型、TF-IDF

文本词向量:词集模型、词典模型、TF-IDF1.词集模型2.词袋模型3.词袋模型CountVectorizer实现3.1 词袋化/向量化3.2 使用现有词袋的特征,对其他文本进行特征提取4.TF-IDF4.1 原理4.2 sklearn进行TF-IDF预处理4.3 TF-IDF小结:文本特征提取有两个非常重要的模型:词集模型:单词构成的集合,集合自然每个元素都只有一个,也即词集中的每个单词都只有一个。词袋模型:在词集的基础上如果一个单词在文档中出现不止一次,统计其出现的次数(频数)。两者

2020-08-06 23:23:00 1630

原创 spark实现的item_cf

(一) item_cf原理(二) codeimport org.apache.log4j.{Level, Logger}import org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.functions._import org.apache.spark.sql.{DataFrame, SparkSession}import org.apache.spark.sql.types.DataTypesimport

2020-08-06 21:30:11 815

原创 hbase基本操作指令

Hbase常用指令输入hbase shell进入HBase shell

2020-08-06 20:25:19 232

原创 pyspark按照时间循环补数

pyspark按照时间循环补数1. 制造时间窗口listimport datetimebegin = datetime.date(2020, 7, 13)end = datetime.date(2020, 7, 30)d = begindelta = datetime.timedelta(days=1)date_list = []while d <= end: print(str(d.strftime("%Y-%m-%d"))) date_list.append(

2020-08-06 11:40:04 465

原创 Hive的常用优化设置

一、hive的常用参数-- 设置名称set mapred.job.name = "outlet_gds";-- 每个Map最大输入大小set mapred.max.split.size = 300000000;-- 每个Map最小输入大小set mapred.min.split.size = 100000000;-- 执行Map前进行小文件合并set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat

2020-08-06 10:21:23 673

空空如也

空空如也

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

TA关注的人

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