自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 整合springboot+redis,一直失败,发现是common-pool2版本问题。

整合springboot+redis,一直失败,发现是common-pool2版本问题。

2023-02-19 19:03:46 760 1

转载 6.IDEA修改JDK的版本

本文介绍Idea如何修改JDK的版本。

2022-12-16 20:14:33 822

原创 17.关于BFS和DFS力扣算法刷题

DFS和BFS

2022-11-30 13:53:52 313

原创 5.java.lang.NoClassDefFoundError: com/alibaba/druid/pool/DruidDataSourceFactory

Tomcat启动后报以下错误,原因就是Tomcat文件夹里面的lib文件夹中缺少一个druid的jar包,只需要把这个druid-1.1.10.jar的jar包放进那个Tomcat的lib文件夹下即可。

2022-11-25 20:16:03 1110

转载 4.WARN: Establishing SSL connection without server‘s identity verification is not recommended 的解决方法

警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,默认必须建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性被设置为’false’。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储区。报这个警告的原因主要是JDBC的版本与MySQL的版本不兼容,而MySQL在高版本需要指明是否进行SSL连接。

2022-11-21 11:12:14 1017

原创 17.Java的反射机制

Java的反射机制

2022-08-10 22:14:06 474

原创 16.多线程详解

多线程详解

2022-06-16 19:50:48 135

原创 13.TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation

一、前言目前已经有很多方法通过将会话建模为序列或图来完成对会话的嵌入,进而对 next-item 进行预测。这些方法将会话压缩为一个固定的表示向量,而不考虑要预测的目标项。之前的大多数方法的出发点就是通过对会话进行嵌入,期望能够捕获到用户意图信息完成对未来可能产生交互物品的预测。本文的作者认为由于目标物品的多样性和用户的兴趣,固定的向量会限制推荐模型的表示能力。因此在本文中提出了一种新的目标注意图神经网络( TAGNN )模型用于基于会话的推荐。在TAGNN中,目标感知注意自适应地激活了用户对不同目标物

2022-05-20 17:31:25 656

原创 12.Session] Dual Sparse Attention Network For Session-based Recommendation论文解读

一、提出背景作者提了两个问题以往工作直接用 last click item embedding 用来表示 current preference 不妥session 中所有的 item 并不一定能反映用户偏好,有些交互可能是因为误触、浏览无关的促销广告等行为产生的对于 问题1,例子如下例子中使用最后一个 item 预测的物品集合里面不存在真实的 target item解决方法:论文提出了一个可学习的 embedding 用来刻画用户的 current preference,称为 targ

2022-05-10 17:06:04 622

原创 11.Session-based Recommendation with Graph Neural Networks论文详解

一、前言在某些序列推荐系统中,一个用户-项目交互序列包括多个子序列(也称为会话)。在这种情况下,除了当前子序列中先前的交互作用外,历史子序列还可能影响当前子序列中预测的下一个用户-项目交互作用。基于会话的推荐问题旨在基于会话预测用户的行为,以前的相关方法将会话建模为序列,并通过对用户表示进行学习来完成推荐。这些方法虽然取得了令人满意的结果,但它们不足以在会话中获得准确的用户表示,并忽略了复杂的物品表示转换。为了获得准确的物品嵌入和考虑物品表示的复杂转换,本文提出了一种基于会话的GNN网络模型。在 SR-

2022-05-01 22:26:47 2192

转载 10-Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding论文详解

论文信息 WSDM 2018 Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding Jiaxi Tang (Simon Fraser University); Ke Wan...

2022-04-20 18:12:17 347

原创 9.DRN: A Deep Reinforcement Learning Framework for News Recommendation论文详解

DRN: A Deep Reinforcement Learning Framework for News Recommendation。这篇文章是微软18年发的基于强化学习的推荐系统文章。

2022-03-19 19:24:20 465

原创 8.Deep Interest Evolution Network for Click-Through Rate Prediction论文详解

一、背景总述2017年6月阿里妈妈的精准定向检索及基础算法团队放出了论文Deep Interest Network(DIN),用于解决电子商务的CTR预估,再次基础上,最近又放出了改进版本Deep Interest Evolution Network(DIEN),主要解决了以下两个问题:更加精确的刻画用户的长期兴趣和短期兴趣用户的兴趣是时刻变化的,需要更加准确的刻画用户兴趣的变化二、摘要点击率预估的目标是评估用户点击的可能性,这是广告系统的核心之一。对于CTR预估模型,需要捕捉用户行为数据背后

2022-03-02 17:58:59 1022 1

原创 7.Deep Interest Network for Click-Through Rate Prediction论文详解

