- 博客(16)
- 收藏
- 关注
原创 DIN模型
我们先看base模型在DIN出现之前,推荐系统或者广告系统的做法通常是将高维的稀疏输入通过一个embedding层转化为低维稠密的特征表示,之后将同类的embedding特征通过pooling的方式(sum pooling或者avg pooling)转化为固定长度的特征(embedding+pooling这两步在笔者看来其实等价于一个单层神经网络的作用,embedding特征对应权重矩阵),最后将不同类特征拼接起来输入到深度神经网络中进行训练。(如下图所示)这...
2022-02-23 17:56:26
917
原创 ICS问题
由于参数更新的原因导致神经网络中每层的参数不再满足独立同分布。简单举例你在训练的时候用的都是黑猫的图片来训练模型让它判别图片是否是猫。但是在验证时却全给的是白猫,这就是训练集和验证集不符合独立同分布的一种情况。而在神经网络中,每一次上一层的输出都可以当成是当前层的输入。而随着网络层数的增加,越往后网络的参数变化越大,越容易不满足独立同分布的情况。为了解决这种问题我们目前通常使用三种方法标准化,归一化,和自适应激活函数的方法归一化将数据变幻到均值为0方差为1。标
2022-02-22 21:49:07
708
原创 Deep&Cross模型
Wide&Deep模型的提出不仅综合了“记忆能力”和“泛化能力”, 而且开启了不同网络结构融合的新思路。 所以后面就有各式各样的模型改进Wide部分或者Deep部分, 其中比较典型的就是Deep&Cross模型, 该模型针对W&D的wide部分进行了改进, 因为Wide部分有一个不足就是需要人工进行特征的组合筛选, 过程繁琐且需要经验, 2阶的FM模型在线性的时间复杂度中自动进行特征交互,但是这些特征交互的表现能力并不够,并且随着阶数的上升,模型复杂度会大幅度提高。于是乎,作者用一个
2022-02-22 20:24:05
1001
原创 wide&deep谷歌曾经的主流推荐模型
在CTR的预估模型中,线性模型依然是占据了很大的一部分,利用手工构造的交叉组合特征来使线性模型具有“记忆性”,使模型记住共现频率较高的特征组合记忆能力其实很好理解,就是模型对特征和模型结果的匹对能力。以谷歌APP推荐场景为例理解一下:假设在Google Play推荐模型训练过程中, 设置如下组合特征: AND(user_installed_app=netflix, impression_app=pandora), 它代表了用户安装了netflix这款应用, 而且曾在应用商店中看到过pando..
2022-02-22 20:00:28
268
原创 基于深度学习的推荐模型--PNN
NacureCF只考虑到了用户和物品两种向量的整体交叉,但是如果说我想让特征交叉变的更加多样那我们要怎么做呢,比如我想让用户的单独属性和物品的单独属性交叉,那么PNN模型就为我们提供了方法,同时PNN模型也丰富了它特征交互的方式,即有线性部分也有乘积部分。embedding层中是对对每一个离散稀疏的Field特征域进行Embedding操作,让原本的向量乘以embedding矩阵,embedding矩阵参数是通过神经网络的反向传播进行学习。这个模型的重点就是它的Product层首先, 这
2022-02-21 16:05:54
455
原创 基于深度学习的推荐模型--NeuralCF
介绍一下它,首先也还是回顾cf的回顾但是这个模型由于结构太简单,计算也太简单, 使得输出层无法对目标进行有效的拟合。简单来说就是原始向量被隐向量相乘表达时被表达的并不准确。可以看下图。直观的看, 是隐向量计算相似度的时候存在问题, 因为相似度是夹角衡量的, 夹角关系在降维之后有可能发生了错乱, 但是这间接的说明了单单使用内积不足以可靠的预测评分。所以我们就把单纯的点积操作给换成了一个mlpGMF作者指出如果上图中的 Neural CF Layers ...
2022-02-21 16:05:34
484
原创 基于深度学习的推荐模型--AutoRec
首先介绍在传统的CF里,所用的信息即为所有用户历史的评分数据,按用户做行,item做列,可以得到一个rating matrix R,其中Rij指useriuseri对itemjitemj的打分。其中我们只能观测到这个矩阵里的部分值,那些未观测到的值则是需要预测的对象。MF解决该问题的思路是将评分矩阵拆成U*V,其中U为user隐向量矩阵,V为item隐向量矩阵。一旦获得U和V后,预测值就可以从u*v上得到在神经网络有,一有类特殊的网络叫做AutoEncoder它是一种使得输出的数据尽可能...
2022-02-21 16:04:37
364
原创 rnn简单实现
输入hello目标输出ohlol定义一些数据import torchimport numpybatch_size=1num_layers=1#一层rnninput_size=4hidden_size=4seq_len=5进行数据准备idx2char=['e','h','l','o']x_data=[1,0,2,2,3]y_data=[3,1,2,3,2]#查询字典one_hot_lookup=[[1,0,0,0], [0,1,0,0],
2021-07-26 17:11:30
622
原创 rnncell简单实现
先输入hello目标输出ohlol第一步:定义初始数据import torchbatch_size=1input_size=4hidden_size=4进行数据准备idx2char=['e','h','l','o']x_data=[1,0,2,2,3]y_data=[3,1,2,3,2]#查询字典one_hot_lookup=[[1,0,0,0], [0,1,0,0], [0,0,1,0], .
2021-07-26 16:27:42
224
原创 c语言快速排序算法
每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。#include<stdio.h>void quicksort(int a[],int left,int right){ if(left>right){ return ; } int temp=a[left];//temp就是基准 int...
2019-01-02 20:04:16
1920
原创 通讯录排序 (20 分)
7-23 通讯录排序 (20 分)输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是...
2018-11-29 13:52:55
1946
原创 c中的栈的初始化,入栈,出栈操作
#include<stdio.h>#include<iostream>using namespace std;typedef struct{ int *base; int *top; int maxsize;}stack;void InitStack(stack &s,int max){//对栈进行初始化 s.base=n...
2018-11-28 16:54:39
1295
原创 学习过滤器时碰到了一些问题,在这解决一下并且总结咯
首先是我写的一个非常简单的没有css的表单提交页面<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:/
2018-11-03 10:31:12
201
原创 初学ajax的一点心得
写下自己对ajax初学时认为是要背下来的东西首先ajax是可以和jquer一起要用的eg: <script type="text/javascript"> //ajax时间是在JS中的$.ajax({//注意$符号和ajax之间有.$("选定的按钮").click(function(){//当选定的按钮被单击的时候执行url: ,//...
2018-11-01 21:40:37
202
原创 关于正则表达式的基础语法
今天才学的一些基础语法,感觉记下来以后蛮有用的 pattern="加上正则表达式上的内容"[]中括号里面放上定义的数字范围;{}大括号里面加上要定义的数字的数量范围例子:[a-zA-Z]{6,12}只能是6到12位的英文字母 [0-9]{11}必须位11位0到9 的数字 [0-9]{11,]至少是1...
2018-11-01 14:12:38
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人