- 博客(195)
- 资源 (7)
- 收藏
- 关注
原创 【推荐系统】【多任务学习】Progressive Layered Extraction (PLE)
尽管多任务学习在许多推荐应用中取得了成功,但现有模型常常因为现实世界推荐系统中任务之间复杂的相互关系而导致性能退化,这种现象称为负迁移。此外,研究者们观察到了一个有趣的跷跷板现象,即一个任务的性能提升往往以牺牲其他任务的性能为代价。为了解决这些问题,论文提出了一种名为渐进分层提取(Progressive Layered Extraction, PLE)的新型MTL模型。
2024-08-11 20:38:43 826
原创 【推荐系统】【多任务学习】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
在传统多任务学习中,任务间关系被建模为固定和静态的。这意味着模型在训练过程中假设任务之间的关系不会变化,这限制了模型适应任务间可能存在的动态和复杂关系的能力。这种静态关系建模方式可能导致模型无法充分利用任务间的潜在互补信息,从而影响学习效率和泛化能力。此外,当任务间存在负迁移时,固定关系可能加剧这一问题,导致某些任务的性能下降。因此,需要一种能够动态调整任务间关系的MTL方法,以提高模型的灵活性和鲁棒性。这篇论文提出了多门控混合专家(MGMoE)模型,用于改善多任务学习中任务间关系建模的灵活性。
2024-08-01 23:52:56 688
原创 【leetcode刷题之路】面试经典150题(8)——位运算+数学+一维动态规划+多维动态规划
动态规划一生之敌!以后要多刷动态规划的题目培养思维能力!
2024-03-23 10:20:55 1215
原创 【leetcode刷题之路】面试经典150题(6)——图+图的广度优先搜索+字典树+回溯
最近陆陆续续很多地方开始笔试和面试,大家都要好运好运哦,考的全会蒙的全对!!!
2024-03-11 11:03:46 1083 1
原创 【leetcode刷题之路】面试经典150题(5)——二叉树+二叉树层次遍历+二叉搜索树
最近有很多企业的春招和暑期实习都陆续开放了,大家要加油哦~
2024-03-04 22:50:19 830
原创 面试常用排序查找算法
插入排序算法的优点是简单易懂,对于部分有序或者数据量较小的数组效率较高。,其中n是数组的长度。缺点是需要额外的空间来存储堆结构,并且对于稳定性要求高的场合不适用。,其中n是数组的长度。,其中n是数组的长度。缺点是要求数组必须是有序的,并且对于动态变化的数组不适用。冒泡排序算法的优点是简单易懂,不需要额外的空间。选择排序算法的优点是简单易懂,不需要额外的空间。,其中n是数组的长度。缺点是不稳定,并且对于不同的间隔选择效率有影响。,其中n是数组的长度。,其中n是数组的长度。,其中n是数组的长度。
2023-10-02 22:33:58 719
原创 【leetcode刷题之路】剑指Offer(4)——分治+排序算法+动态规划
前序遍历是根左右,中序遍历是左根右,这也就意味着前序遍历的第一个节点是整棵树的根节点,顺着这个节点找到它在中序遍历中的位置,即为in_root,那么in_root左边的都在左子树,右边的都在右子树,这样就可以知道左子树一共有多少个节点,然后去前序遍历中找到左右子树的分界点,分成左右两部分,分别重复上述过程,找到各自部分的第一个根节点,然后再依次往下进行,直到最后左右子树的边界发生重合,此时二叉树重建完毕。(2)第二层遍历,分别遍历每一位数是几,除了第一位是1-9之外,其余都是0-9。
2023-08-29 23:02:36 2509
原创 【leetcode刷题之路】剑指Offer(3)——搜索与回溯算法
这道题其实就是把给出的这个二叉树变成中序遍历的结果输出,然后在中序遍历的过程中改变左右子树的指向即可,使之变成双向循环链表,这里借助双指针来构造循环链表,head指向循环链表的开始,pre指向中序遍历过程中访问到的每个结点的前序结点,按照中序遍历的过程进行DFS,遍历到最下面的左子树时,开始构造链表,此时左子树应该是当前root的前驱,这样就构造出了一个循环,然后依次往上返回构造其他循环,最后要把头尾连接起来。以上一题不同的是每层的数要存放为一个向量,最后返回多个向量。
2023-07-10 23:12:06 1339
原创 【自然语言处理】COLD:中文攻击性言论检测数据集
随着社交媒体的普及,网络上出现了大量的攻击性言论,这些言论不仅影响了网络环境的文明程度,也对使用预训练语言模型的应用带来了潜在的风险。因此,检测和过滤攻击性言论是一项重要的任务,也是自然语言处理领域的一个研究热点。然而,目前针对中文攻击性言论检测的研究还很少,主要原因是缺乏可靠的数据集。这篇文章提出了一个中文攻击性言论检测的基准测试——COLD,包括一个数据集和一个检测器。
2023-06-26 09:58:43 3309 1
原创 【leetcode刷题之路】剑指Offer(2)——栈与队列+模拟+查找算法
定义两个栈s1和s2,s1是用来存放原始元素的栈,s2是用来记录每次s1入栈操作后此时的最小元素,这里要注意的时候,当每次s1进行pop操作时,s2也要进行pop操作,如果此时s2不为空的话,要把当前的最小值stack_min赋值为s2的栈顶元素,因为s2中出栈的元素有可能就是之前s1中的最小值,但是刚好此时s1出栈的元素就是这个最小值,所以这个最小值就消失了,不应该在s2中。模拟栈的压入过程即可,但是每次压入之后都要将top元素与popped中对应的元素进行比较,来模拟是否是合理的出栈序列。
2023-06-20 23:21:53 1094
原创 【一起啃书】《机器学习》第十章 降维与度量学习
主成分分析(PCA)是一种使用最广泛的数据降维算法,它的主要思想是将nnn维特征映射到kkk维上,这kkk维是全新的正交特征,也被称为主成分,是在原有nnn维特征的基础上重新构造出来的kkk维特征。PCA的数学定义是:一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。
2023-06-19 20:55:04 3117 1
原创 【一起啃书】《机器学习》第九章 聚类
AGNES是一种采用自底向上聚合策略的层次聚类算法,它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直到达到预设的聚类簇个数,所以关键在于如何计算聚类簇之间的距离。聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”,通过这样的划分,每个簇可能对应于一些潜在的概念(类别),这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。
2023-06-14 22:44:59 1397
原创 【leetcode刷题之路】剑指Offer(1)——字符串+链表+双指针
利用双指针,定义pa和pb分别指向A和B的头节点,这里判断是否相交采用了一个非常有意思的方法,假设A和B相交节点前各有skipA和skipB个节点,而相交节点数为C,pa和pb同时开始遍历,如果pa遍历完了就指向headB,同理pb,那么到最后总会遍历相同次数,对于A:skipA+C+skipB,对于B:skipB+C+skipA,如果此时的节点一样的话,说明相交,否则说明都遍历到了各自的最后节点仍不相交,返回空指针。判断当前l1和l2的大小,如果l1较小,就从l1往后连接,并返回l1,同理l2。
2023-06-12 22:16:17 5640
原创 【日志解析】【频率分析】ULP:基于正则表达式和本地频率分析进行日志模板提取
日志文件包括大量关于软件系统执行的信息,用于帮助处理不同的软件工程活动,生成的日志事件主要由两部分组成:日志头和日志消息。解析日志消息需要自动区分静态文本和动态变量,一种方法是使用正则表达式,而典型的工业日志文件可能包含数百个日志模板,许多方法基于频率分析来实现,比如Drain和Logram,这些工具将频率分析应用于整个日志文件,这使得很难在静态和动态标记之间找到明确的界限。
2023-06-11 20:23:54 1566
原创 【日志解析】【启发式】Drain:一种用于日志解析的深度解析树
如今,越来越多的开发人员利用现有的Web服务来构建他们自己的系统,在此背景下,基于日志分析的服务管理技术,即利用服务日志来实现自动或半自动的服务管理,已经得到了广泛的研究。因此,应用数据挖掘模型来了解系统行为的日志分析技术被广泛应用于服务管理。在这些日志分析技术中使用的大多数数据挖掘模型都需要结构化的输入(例如,一个事件列表或一个矩阵)。但是,原始日志消息通常是非结构化的,因为开发人员可以在源代码中编写自由文本的日志消息。因此,日志分析的第一步是日志解析,其中非结构化日志消息被转换为结构化事件。
2023-06-07 23:53:12 1734
原创 【leetcode刷题之路】初级算法(2)——链表+树+排序和搜索+动态规划
首先将链表进行反转,然后按照链表长度的一半逐一进行比较即可,这里要注意赋值的问题,一开始我是想直接把head赋值给一个空链表,后面发现指针这个东西都是指向同一个地址的,所以其中一个的结构变了另一个也会跟着变,后来就改用数组来存head里面原来正序的数字了,后期可以考虑一下如何用双指针(快慢指针)和栈怎么解决。BFS解题,按照树的每一层进行遍历,首先定义队列,如果当前节点不为空,则加入队列,之后分别遍历该节点的左右子树,依次重复上述操作,直到最后队列元素为空。二分法解题,注意遍历大小是从1到n,不要越界了。
2023-05-28 22:21:06 2061
原创 【一起啃书】《机器学习》第八章 集成学习
是个体学习器的平均分歧。Boosting是一种可将弱学习器提升为强学习器的算法:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本的分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;在一般经验中,如果把好坏不等的个体学习器掺到一起,那么通常结果会是比最坏的要好一些,比最好的要坏一些,要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,并且要有“多样性”,也就意味着学习器间具有差异,如下所示。
2023-05-27 21:32:29 1473 2
原创 【一起啃书】《机器学习》第七章 贝叶斯分类器
对于贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短编码,所以我们应该选择那个综合编码长度最短的贝叶斯网,这就是“最小描述长度”准则。贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网,“评分搜索”是求解这一问题的常用方法,通过定义一个评分函数来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。未观测变量的学名是“隐变量”。具体来说,一个贝叶斯网。
2023-05-13 16:24:23 1141
原创 【一起啃书】《机器学习》第六章 支持向量机
给定训练样本集D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}D = \{ ({x_1},{y_1}),({x_2},{y_2}),...,({x_m},{y_m})\} ,{y_i} \in \{ - 1, + 1\}D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1},分类学习最基本的想法就是基于训练集DDD在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本分开的划分超平面可能有很多,如下所示:
2023-05-04 15:47:49 1627
原创 【一起啃书】《机器学习》第五章 神经网络
基于梯度的搜索时使用最为广泛的参数寻优方法,梯度下降法是沿着负梯度方向搜索最优解,因为负梯度方向是函数在当前点的方向导数最小的方向,方向导数是函数沿着某个方向的变化率,它与函数的梯度和该方向的单位向量的点积相等,当两个向量的夹角为180度时,点积最小,也就是说,当单位向量与梯度的反方向一致时,方向导数最小。Elman网络是最常用的递归神经网络之一,如下所示,它的结构与多层前馈网络很相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入。
2023-04-28 21:05:44 3985
原创 【leetcode刷题之路】初级算法(1)——数组+字符串
还是继续使用了双指针,low_price指的是目前遍历到的最低价格,初始为第一个元素,high_price指的是目前遍历到的最高价格,当找到最高价格的时候,说明产生了利润,这是计算本次的利润,并修改两个指针的值再次向后遍历,直到遍历完所有情况,不过这里还要考虑一下特殊情况,比如如果股票价格一天比一天低,最后利润应该为0,在这里定义了一个flag用来判断这个特殊情况。简单的进位加法题目,从数组的最后一个元素往前遍历即可,满十进一,不过要判断一下数组的第一个元素是否满十进一。
2023-04-20 00:05:31 1022
原创 【一起啃书】《机器学习》第四章 决策树
一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点,叶结点对应于决策结果,其他每个结点则对应于一个属性测试,每个结点包含的样本集合根据属性测试的结果被划分到子结点中,根结点包含样本全集,从根结点到每个叶结点的路径对应了一个判定测试序列。下面举一个西瓜数据集的例子,以下是数据集详情。决策树学习的关键在于如何选择最优化分属性,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,也就是结点的“纯度”越来越高,下面介绍几种在选择最优划分属性时常用的指标。
2023-04-15 01:03:35 756
原创 【一起啃书】《机器学习》第三章 线性模型
考虑到二分类任务,其输出标记$y \in { 0,1} $,而线性回归模型产生的预测值是实数值,所以需要将其进行转换,最理想的是单位阶跃函数,即预测值大于零判为正例,小于零判为负例,等于零可任意判别。需注意的是,欠采样法的时间开销通常远小于过采样法,因为前者丢弃了很多反例,使得分类器训练集远小于初始训练集,而过采样法增加了很多正例,其训练集大于初始训练集,过采样法也不能简单地对初始正例样本进行重复来样,否则会招致严重的过拟合。它的作用是减小模型所有参数的大小,可以防止模型过拟合,提升模型的泛化能力。
2023-04-11 19:35:01 548
原创 【一起啃书】《机器学习》第一章 绪论 + 第二章 模型评估与选择
其中,训练集和测试集是必须的,而验证集是可选的,如果没有设置验证集,通常得等到测试集才可以知道训练之后的模型效果如何,然后再来调整超参数,这样时间代价较高,通过验证集可以训练几个epoch后查看模型的训练效果,然后决定怎么调整超参数。:数据集、示例(样本)、属性(特征)、属性值、属性空间(样本空间、输入空间)、特征向量、学习(训练)、训练数据(训练集)、训练样本、学习器、标记空间(输出空间)、分类、回归、聚类、监督学习、无监督学习、正类、反类、多分类、测试集、泛化能力、假设空间、版本空间。
2023-04-08 15:52:41 1384
原创 【自然语言处理】【词嵌入】dLCE:将词汇对比集成到近义反义的词嵌入中
近义词与反义词是一中非常重要的语义关系,在nlp中应用广泛,由于它们在文本中可以互相替换着出现,所以区分它们颇具挑战。目前的方法认为具有相似分布的词汇有着相关的含义,于是倾向于构建词向量的方式来区分近义词与反义词。本文提出了新式的向量表示,提高预测词汇的相似度,对传统的分布式语义模型和词向量模型都有效。此方法通过使用词汇对比信息提高了权重特征的质量以区分同义词和反义词;结合词汇对比信息和skip-gram 模型预测相似、确定反义词。提高了权重特征的质量以区分同义词和反义词;
2023-04-04 23:18:51 735
原创 【深度学习】【语义分析】LogAnomaly:基于序列异常和定量异常的无监督学习的非结构化日志异常检测
发表会议:International Joint Conference on Artifificial Intelligence(CCF-A)发表时间:2019年关键词:日志异常检测、template2vec、序列/定量异常现有的自动日志异常检测方法使用索引而不是日志模板的语义,往往会导致误警报。在这项工作中,我们提出了LogAnomaly。
2022-10-04 16:46:47 2899 3
原创 和小白一起学正则表达式
表示或者,在下面的例子中先去匹配a和空格,再去匹配后面的cat或者dog,如果不加括号就只能匹配出来dog了。前面的字符可以出现0次也可以出现多次。会去匹配1次以上的字符,表示。可以指定字符出现的次数,表示。下面表示出现的次数是2次及以上。下面表示出现的次数是6次及以下。表示匹配的字符只能取自它们。贪婪匹配:尽可能多的匹配字符。懒惰匹配:尽可能少的匹配字符。前面的字符出现1次及以上。:所有的英文字符和数字。后面列出的以外的字符。前面的字符可有可无。前面的字符出现几次。:所有的小写英文字符。
2022-09-14 15:31:34 959
原创 【和小白一起学elk】CH1:elasticsearch8.4.1及其插件head和kibana的安装
(1)msi是Windows installer开发出来的程序安装文件,它可以让你安装、修改、卸载你所安装的程序,把所有和安装文件相关的内容封装在一个包里。一定注意是在release里面下载,不是下载源码,下载完成之后解压放入ES的插件即可,然后重新启动ES,会在cmd中发现正在加载插件。这里需要注意的是,ES8.x的版本自带jdk,所以无需安装也可以正常运行ES,如下所示即为运行成功,可以通过网页访问。(1)下载完成后,双击进行安装,一直点next即可,默认安装到C盘,也可以修改安装路径。
2022-09-12 14:48:55 2125
原创 【和小白一起练习CTF】攻防世界:web基础练习题(2)
首先介绍一下webshell,webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。在Intruder界面中,选择Payloads,在中间左部的框框中导入弱密码文本,之后点击右上角的运行,最后破解出来的密码的length会与其他不同,得到flag。:打开之后,发现有输入密码,但是不管输入什么,永远都提示以下信息。...
2022-08-11 16:36:47 4232
原创 【和小白一起练习CTF】攻防世界:web基础练习题(1)
robots.txt文档记录了不应该被搜索引擎的漫游器获取的东西 ,它一般放在根目录下,搜索引擎搜索这个网站时,首先访问这个robots.txt,如果它存在,那就按照它上面写的,不允许访问的页面就不访问,如果它不存在,那搜索引擎就可以查阅所有没有口令保护的页面。:打开网页之后,发现有个按钮,但是点击不了,这时按下F12,打开开发者工具,修改网页源代码,去掉disabled,按钮就可以点击了,这时就出现了flag。:这道题目是要我们了解一下网页的备份文件,在了解之后就可以轻松解决这道题目,下面先介绍一下。..
2022-08-07 17:47:26 3605 3
原创 谷歌浏览器插件HackBar安装方法(详细教程)
找到里面的hackbar-panel.js,打开,修改对应部分如下即可(可能这段被注释了,需要去掉注释符号/**/)。打开谷歌浏览器右上角的三个点点,点击里面的更多工具,找到扩展程序,把下载的压缩包直接拖入里面即可。之后打开谷歌浏览器,按下F12,就可以找到HackBar了。找到里面的加载来源,点击,进入安装路径。找到里面的theme文件夹并打开。:执行HackBar中的网址。:以post的方式提交数据。注意:下载即可,不用解压。:提供一些方便查询的语句。:提供一些XSS攻击语句。:复制地址栏中的地址。..
2022-08-06 17:33:45 22435 11
原创 【白帽子讲Web安全】第二章 浏览器安全
2.这一策略极其重要,如果没有同源策略,可能a.com的一段JavaScript脚本,在b.com未曾加载此脚本时,也可以随意修改b.com的页面(在浏览器显示中)。1.目前各个浏览器的拦截恶意网址的功能是基于“黑名单”的,一般是浏览器周期性地从服务器获取一份最新的恶意网址和名单,如果用户上网时访问的网址存在于此黑名单中,浏览器就会弹出一个警告页面。需要注意的是,对于当前页面来说,页面内存放JavaScript文件的域并不重要,重要的是加载JavaScript的页面所在的域是什么。......
2022-07-21 17:38:52 1453
原创 【白帽子讲Web安全】第一章 我的安全世界观
指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果——程序在栈或者堆中,将用户数据当做代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。要求系统只授予主体必要的权限,而不要过度授权,这样能有效地减少系统,网络,应用,数据库出错的机会。...
2022-07-18 17:29:39 2349 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人