一、总述这是2018年阿里Guorui Zhou等人发表在KDD上的一篇论文。论文提出在CTR任务中,丰富的用户历史行为数据包含了用户多种兴趣,对于不同的候选广告,起作用的用户历史行为数据表示应该不同。所以该论文提出了深度兴趣网络(Deep Interest Network, DIN)来根据指定广告,自适应的建模用户行为数据,进而提升CTR准确率。此外,针对工业界亿万级别的参数量,提出了两项训练深度学习模型的新技术:小批量感知正则(mini-batch aware regularization)和数据自适

2022-02-21 16:48:20 1242

原创 6.DeepFM: A Factorization-Machine based Neural Network for CTR Prediction论文详解和代码实现

一、总述这篇论文来自哈工大&华为诺亚方舟实验室,主要关注如何学习user behavior背后的组合特征(feature interactions),从而最大化推荐系统的CTR。但目前的方法容易得到low-或者high-order interactions。因此这篇论文提出构建一个端到端的可以同时突出低阶和高阶feature interactions的学习模型DeepFM。DeepFM是一个新的神经网络框架,结合了FM在推荐中的优势和深度学习在特征学习中的优势。二、DeepFM模型的问题阐述和研

2022-02-16 21:16:07 801

原创 5.Wide & Deep Learning for Recommender Systems论文详细解读和代码实现

一、总述Wide & Deep作为一篇推荐领域的经典论文,不仅具有很高的研读价值,而且在推荐和广告领域得到了极大的推广和应用。该论文的思想归结起来就是两个词:Wide & Deep。Wide模型用来从训练数据中学得出现频率高的特征或者特征组合,也就是论文提到的模型的 memorization能力;Deep模型则用来从训练数据中学得出现频率低或者没出现过的特征组合,也就是论文提到的模型的generalization能力。这两类问题和推荐场景中的exploitation和exploration

2022-02-11 18:57:58 1923

原创 3.内存溢出错误

一、问题贴图和描述numpy.core._exceptions.MemoryError: Unable to allocate 128. KiB for an array with shape (16384,) and data type float64二、问题产生原因和解决方法原因一:一般是由于要跑的数据集太大,而自己电脑没有那么大的内存去支持它去把这个模型跑起来。原因二:batch_size调到太大解决方法:对数据集进行采样,只采用其中的一部分数据,同时调小batch_size,增加训练的轮

2022-02-08 23:36:05 2729

原创 2.tensorflow.python.framework.errors:asertion failed: [0] [Op:Assert] name: EagerVariableNameReuse

一、问题描述及贴图tensorflow.python.framework.errors_impl.InvalidArgumentError: asertion failed: [0] [Op:Assert] name: EagerVariableNameReuse二、解决办法一般情况下可能是自己的GPU指定错了。os.environ['CUDA_VISIBLE_DEVICES'] = '1'一般在这个代码块这里修改GPU的型号,指定为你要训练模型的那块显卡。...

2022-02-08 23:25:32 1562

原创 4.Product-based Neural Networks for User Response Prediction论文详细解读和代码实现

