- 博客(125)
- 资源 (6)
- 收藏
- 关注
原创 MTGR(美团生成式推荐框架)总结文档
本文是美团团队发表于CIKM ’25的研究成果,提出MTGR(Meituan Generative Recommendation)工业级生成式推荐框架,解决了传统推荐模型规模化的核心矛盾,实现了性能与可扩展性的双重提升,并成功落地美团外卖推荐系统。
2026-03-21 18:41:14
365
原创 [Python] 反转链表相关技巧
cur:原链表的头节点,在反转结束时,cur指向pre的下一个节点pre:原链表的尾节点,也就是反转后链表的头节点。最终返回的是pre。while cur:表示反转循环的条件,这里是判断cur是否为空。也可以根据题目的条件改成其他循环条件反转链表的尾节点,这里的尾节点是None,后面会提到显式指定。想清楚这几个关键点都是如何定义的,基本题目都可以迎刃而解啦。
2022-10-23 16:02:08
3018
原创 [Python] 链表中的排序相关问题
思路都很简单,相当于把简单的排序从数组迁移到了链表中。个人认为技巧在于链表节点的生成与穿针引线,一般可以使用两个辅助节点,定义虚拟节点和游走节点,虚拟节点负责返回整个链表,游走节点负责穿针引线。新建一个虚拟头节点 dummpyNode = ListNode(-1) 和一个游走节点 pHead = dummpyNodedummpyNode负责指返回链表,游走节点负责生成链表如果满足xx要求,则有 pHead.next = head;再开始下一轮循环。
2022-10-22 22:31:29
1721
原创 [Python] 二维数组初始化实践
参考博客,文中提到正确的初始化方式是a = [[0 for j in range(n)] for i in range(n)],错误的初始化方式a = [0 * n] * n。本质是:第一种正确初始化方式:n * n个元素直接从第一个元素生成而来,一开始的时候大伙都是第一个元素的快捷方式,找任意行任意列的元素都会找到第一个元素。当其他元素有了自己的值以后,就变成独立的元素啦。第二种初始化方式:先由一个元素生成一行,再以这一行生成其他行。所以,即使其他行的某个元素改变了,其实也只是在改变第一行的元素。
2022-10-19 22:51:54
5191
原创 [代码实现]用Tensorflow实现MMoE
本文主要介绍tensorflow中mmoe的实现方式。一.mmoe概念先简单回忆下mmoe的概念:https://blog.csdn.net/u013250416/article/details/118642297二.已有keras版本实现思路分析github中已经有keras版本mmoe的实现(https://github.com/drawbridge/keras-mmoe/blob/master/mmoe.py),通过已经有的代码,可以简单理顺一下mmoe中各个组件的维度。cl
2021-08-08 17:39:33
3028
原创 [论文笔记]Recommending what video to watch next: a multitask ranking system
一.论文题目与作者[1] Zhao Z , Chi E , Hong L , et al. Recommending what video to watch next: a multitask ranking system[C]// the 13th ACM Conference. ACM, 2019.二.创新点挑战:在Youtube中,有多个影响排序的目标相互竞争。并且,在用户的反馈中,包含隐式的选择偏差。目标包含两大类:1.参与度:用户是否点击、与推荐的视频的参与度,如停...
2021-07-11 21:50:08
617
2
原创 [论文笔记]SDM: Sequential Deep Matching Model for Online Large-scale Recommender System
一.论文题目与作者Lv F , Jin T , Yu C , et al. SDM: Sequential Deep Matching Model for Online Large-scale Recommender System[J]. 2019.二.摘要这是主要介绍推荐系统中召回技术的一篇文章。主要创新点包括:1.在用户短期行为中通过multi-head self-attention捕获多种兴趣;2.通过门控融合模块同时利用用户的短期行为和长期行为。三.网络结构线上结
2021-07-11 12:32:10
1145
原创 [论文笔记]Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
一.论文题目与作者Ma J , Zhe Z , Yi X , et al. Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts. ACM, 2018.二.摘要2.1 出发点常见的多任务学习模型对子任务间的关系非常敏感,因此,需要权衡特定任务目标的学习和子任务间关系的学习。2.2 创新本文提出Multi-gate Mixture-of-Experts(MMoE),明确
2021-07-10 22:58:27
920
原创 从XGBoost想开去:泰勒公式、梯度下降法、牛顿法、海森矩阵
写在前面:重温XGBoost的时候,发现很多基本的数学知识已经忘得差不多了。借温习XGBoost的机会,就重新走一遍与XGBoost沾边的那些年的高等数学与线性代数吧!泰勒公式定义:泰勒公式是一个用函数在某点的信息描述其附近取值的公式。 基本形式: ...
2020-03-28 21:19:50
1438
原创 [日常杂言]推荐一个在线使用LaTeX格式的网站overleaf
毕业在即,毕业论文是头等大事。开题报告和中期报告用word折腾过后,便打定注意要用LaTeX。本来想好在本机装环境,经历多少艰难险阻已不愿再提,于是最终选择网站overleaf(网址:https://www.overleaf.com)下面,介绍如何在overleaf中使用中科院的研究生毕业论文LaTeX模版。1.在github中下载中科院的研究生毕业论文LaTeX模版的zip包,githu...
2019-02-21 15:17:47
3907
2
转载 [转]场景文字识别数据集
转自:https://blog.csdn.net/u011489887/article/details/79804498 1.中文数据集CTW data(Chinese Text in the Wild)清华大学与腾讯共同推出了中文自然文本数据集(Chinese Text in the Wild,CTW)——一个超大的街景图片中文文本数据集,为训练先进的深度学习模型奠定了基础。目前,该...
2018-12-29 15:18:52
2118
1
原创 [日常杂言]关于目标检测的思考
日常杂言主要是一些非正式的思考,仅记录。今天去face++面试,面试官一开始问我,faster rcnn中的rpn,为什么要设置多个尺寸的anchor?我说,是根据边框回归的原理,只有当Proposal和Ground Truth比较接近时(线性问题),我们才能将其作为训练样本训练我们的线性回归模型,否则会导致训练的回归模型不work(当Proposal跟GT离得较远,就是复杂的非线性问题了...
2018-10-30 16:08:06
453
4
原创 [cv基础二]图像特征点提取
写在前面:图像的点特征是许多计算机视觉算法的基础。在运动目标跟踪,物体识别,图像配准,全景图像拼接,三维重建等方面,都使用特征点来代表图像的内容。角点是其中一类重要的点特征。下面就什么是角点及常见的角点检测算法进行介绍。一,角点的定义角点(corner points):1)局部窗口沿各方向移动,均产生明显变化的点;2)图像局部曲线曲率突变点点。不同类型的角点的示意图如图一。...
2018-10-23 15:50:32
1260
原创 [cv基础一] 图像底层特征:轮廓与边缘
写在前面:用深度学习的方法调了一波参数,改了一波网络结构,回过头,最想做的事情,当然是好好补一补计算机视觉的基础,弥补一下对传统计算机视觉理解的薄弱部分。所以,接下来,开始补习计算机视觉的基础。供自己以后复习,看客仅供参考。图像底层特征提取是计算机视觉的基本步骤。那么,接下来,就从what,why,how几个方面,来一一解答。一,什么是图像底层特征?图像底层特征指的是:轮廓和边缘。...
2018-10-19 17:27:01
7413
原创 LRUCache详解
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put.get(key) - Get the value (will always be positive) of the key if th...
2018-08-26 16:27:20
515
原创 链表环问题总结
1.Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?判断一个链表是否有环思路:通过定义一个fast指针初始指向头节点,每次走两步;定义一个slow指针初始指向头节点,每次走一步。如果它们能够相遇,那么链表中存在环。...
2018-08-26 15:23:33
310
原创 旋转数组问题总结
1.Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).Find the minimum element.You may assume no ...
2018-08-26 12:27:40
517
原创 传统提取图片特征的方式:颜色直方图、方向梯度直方图、词袋
对图片做线性分类,最直观的做法是,将图像中的原始像素之间传入线性分类器。由于多模态等原因,直接传入分类器效果不太好。所以,在深度神经网络得到大规模应用之前,通常使用两步走策略:1.拿到图片,计算图片的各种特征代表。2.将不同的特征向量融合到一起,得到图像的特征表述。然后,将图像的特征表述传入线性分类器。下面简要介绍传统提取图片特征的方式,包括颜色直方图、方向梯度直方图、词袋等。 ...
2018-08-05 12:20:42
5704
2
原创 [深度学习] 梯度消失与梯度爆炸、Loss为Nan的原因
现象如何确定是否出现梯度爆炸?在训练过程中出现梯度爆炸会伴随一些细微的信号,如:(1)模型无法从训练数据中获得更新;(2)模型不稳定,导致更新过程中的损失出现显著变化;(3)训练过程中,模型的损失变为Nan。 梯度消失与梯度爆炸原因首先,来看神经网络更新梯度的原理,即反向传播算法。详细推导参考:反向传播算法通过反向传播算法更新梯度的公式可以看到,影响梯度...
2018-08-04 14:35:19
27203
2
原创 [深度学习] 激活函数、损失函数、优化函数的作用
激活函数、损失函数、优化函数都分别是什么?有什么作用?下面,就以激活函数、损失函数、优化函数在神经网络中的作用,浅析一二。利用神经网络进行分类、检测、分割等任务的关键,就是利用反向传播算法,求解神经网络,找到正确的W,b。反向传播算法的过程如下:也就是说:激活函数:将神经网络上一层的输入,经过神经网络层的非线性变换转换后,通过激活函数,得到输出。常见的激活函数包括:sigm...
2018-08-03 18:17:58
17427
原创 [深度学习]神经网络卷积方式:卷积、转置卷积与空洞卷积
感受野定义:在卷积神经网络中,感受野的定义是,卷积神经网络中每一层输入的特征图(feature map)上的像素点在原始图像上的映射大小。对于pooling操作,第一个作用是降低feature map的尺寸,减少需要训练的参数;第二,通过减小feature map的尺寸,将之前的4个像素点,压缩为1个,相当于通过这1个像素点,可以看到前面层的4个像素点,增大了感受野。但是,在图像分割操作中...
2018-08-01 20:13:25
3486
原创 回溯
在回溯中,递归调用的一个重要特征是要返回。回溯法是暴力解法的一个主要实现手段。在回溯法中通过剪枝,不用到达所有的叶子节点,从而提升算法的效率。1.17. Letter Combinations of a Phone NumberGiven a string containing digits from 2-9 inclusive, return all possible le...
2018-07-30 22:19:59
370
原创 [深度学习]语义分割、分类定位与目标检测
语义分割定义:输入图像,并对图像中的每个像素做分类。以第一幅图像为例,图像中是一只可爱的猫在草地上散步。输出结果应该是,对于每个像素,确定它属于猫、草地或者天空,或者背景亦或其他分类。语义分割并不区分同类目标。也就是说,不会区分第二幅图的这两头牛,这是语义分割的缺点。语义分割的方法:滑动窗口:从图像中提取各个图像块,并且分类。缺点:计算繁琐,效率低。全卷积神经网络:...
2018-07-30 11:13:28
23467
2
原创 [深度学习]循环神经网络:RNN,LSTM,GRU,Attention机制,沿时间的截断反向传导算法
RNN(Recurrent Neural Network,循环神经网络) 每个RNN都有一个循环核心单元。它把x作为输入,将其传入RNN。RNN有一个内部隐藏态(internal hidden state)。这个隐藏态会在RNN每次读取新的输入时更新,然后隐藏态会将结果返回至模型。ht = fw (ht-1, xt)其中,xt为t时刻的输入,ht为t时刻的内部隐藏态。R...
2018-07-29 22:39:17
9718
原创 [深度学习]卷积神经网络:卷积、池化、常见分类网络
卷积全连接层:将卷积层所有的像素展开,例如得到一个3072维的向量,然后在向量上进行操作。卷积层:可以保全空间结构,不是展开成一个长的向量。卷积操作:将卷积核从图像(或者上一层的feature map)的左上方的边角处开始,遍历卷积核覆盖的所有像素点。在每一个位置,我们都进行点积运算,每一次运算都会在我们输出的激活映射中产生一个值。之后根据stride值,继续滑动卷积核。例如strid...
2018-07-29 22:27:09
5716
原创 [深度学习]数据预处理(归一化方法)、Batch Normalization、超参数搜索 与 神经网络权重的初始化
归一化方法1.线性比例变换法 y = x / max(x)2.极差变换法y = (x - min(x)) / (max(x) - min(x))缺点:当有新数据加入时,会导致min(x) 与 max(x) 的变化,需要重新定义。3.0均值标准化y = (x - mean(x)) / alpha对数据进行归一化的本质:使得数据分布的均值为0,方差为1。图像中的归一...
2018-07-23 21:54:40
5023
原创 [深度学习]模型泛化性能的度量标准
过拟合与欠拟合1.概念过拟合:当模型过度地学习训练样本中的细节与噪音,把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化性能的下降,以至于模型在新的数据上表现很差。欠拟合:对训练样本的一般性质尚未学好。2.原因出现过拟合的原因:训练集与测试集的特征分布不一致 / 模型太过复杂,而样本量不足出现欠拟合的原因:模型比较简单 / 模型本身性能不佳 / ...
2018-07-23 21:16:40
3931
原创 字符串
1.请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:类似数组的双索引。class Solution {public: void replaceSpace(char *str,int length) { int oldstringLen = 0; ...
2018-07-21 16:22:12
236
原创 使用opencv从图片中裁剪出任意形状的四边形
写在前面:之前是先得到任意四边形的最小外接矩形,再使用opencv进行裁剪,但是这样会引入噪声。所以在此记录下,如何直接裁剪原任意四边形区域。思路:1.计算要裁剪区域四边形的相对水平方向的旋转角度;2.将原图旋转该角度,以使得要裁剪的区域旋转到水平方向;3.将要裁剪区域的坐标做相应的转换,转换为旋转后的坐标;4.对该区域进行裁剪。# -*- coding:utf-8 -*...
2018-07-18 20:42:38
14438
5
原创 [深度学习]梯度下降算法、优化方法(SGD,Adagrad,Adam...)
求解神经网络,也就是求解 y =f(wx + b) 中的w 和 b。那么如何找到正确的权重值 w 和 b 呢?随机搜索。需要很多权重值,随机采样,然后把它们输入损失函数,再看它们效果如何。(stupid) 梯度下降算法。首先,初始化 w 和 b, 然后,使用梯度下降算法,对 w 和 b 进行更新。下面,就对梯度下降算法,及其优化变体进行解释。 梯度下降算法形象化解释:...
2018-07-17 23:01:14
9836
2
原创 递归
1、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)class Solution {public: int Sum_Solution(int n) { int ans = n; n && (ans += Sum_Solution(n-1)); ...
2018-07-10 22:25:22
187
原创 [深度学习]神经网络的激活函数
为什么要引入非线性激活函数如果不使用非线性激活函数,激活函数本质上相当于f(x)=ax+b。在这种情况下,神经网络每一层的输出都是上层输入的线性函数。此时,不管神经网络有多少层,输出与输入都是线性关系,与没有隐层是一样的。也就相当于最原始的感知机,连最基本的异或问题都无法解决,更别说其他更复杂的非线性问题。 常见的激活函数sigmoid函数sigmoid函数的数学形式为,导数为...
2018-07-10 21:18:13
3544
原创 数组2
剑指offer数组题1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector<vector<int> > array) { ...
2018-07-09 17:48:58
499
1
原创 [深度学习]回归模型
回归问题的条件/前提:1) 收集的数据2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的参数。这样就形成了一个线性模型函数,向量表示形式:...
2018-07-07 20:09:55
9056
1
原创 队列、栈
1、用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()){ while(!stack1.em...
2018-07-07 16:43:19
215
原创 c++常见Built-in总结
1、判断是否为数字或字母isalpha:如果是字母,返回一个非零数;否则,返回0;isdigit:如果是数字(0-9),返回一个非零数;否则,返回0;isalnum:如果是字母或数字,返回一个非零数;否则,返回0;更新ing......
2018-07-07 10:14:15
1407
原创 树
1.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val;...
2018-06-26 22:38:36
241
原创 动态规划之三:最长上升子序列与最长公共子序列问题
一.最长上升子序列1.定义LIS(i):表示以第i个数字为结尾的最长上升子序列的长度LIS(i):表示在[0...i]的范围内,选择数字nums[i]可以获得的最长上升子序列的长度LIS(i) = max(1 + LIS(j)) (i > j)2.例题300. Longest Increasing SubsequenceGiven an unsorted array of integers,...
2018-06-14 08:18:24
434
原创 动态规划之二:0/1背包问题
一、0/1背包问题定义有一个背包,它的容量为C(Capacity)。现在有n种不同的物品,编号为0...n-1,其中每一件物品的重量为w(i),价值为v(i)。问可以向这个背包中盛放哪些物品,使得在不超过背包容量的基础上,物品的总价值最大。F(n, C):考虑将n个物品放进容量为C的背包,使得价值最大。状态转移方程: F(i, c) = max ( F(i-1, c), v(i) + F(i-1,...
2018-06-09 17:39:27
554
原创 动态规划之一:基本思想
一.基本思想一般来说,只要问题可以划分为规模更小的字问题,并且原问题的最优解中包含了子问题的最优解,则可以考虑用动态规划解决。动态规划的实质是分治思想和解决冗余。因此,动态规划是一种将问题实例分解为更小的/相似的子问题,并存储子问题的解,使得每个子问题只求解一次,最终获得原问题的答案,以解决最优化问题的算法策略。与贪心法的关系:1.与贪心法类似,都是将问题实例归纳为更小的、相似的子问题,并通过求解...
2018-06-03 23:09:17
25208
WindowsPhone8的新浪微博接口SDK c#新浪微博接口SDK 有样例 有Demo
2014-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