10 2019 档案

摘要:场感知分解机(Field aware Factorization Machine ,简称FFM)在FM的基础上进一步改进,在模型中引入类别的概念,即field。将同一个field的特征单独进行one hot,因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅 阅读全文
posted @ 2019-10-31 15:39 Jamest 阅读(755) 评论(0) 推荐(0) 编辑
摘要:因子分解机(Factorization Machine,简称FM)算法用于解决大规模稀疏数据下的特征组合问题。FM可以看做带特征交叉的LR。 理论部分可参考 "FM系列" ,通过将FM的二次项化简,其复杂度可优化到O(kn)。即: $$ \hat y(x) = w_0+\sum_{i=1}^n 阅读全文
posted @ 2019-10-31 14:20 Jamest 阅读(1649) 评论(0) 推荐(0) 编辑
摘要:对于一个矩阵而言,若数值为零的元素远远多于非零元素的个数,且非零元素分布没有规律时,这样的矩阵被称作稀疏矩阵;与之相反,若非零元素数目占据绝大多数时,这样的矩阵被称作稠密矩阵。 稀疏矩阵在工程应用中经常被使用,尤其是在通信编码和机器学习中。若编码矩阵或特征表达矩阵是稀疏矩阵时,其计算速度会大大提升。 阅读全文
posted @ 2019-10-31 09:43 Jamest 阅读(7050) 评论(0) 推荐(3) 编辑
摘要:item2vec将用户的行为序列转化成item组成的句子,模仿word2vec训练word embedding将item embedding。基本思想是把原来高维稀疏的表示方式(one_hot)映射到低维稠密的向量空间中,这样我们就可以用这个低维向量来表示该项目(电影),进而通过计算两个低维向量之间 阅读全文
posted @ 2019-10-30 17:37 Jamest 阅读(5493) 评论(3) 推荐(0) 编辑
摘要:ContentBased算法的思想非常简单:根据用户过去喜欢的物品(本文统称为 item),为用户推荐和他过去喜欢的物品相似的物品。而关键就在于这里的物品相似性的度量,这才是算法运用过程中的核心。 CB的过程一般包括以下三步: 物品表示(Item Representation):为每个item抽取出 阅读全文
posted @ 2019-10-30 11:43 Jamest 阅读(1117) 评论(0) 推荐(0) 编辑
摘要:将用户行为表示为二分图模型。假设给用户u进行个性化推荐,要计算所有节点相对于用户u的相关度,则PersonalRank从用户u对应的节点开始游走,每到一个节点都以1d的概率停止游走并从u重新开始,或者以d的概率继续游走,从当前节点指向的节点中按照均匀分布随机选择一个节点往下 阅读全文
posted @ 2019-10-30 09:44 Jamest 阅读(2118) 评论(7) 推荐(0) 编辑
摘要:LFM算法核心思想是通过隐含特征(latent factor)联系用户兴趣和物品,找出潜在的主题和分类。LFM(latent factor model)通过如下公式计算用户u对物品i的兴趣: $$ Preference(u,i) = r_{ui} = {p_u}^T q_i = \sum_{f=1} 阅读全文
posted @ 2019-10-29 17:32 Jamest 阅读(1528) 评论(0) 推荐(0) 编辑
摘要:协同过滤推荐(Collaborative Filtering Recommendation)主要包括基于用户的协同过滤算法与基于物品的协同过滤算法。 下面,以movielens数据集为例,分别实践这两种算法。 movielens数据集包含四列,【用户ID|电影ID|打分|时间戳】,根据用户的历史评分 阅读全文
posted @ 2019-10-29 15:38 Jamest 阅读(2334) 评论(0) 推荐(0) 编辑
摘要:目前,推荐系统广泛应用于电商、信息流和地图。工业级推荐系统架构一般以召回+推荐作为大框架。其中,以算法区分,如下图所示。 离线/线上指标如下图所示: 个性化召回算法是根据用户的属性行为上下文等信息从物品全集中选取其感兴趣的物品作为候选集,召回决定了最终推荐结果的天花板。 个性化召回分为以下几类: 基 阅读全文
posted @ 2019-10-29 14:37 Jamest 阅读(1340) 评论(1) 推荐(0) 编辑
摘要:论文:Deep Neural Networks for YouTube Recommendations 发表时间:2016 发表作者:(Google)Paul Covington, Jay Adams, Emre Sargin 发表刊物/会议:RecSys 论文链接: "论文链接" 这篇论文是goo 阅读全文
posted @ 2019-10-25 19:16 Jamest 阅读(1195) 评论(0) 推荐(0) 编辑
摘要:背包问题指这样一类问题,题意往往可以抽象成:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。 就ACM或者其它算法竞赛而言,背包问题可以分为8种类型,其中最基础的是0/1背包问题。作为动态规划的典型问题,其状态转移方程往往需要认真理解并能自行推出 阅读全文
posted @ 2019-10-22 10:37 Jamest 阅读(2748) 评论(0) 推荐(0) 编辑
摘要:论文:Deep Residual Learning for Image Recognition 发表时间:2015 发表作者:(Microsoft Research)He Kaiming, Ren Shaoqing, Sun Jian 论文链接: "论文链接" ResNet Resnet差不多是当前 阅读全文
posted @ 2019-10-21 13:53 Jamest 阅读(575) 评论(0) 推荐(0) 编辑
摘要:论文:推荐系统评价指标综述 发表时间:2012 发表作者:朱郁筱,吕琳媛 论文链接: "论文链接" 本文对现有的推荐系统评价指标进行了系统的回顾,总结了推荐系统评价指标的最新研究进展,从准确度、 多样性、新颖性及覆盖率等方面进行多角度阐述,并对各自的优缺点以及适用环境进行了深入的分析。特别讨论了基于 阅读全文
posted @ 2019-10-21 13:45 Jamest 阅读(2028) 评论(0) 推荐(0) 编辑
摘要:AUC(Area under curve)是机器学习常用的二分类评测手段,直接含义是ROC曲线下的面积。另一种解释是:随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。 在有M个正样本,N个负样本的数据集里,利用公式求 阅读全文
posted @ 2019-10-21 10:14 Jamest 阅读(4563) 评论(0) 推荐(0) 编辑
摘要:一个售货员必须访问n个城市,这n个城市是一个完全图,售货员需要恰好访问所有城市的一次,并且回到最终的城市。 城市与城市之间有一个旅行费用,售货员希望旅行费用之和最少。 旅行商问题是np问题,一般可以使用回溯法或者动态规划解决。 参考: "漫画:什么是旅行商问题?" "旅行商问题动态规划解法(pyth 阅读全文
posted @ 2019-10-21 10:05 Jamest 阅读(2603) 评论(0) 推荐(0) 编辑
摘要:在查找刷题攻略的时候,也遇到了一些比较经典、有趣的题目,记录在这里,不断更新。难度保持在LeetCode中的Medium级别左右。 1.求一个数组中右边第一个比他大的数 单调栈专用于解决此类问题。其中有一个trick是,查找比他大的数用单调递减栈,查找比他小的数用单调递增栈。 2.牛的视野 变形的单 阅读全文
posted @ 2019-10-21 09:04 Jamest 阅读(679) 评论(0) 推荐(0) 编辑
摘要:论文:个性化推荐系统的研究进展 发表时间:2009 发表作者:刘建国,周涛,汪秉宏 论文链接: "论文链接" 本文发表在2009,对经典个性化推荐算法做了基本的介绍,是非常好的一篇中文推荐系统方面的文章。 个性化推荐系统通过建立用户与信息产品之间的二元关系 , 利用已有的选择过程或相似性关系挖掘每个 阅读全文
posted @ 2019-10-20 19:25 Jamest 阅读(884) 评论(0) 推荐(0) 编辑
摘要:现实中碰到很多需要随机抽样的问题,这也是算法工程师面试中常见的题型,特意记录在这里。下面以几个例题为例,展开随机抽样问题的解决方案。 [leetcode]470.Implement Rand10() Using Rand7() 已提供一个Rand7()的API可以随机生成1到7的数字,使用Rand7 阅读全文
posted @ 2019-10-20 09:13 Jamest 阅读(546) 评论(0) 推荐(0) 编辑
摘要:在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深度优先搜索(DFS)。深度优先搜索,顾名思义即为一条道走到黑的搜索策略,行不通退回来换另外一条道再走到黑,依次直到搜索完成。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只 阅读全文
posted @ 2019-10-19 11:19 Jamest 阅读(216) 评论(0) 推荐(0) 编辑
摘要:树作为一种基本的数据结构,也是算法题常考的题型。基本的如树的遍历,树的高度,树的变种数据结构等。 树的遍历 树的遍历有四种:前序,中序,后序,层次。都需要掌握其递归与非递归方式。 [leetcode]94.Binary Tree Inorder Traversal 中序遍历 [leetcode]10 阅读全文
posted @ 2019-10-19 10:50 Jamest 阅读(205) 评论(0) 推荐(0) 编辑
摘要:动态规划法(dynamic programming)通常用于 求解最优化问题 (optimization problem),它适用于那些子问题相互重叠的情况,即子问题不独立,不同的子问题具有公共的子子问题(就是子问题的子问题)。这显然与分治法是不同的,分治法将问题划分为不重叠的子问题,然后分别求解这 阅读全文
posted @ 2019-10-18 13:03 Jamest 阅读(415) 评论(0) 推荐(0) 编辑
摘要:链表与栈也是高频出现的面试题,这里将他们放在一篇讨论。 链表 链表最关键的在于边界条件的处理,这个只有在不断训练中熟悉与掌握。 [leetcode]24.Swap Nodes in Pairs 分别可以用递归和迭代来实现。对于迭代实现,还是需要建立dummy节点。要对头结点进行操作时,考虑创建哑节点 阅读全文
posted @ 2019-10-17 21:37 Jamest 阅读(629) 评论(0) 推荐(0) 编辑
摘要:为理解下面的知识需要先区分好下面几个概念: 总体均值:u 总体标准差:σ 样本均值:u 样本标准差:σ 样本中符合条件A的占比:p 是样本大小:n 总体大小:N 抽样 数据分析中,虽然数据越多越齐越好,可是受限于各类因素的制约,我们并不能获取全部的数据。比如Exce 阅读全文
posted @ 2019-10-17 20:54 Jamest 阅读(2826) 评论(0) 推荐(0) 编辑
摘要:图卷积网络Graph Convolutional Nueral Network,简称GCN,最近两年大热,取得不少进展。不得不专门为GCN开一个新篇章,表示其重要程度。本文结合大量参考文献,从理论到实践,从由来到数学推导,讲述GCN的发展和应用。 综述 在扎进GCN的汪洋大海前,我们先搞清楚GCN是 阅读全文
posted @ 2019-10-15 16:08 Jamest 阅读(29704) 评论(0) 推荐(1) 编辑
摘要:字符串类型的题目一般与哈希,栈,双指针,DP紧密相关。理解了这几个知识与结构,字符串类型的题目一般也可以迎刃而解。另外,针对字符串特有的KMP算法以及Manacher算法的变形题也是常见题,需要掌握。 哈希 [leetcode]318. Maximum Product of Word Lengths 阅读全文
posted @ 2019-10-15 15:24 Jamest 阅读(197) 评论(0) 推荐(0) 编辑
摘要:数组问题向来是笔试与面试中最长出现的题目。其题型多变,涉及知识面广,从基础到高级数据结构均可涉及,这里总结下刷题常见的以及易错的题型。 常见基础题型 二分 对于数组最常见和基础的算法就是二分了,参考 "Rotated Sorted Array问题" ,以旋转数组为例,通过对这类题型的了解,能够很好掌 阅读全文
posted @ 2019-10-13 12:19 Jamest 阅读(315) 评论(0) 推荐(0) 编辑
摘要:这里主要总结了常用的排序算法以及python实现。 1.冒泡排序 依次比较相邻两元素,若前一元素大于后一元素则交换之,直至最后一个元素即为最大;然后重新从首元素开始重复同样的操作,直至倒数第二个元素即为次大元素;依次类推。如同水中的气泡,依次将最大或最小元素气泡浮出水面。 时间复杂度: $O(N^2 阅读全文
posted @ 2019-10-05 15:23 Jamest 阅读(557) 评论(0) 推荐(0) 编辑
摘要:这是Leetcode第307题,给一个数组,然后求指定下标之间的数之和,已知数组中的值可以更新,并且更新和求和操作会被频繁调用。 这是一道线段树的基础题,线段树是一种二叉搜索树。它将一段区间划分为若干单位区间,每一个节点都储存着一个区间。它功能强大,支持区间求和,区间最大值,区间修改,单点修改等操作 阅读全文
posted @ 2019-10-05 13:00 Jamest 阅读(116) 评论(0) 推荐(0) 编辑
摘要:Droupout与Batch Normalization都是深度学习常用且基础的训练技巧了。本文将从理论和实践两个角度分布其特点和细节。 Droupout 2012年,Hinton在其论文中提出Dropout。当一个复杂的前馈神经网络被训练在小的数据集时,容易造成过拟合。为了防止过拟合,可以通过阻止 阅读全文
posted @ 2019-10-04 23:02 Jamest 阅读(4201) 评论(0) 推荐(0) 编辑
摘要:Graph Embedding是推荐系统、计算广告领域最近非常流行的做法,是从word2vec等一路发展而来的Embedding技术的最新延伸;并且已经有很多大厂将Graph Embedding应用于实践后取得了非常不错的线上效果。 word2vec和由其衍生出的item2vec是embedding 阅读全文
posted @ 2019-10-04 20:24 Jamest 阅读(6013) 评论(0) 推荐(2) 编辑
摘要:这是Leetcode第287题,给定一个包含n + 1个整数的数组,其中每一个整数均介于[1, n]之间,证明其中至少有一个重复元素存在。假设只有一个数字出现重复,找出这个重复的数字。 这道题可以用计数排序的思路求解,但更为巧妙的方法是使用 快慢指针 求解。 基本思想是将数组抽象为一条线和一个圆环, 阅读全文
posted @ 2019-10-04 16:11 Jamest 阅读(203) 评论(0) 推荐(0) 编辑
摘要:Word2vec 本质上是一种降维操作——把词语从 one hot encoder 形式的表示降维到 Word2vec 形式的表示,即 Distributed Representation 。也就是,通过Embedding把原先词所在空间映射到一个新的空间中去,使得语义上相似的单词在该空间内距离相近 阅读全文
posted @ 2019-10-04 10:51 Jamest 阅读(844) 评论(0) 推荐(0) 编辑
摘要:论文:word2vec Parameter Learning Explained 发表时间:2016 发表作者:Xin Rong 论文链接: "论文链接" 为了揭开Word2vec的神秘面纱,不得不重新整理复习了Word2vec的相关资料。 Xin Rong 的这篇英文paper是更多人首推的 Wo 阅读全文
posted @ 2019-10-03 17:17 Jamest 阅读(1305) 评论(0) 推荐(1) 编辑
摘要:KMeans算法是一种无监督学习,它会将相似的对象归到同一类中。 其基本思想是: 1.随机计算k个类中心作为起始点。 2. 将数据点分配到理其最近的类中心。 3.移动类中心。 4.重复2,3直至类中心不再改变或者达到限定迭代次数。 具体的实现如下: 阅读全文
posted @ 2019-10-02 19:21 Jamest 阅读(1793) 评论(0) 推荐(0) 编辑
摘要:这是Leetcode第220题,给定一个整数数组,问是否存在两个数差距最多为t,两数的间隔最大为k。 很明显,这里需要用到一个大小为K的窗口,每次判断窗口内是否存在每个数差值满足$ bool: n=len(nums) if t==0 and n==len(set(nums)): retu 阅读全文
posted @ 2019-10-02 14:50 Jamest 阅读(141) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示