一、前言现在推荐系统,网络搜索和在线广告的数据大多是分类的,并包含多个字段,有一个典型的方法将他们转化成高维稀疏二进制特征表示就是通过one-hot编码。对于这些高维稀疏的特征,传统模型可能会限制它们从数据中挖掘浅层模式的能力,即低阶组合特征,另一方面,像深度神经网络这样的深度模型由于巨大的特征空间而不能直接应用于高维输入。(浅层模型例如FM虽然可学习二阶特征交叉但是表达能力有限;而深层模型例如DNN虽然可以学习高阶信息,但是DNN本身并不具备学习特征交叉的能力(不同的field之间并无”且“的运算),而

2022-02-06 23:37:53 2171

原创 16.滑动窗口系列题目(Java使用相似代码解决LeetCode相关题目)--1208. 尽可能使字符串相等、1456. 定长子串中元音的最大数目、239. 滑动窗口最大值

一、算法综述Sliding window algorithm is used to perform required operation on specific window size of given large buffer or array.滑动窗口算法是在给定特定窗口大小的数组或字符串上执行要求的操作。This technique shows how a nested for loop in few problems can be converted to single for loop an

2022-01-30 23:20:00 124

原创 15.使用一样的BFS方法(代码几乎一模一样)解决多道LeetCode题目--542题(01矩阵)&&1765题(地图中的最高点)&&994腐烂的橘子

一、综述本文总结自己刷LeetCode中遇到的使用BFS方法解决相同类型的题目。(代码几乎是一模一样)二、01矩阵(LeetCode第542题)class Solution { int[][] dirs = {{-1,0},{1,0},{0,1},{0,-1}}; public int[][] updateMatrix(int[][] mat) { int m = mat.length; int n = mat[0].length; i

2022-01-29 16:03:15 858

原创 3.Deep Neural Networks for YouTube Recommendations论文精细解读

一、总述今天分享的是Deep Neural Networks for Y ouTube Recommendations这篇论文的一些核心,这篇论文被称为推荐系统工程实践领域的一篇神文,每一个细节都值得我们细致分析和思考。二、摘要YouTube是如今工业界最大、最复杂的推荐系统之一,作者提出了一种高效的基于深度学习的推荐系统。该系统和工业界经典的推荐流程一样,分为候选集生成( candidate generation也称为召回),排序(ranking)两个阶段。通过深度候选模型(candidate ge

2022-01-19 23:17:47 3025

原创 2.Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features论文核心解读以及代码实现

一、背景微软于2016年提出的Deep Crossing可以说是深度学习CTR模型的最典型和基础性的模型。它涵盖了深度CTR模型最典型的要素,即通过加入embedding层将稀疏特征转化为低维稠密特征,用stacking layer,或者叫做concat layer将分段的特征向量连接起来,再通过多层神经网络完成特征的组合、转换,最终用scoring layer完成CTR的计算。跟经典DNN有所不同的是,Deep crossing采用的multilayer perceptron是由残差网络组成的,这无疑得

2022-01-16 11:52:29 381

原创 1.解决python中导入包不成功的问题(出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url问题)

一、问题描述:出现导入包不成功的问题大致描述如下图所示二、产生问题的原因和解决方法2.1 这种问题出现的原因一般是因为镜像,默认镜像源访问速度过慢,会导致超时从而导致更新和下载失败2.2 解决方案:更换镜像源为清华镜像源,并且删除默认镜像源。(cmd命令行窗口中执行以下语句)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add chann

2022-01-14 19:35:03 3076

原创 14.相同的树&&另一棵树的子树&&检查子树&&二叉树中的列表(教你们使用相同的套路快速解决这四道题)

一、相同的树这道题是开胃菜的开始,使用递归进行解决递归三部曲:确定递归函数的参数和返回值因为我们要比较的是两棵树是否相等,所以参数分别是两棵树的根节点,返回值为boolean类型,即两棵树是否相同,相同则返回true,不相同就返回false,代码如下:public boolean isSameTree(TreeNode p, TreeNode q){}确定终止条件要比较两个节点数值相不相同,首先要把两个节点为空的情况弄清楚!否则后面比较数值的时候就会操作空指针了。左节点和右节点

2022-01-14 12:30:09 136

原创 1.AutoRec: Autoencoders Meet Collaborative Filtering论文解读以及AutoRec代码实现(pytorch)

一、论文原文二、综述协同过滤模型的目的是利用用户对商品的偏好信息来提供个性化的推荐。AutoRec是一个新型的基于自动编码器的协同过滤模型。论文作者认为AutoRec与现有的将玻尔兹曼机用于协同过滤的神经方法相比具有表征和计算上的优势,并从经验上证明了AutoRec优于当前最先进的方法。三、自编码器模型四、AutoRec模型总体而言1、模型输入item-based:每个item用各个user对它的打分作为其向量描述(user-based:每个user用该user对各个item的打分作

2022-01-09 23:22:19 1030

转载 4.聚类的五种主要算法

原博文: 聚类是一种机器学习技术,它涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该具有高度不同的属性和/或特征。聚类是一种无监督学习的方法,是许多领域中常用的统计数据分析技术。 在数据科学中,我们可以使用聚类分析从我们的数据中获得一些有价值的见解。在这篇文章中,我们将研究5种流...

2021-11-11 17:11:37 3620

转载 3.推荐系统(矩阵分解)

思维导图:推荐系统中的经典问题:评分预测(实际应用中,评分数据很难搜集到,属于典型的精英问题),与之相对的问题是行为预测,处处可见。矩阵分解矩阵分解确实可以解决一些近邻模型无法解决的问题,近邻模型存在的问题:1、物品之间存在相关性,信息量并不是随着向量维度增加而线性增加 2、矩阵元素稀疏,计算结果不稳定,增减一个向量维度,导致紧邻结果差异很大的情况出现。矩阵分解就是把原来的大矩阵,近似的分解成小矩阵的乘积,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵具体来说就是,假设用户物品的评

2021-11-10 19:20:32 2464

转载 2.数据挖掘十大算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。C4.5C4.5算法是机

2021-11-04 20:22:44 169

原创 13.最为经典的动态规划入门

一、动态规划的简介动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。首先,动态规划和递推有些相似(

2021-10-19 11:13:14 132

原创 12.前K个高频元素---使用优先队列和哈希表解决

一、目的写本片博客的目的是为了让自己和大家了解优先队列的用法以及HashMap的两种遍历方式二、首先讲解一下什么是优先队列PriorityQueue保存队列元素的顺序不是它们加入队列的顺序,而是他们的大小(默认poll的顺序是从小到大)。所以使用peek()、poll()函数取出队列中的元素时,不是取出最先存进去的元素而是所有元素中最小的元素。同时PriorityQueue不允许插入null元素,他存储的元素必须是可以比较的对象,否则要指明比较器。PriorityQueue实现自定义比较器Pri

2021-09-07 10:43:43 216

原创 10.无重复字符的最长子串---使用滑动窗口方法和哈希表来解决

一、解题方法:滑动窗口1.本题可以使用双层for循环暴力破解,但是时间复杂度很高,会达到O(n^2),所以采用滑动窗口的方法来降低时间复杂度。2.定义一个HashMap数据集合,其中key值为字符,value值为字符位置+1,+1表示从字符位置后一个开始不重复3.我们定义不重复子串的开始位置为start,结束位置为end4.随着end不断遍历向后,会遇到与[start,end]区间内字符相同的情况,此时将字符作为key值,获取其value值,并更新start,此时[start,end]区间内不存在重

2021-09-06 16:01:17 98

原创 10.LeetCode第九题--有效的数独--哈希表的经典应用

思路一个简单的解决方案是遍历该 9 x 9 数独 三 次,以确保:行中没有重复的数字。列中没有重复的数字。3 x 3 子数独内没有重复的数字。实际上,所有这一切都可以在一次迭代中完成。方法:一次迭代首先,让我们来讨论下面两个问题:如何枚举子数独?可以使用 box_index = (row / 3) * 3 + columns / 3,其中 / 是整数除法。注意:此处是我做本题时候没有想到的一个点如何确保行 / 列 / 子数独中没有重复项?可以利用 value -> count

2021-09-04 17:56:36 96

原创 9.LeetCode第350题---两个数组的交集2

一、目的记录本题的主要目的是想让自己以及大家记住一个Java中的一个函数,可以去除数组中的后面无用的零方法是Arrays.copyOfRange(res,0,index);另外需要注意的是本题与两个数组的交集1中的不同便是本题需要把重复的元素列出来,而1中是不需要列举重复元素,所以1可以使用HashSet方法解答。二、代码如下class Solution { public int[] intersect(int[] nums1, int[] nums2) { Array

2021-09-03 16:08:08 57

原创 8.根据中序和后序遍历序列构建二叉树(最为经典的递归解法)

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { *

2021-08-04 08:31:22 136

原创 7.根据先序和中序遍历序列构建二叉树(最为经典的递归解法)

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { *

2021-08-04 08:29:36 368

原创 15.并发工具类(解析hashtable,ConcurrentHashMap1.7与1.8的区别以及Semaphore)

3. 并发工具类3.1 并发工具类-HashtableHashtable出现的原因:在集合类中HashMaori是比较常用的集合对象,但是HashMap在多线程环境下可能会出现线程不安全的情况,为了保证数据的安全性我们可以使用Hashtable,但是Hashtable由于底层使用synchronized(悲观锁)修饰,使得每次有一个线程操作表的时候会将整张表锁起来,导致效率低下。代码实现 :package com.itheima.mymap;import java.util.HashMap;

2021-07-14 16:51:19 180

转载 14.关于原子性的相关介绍

2. 原子性2.1 volatile-问题代码分析 :package com.itheima.myvolatile;public class Demo { public static void main(String[] args) { MyThread1 t1 = new MyThread1(); t1.setName("小路同学"); t1.start(); MyThread2 t2 = new MyThread2();

2021-07-12 21:55:06 101

原创 13.线程池的介绍

1.线程池1.1 线程状态介绍当线程被创建并启动后,它既不是一启动就进入执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程状态被定义java.lang.Thread.State枚举类中,State枚举类的源码如下:public class Thread { public enum State { /* 新建 */ NEW , /* 可运行状态 */

2021-07-12 21:31:56 173 1

原创 12.多线程的实现方式、线程安全问题的产生与解决以及生产者与消费者问题

一、实现多线程1.1 了解多线程多线程是指从软件或者硬件上实现多个线程并发执行的技术,具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,从而提升性能。1.2 并发与并行并行是指同一时刻,有多个指令在多个CPU上同时执行。并发是指同一时刻,有多个指令在单个CPU上交替执行。1.3 进程和线程**进程:**是指正在运行的程序,比如说360杀毒软件这个程序**独立性:**进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。**动态性:**进程的实质是程序的一

2021-07-10 20:53:13 188

空空如也

空空如也

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

TA关注的人

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