item2vec将用户的行为序列转化成item组成的句子,模仿word2vec训练word embedding将item embedding.基本思想是把原来高维稀疏的表示方式(one_hot)映射到低维稠密的向量空间中,这样我们就可以用这个低维向量来表示该项目(电影),进而通过计算两个低维向量之间的相似度来衡量两个项目之间的相似性. embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等.这个embedding向量的性质是能使距离相近的向量对应的物体有…
wide&deep在个性化排序算法中是影响力比较大的工作了.wide部分是手动特征交叉(负责memorization),deep部分利用mlp来实现高阶特征交叉(负责generalization),wide部分和deep部分joint train. Deep&Cross Network模型我们下面将简称DCN模型,对比Wide & Deep ,不需要特征工程来获得高阶的交叉特征.对比 FM 系列的模型,DCN 拥有更高的计算效率并且能够提取到更高阶的交叉特征. 一个DCN模型从嵌入…
协同过滤推荐(Collaborative Filtering Recommendation)主要包括基于用户的协同过滤算法与基于物品的协同过滤算法. 下面,以movielens数据集为例,分别实践这两种算法. movielens数据集包含四列,[用户ID|电影ID|打分|时间戳],根据用户的历史评分向用户召回电影候选集. UserCF 基于用户的协同过滤算法主要包括两个步骤. (1) 找到和目标用户兴趣相似的用户集合. (2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户…
将用户行为表示为二分图模型.假设给用户\(u\)进行个性化推荐,要计算所有节点相对于用户\(u\)的相关度,则PersonalRank从用户\(u\)对应的节点开始游走,每到一个节点都以\(1-d\)的概率停止游走并从\(u\)重新开始,或者以\(d\)的概率继续游走,从当前节点指向的节点中按照均匀分布随机选择一个节点往下游走.这样经过很多轮游走之后,每个顶点被访问到的概率也会收敛趋于稳定,这个时候我们就可以用概率来进行排名了. 在执行算法之前,我们需要初始化每个节点的初始概率值.如果我们对用户…
ContentBased算法的思想非常简单:根据用户过去喜欢的物品(本文统称为 item),为用户推荐和他过去喜欢的物品相似的物品.而关键就在于这里的物品相似性的度量,这才是算法运用过程中的核心. CB的过程一般包括以下三步: 物品表示(Item Representation):为每个item抽取出一些特征(也就是item的content了)来表示此item: 特征学习(Profile Learning):利用一个用户过去喜欢(及不喜欢)的item的特征数据,来学习出此用户的喜好特征(profi…
LFM算法核心思想是通过隐含特征(latent factor)联系用户兴趣和物品,找出潜在的主题和分类.LFM(latent factor model)通过如下公式计算用户u对物品i的兴趣: \[ Preference(u,i) = r_{ui} = {p_u}^T q_i = \sum_{f=1}^F p_{u,k} q_{i,k} \] 定义\(P\)矩阵是user-class矩阵,矩阵值\(P_{ij}\)表示的是user \(i\)对class \(j\)的兴趣度:\(Q\)矩阵式cla…
FM通过对于每一位特征的隐变量内积来提取特征组合,最后的结果也不错,虽然理论上FM可以对高阶特征组合进行建模,但实际上因为计算复杂度原因,一般都只用到了二阶特征组合.对于高阶特征组合来说,我们很自然想到多层神经网络DNN. DeepFM目的是同时学习低阶和高阶的特征交叉,主要由FM和DNN两部分组成,底部共享同样的输入.模型可以表示为: \[ \hat{y} = sigmoid(y_{FM}+y_{DNN}) \]…
本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题.这个方法出自于Facebook 2014年的论文 Practical Lessons from Predicting Clicks on Ads at Facebook . GBDT+LR 使用最广泛的场景是CTR点击率预估,即预测当给用户推送的广告会不会被用户点击. 点击率预估模型涉及的训练样本一般是上亿级别,样本量大,模型常采用速度较快的LR.但LR是线性模型,学习能力有限,此时特征工程尤其重要.现…
场感知分解机(Field-aware Factorization Machine ,简称FFM)在FM的基础上进一步改进,在模型中引入类别的概念,即field.将同一个field的特征单独进行one-hot,因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅与特征相关,也与field相关.假设样本的n个特征属于f个field,那么FFM的二次项有nf个隐向量.而在FM模型中,每一维特征的隐向量只有一个.FM可以看做FFM的特例,把所有特征都归属到一个fi…
因子分解机(Factorization Machine,简称FM)算法用于解决大规模稀疏数据下的特征组合问题.FM可以看做带特征交叉的LR. 理论部分可参考FM系列,通过将FM的二次项化简,其复杂度可优化到\(O(kn)\).即: \[ \hat y(x) = w_0+\sum_{i=1}^n w_i x_i +\sum_{i=1}^n \sum_{j=i+1}^n ⟨vi,vj⟩ x_i x_j \\ =w_0+\sum_{i=1}^n w_i x_i + \frac{1}{2} \sum_{…
新版的Neo4j图形算法库(algo)中增加了个性化Pagerank的支持,我一直想找个有意思的应用来验证一下此算法效果.最近我看Peter Lofgren的一篇论文<高效个性化Pagerank算法>(Efficient Algorithms for Personalized PageRank)(https://arxiv.org/pdf/1512.04633.pdf),在论文中,有一个比较有趣的示例: 我们想在论文引用网络中进行个性化搜索的尝试,但是要怎样设置个性化PageRank的参数,才…
作者:个推高级数据工程师 晓骏 众所周知,金融是数据化程度最高的行业之一,也是人工智能和大数据技术重要的应用领域.随着大数据收集.存储.分析和模型技术日益成熟,大数据技术逐渐应用到金融风控的各个环节.个推作为专业的数据智能服务商,拥有海量数据资源,在智慧金融领域也推出了相应的数据解决方案-个真,为金融客户提供智能反欺诈.多维信贷风险评估和高意愿用户智能筛选等全流程的数据服务,助力各金融机构全面提升风控能力.本文将围绕大数据风控,结合个推实践,介绍金融风控机器学习的基本流程.算法实践和产品化建设等…
参考链接: https://github.com/HIT-SCIR/ltp/blob/master/doc/install.rst http://www.xfyun.cn/index.php/services/ltp/detail?&app_id=NTZmYzg5ZWE= http://www.ltp-cloud.com/document/#api_rest_format_json 其他分词算法参考链接: NLPIR:http://www.nlpir.org/    http://www.dat…
机器学习算法实践:Platt SMO 和遗传算法优化 SVM 之前实现了简单的SMO算法来优化SVM的对偶问题,其中在选取α的时候使用的是两重循环通过完全随机的方式选取,具体的实现参考<机器学习算法实践-SVM中的SMO算法>.(http://pytlab.github.io/2017/09/01/机器学习算法实践-SVM中的SMO算法/) 本文在之前简化版SMO算法的基础上实现了使用启发式选取α对的方式的Platt SMO算法来优化SVM.另外由于最近自己也实现了一个遗传算法框架GAFT,便…
java排序算法(五):快速排序 快速排序是一个速度非常快的交换排序算法,它的基本思路很简单,从待排的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的元素放到左边.所有比它大的元素放到右边.经过这样一趟下来,该序列形成左右两个子序列,左边序列中的数据元素的值都比分界值小,右边序列中数据元素的值都比分界值大.接下来对左右两个序列进行递归排序.对两个子序列重新选择中心元素并依此规则调整.直到每个元素子表的元素只剩下一个元素则排序成功 思路 1.定义一个变量 i变量从左边第一个索引开始,…
在“跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题”一文中介绍了舞蹈链(Dancing Links)算法求解精确覆盖问题. 本文介绍该算法的实际运用,利用舞蹈链(Dancing Links)算法求解数独 在前文中可知,舞蹈链(Dancing Links)算法在求解精确覆盖问题时效率惊人. 那利用舞蹈链(Dancing Links)算法求解数独问题,实际上就是下面一个流程 1.把数独问题转换为精确覆盖问题 2.设计出数据矩阵 3.用舞蹈链(Dancing Links)算法…
20145203盖泽双<网络对抗技术>实践五:MSF基础应用 1.实践目标 掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路.下面是我自己做的时候用的四个套路. (1)一个针对Windows XP系统的主动渗透攻击. (2)一个针对Windows XP系统中IE7的被动渗透攻击. (3)一个针对Windows XP系统中Adobe Reader v9的被动渗透攻击. (4)成功应用一个辅助模块. 2.实验后回答问题 (1)用自己的话解释什么是exploit,payload,…
Linux及安全实践五——字符集编码 一.ASCII码 在表中查找出英文字母LXQ相对应的十六进制数值为: 4c 58 51 在终端中输入命令:vim test1.txt 在vim页面输入命令:%!xxd 输完之后使用命令:%!xxd -r保存后即可看到如下结果: 退出vim编辑器,在终端输入命令:cat test.txt可以查看到test.txt中的内容 二.gb2312编码 在编码表中查找出李雪琦相对应的十六进制数值为: c0ee d1a9 e7f9 在进行vim编辑的时候,首先将终端的编码…
支持向量机SVM算法实践 利用Python构建一个完整的SVM分类器,包含SVM分类器的训练和利用SVM分类器对未知数据的分类, 一.训练SVM模型 首先构建SVM模型相关的类 class SVM: def __init__(self, dataSet, labels, C, toler, kernel_option): self.train_x = dataSet # 训练特征 self.train_y = labels # 训练标签 self.C = C # 惩罚参数 self.toler…
Softmax Regression算法实践 有了上篇博客的理论知识,我们可以利用实现好的函数,来构建Softmax Regression分类器,在训练分类器的过程中,我们使用多分类数据作为训练数据:如图 1.利用训练数据对模型进行训练: 完整代码为: # -*- coding: UTF- -*- # date:// # User:WangHong import numpy as np def gradientAscent(feature_data,label_data,k,maxCycle,a…
 1.1.Logistics Regression算法实践 有了上篇博客的理论准备后,接下来,我们用以及完成的函数,构建Logistics Regression分类器.我们利用线性可分的数据作为训练样本来训练.在构建模型的过程中,主要有两个步骤:(1)利用训练样本训练模型,(2)利用训练好的模型对新样本进行预测. 1.1.1.利用训练样本训练Logistics Regression模型 训练模型的主函数: if __name__=="__main__": print("---…
前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾短信进行过滤,在最后对分类的错误率进行了计算. 与决策树分类和k近邻分类算法不同,贝叶斯分类主要借助概率论的知识来通过比较提供的数据属于每个类型的条件概率, 将他们分别计算出来然后预测具有最大条件概率的那个类别是最后的类别.当然样本越多我们统计的不同类 型的特征值分布就越准确,使用此分布进行预测则会更加准确.…
nodejs 实践:express 最佳实践(五) connect解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子来解决现实的问题. 知其然,并知其所以然这是程序员的天性.所以把常用的模块拿出来看看,看看高手怎么写的,学习其想法,让自己的技术能更近一步. 引言 express 是 nodejs 中最流行的 web 框架.express 中对 http 中的 request 和 respon…
出处:http://www.cnblogs.com/grenet/p/3163550.html 在“跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题”一文中介绍了舞蹈链(Dancing Links)算法求解精确覆盖问题. 本文介绍该算法的实际运用,利用舞蹈链(Dancing Links)算法求解数独 在前文中可知,舞蹈链(Dancing Links)算法在求解精确覆盖问题时效率惊人. 那利用舞蹈链(Dancing Links)算法求解数独问题,实际上就是下面一个流程 1.…
召回 & 召回算法 recall https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall?hl=zh-cn https://developers.google.cn/machine-learning/crash-course/classification/check-your-understanding-accuracy-precision-recall?hl=…
(一)图与网络的基本概念 一.无向图 含有的元素为顶点,弧和权重,但是没有方向 二.有向图 含有的元素为顶点,弧和权重,弧具有方向. 三.有限图.无限图 顶点和边有限就是有限图,否则就是无限图. 四.简单图 既没有环,也没有两条边连接同一对顶点的图 五.完全图.二分图 每一对不同的顶点都有一条边相连的简单图称为完全图. 六.子图 就是被包含的图 七.顶点的度 就是顶点连接了几条边. 性质:1.全部顶点的度相加为偶数 2. 任意一个图的奇顶点的个数为偶数. (二)图与网络的数据结构 一.邻接矩阵表…
概述 在federation v2多集群环境中,通过前面几篇文章的介绍,我们可以很容易的进行服务多集群部署,考虑到业务部署和容灾需要,我们通常需要调整服务在各个集群的流量分布.本文下面简单介绍如何在阿里云上进行多集群流量调度. 环境准备 参考容器服务kubernetes federation v2实践一:基于External-DNS的多集群Ingress DNS实践 进行两个联邦集群的join,完成External-DNS.FederatedDeployment.FederatedService…
KMP算法和BM算法 KMP是前缀匹配和BM后缀匹配的经典算法,看得出来前缀匹配和后缀匹配的区别就仅仅在于比较的顺序不同 前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从 左到右 后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右. 通过上一章显而易见BF算法也是属于前缀的算法,不过就非常霸蛮的逐个匹配的效率自然不用提了O(mn),网上蛋疼的KMP是讲解很多,基本都是走的高大上路线看的你也是一头雾水,我试图用自己的理解用最接地气的方式描述 KMP KMP也是一种优化版的…
这几天学习了无监督学习聚类算法Kmeans,这是聚类中非常简单的一个算法,它的算法思想与监督学习算法KNN(K近邻算法)的理论基础一样都是利用了节点之间的距离度量,不同之处在于KNN是利用了有标签的数据进行分类,而Kmeans则是将无标签的数据聚簇成为一类.接下来主要是我对<机器学习实战>算法示例的代码实现和理解. 首先叙述下算法项目<对地图上的俱乐部进行聚类>的要求:朋友Drew希望让我们带她去城里庆祝生日,由于其他一些朋友也会过来,所以需要提供一个大家都可行的计划,Drew给出…
Recursive division method        Mazes can be created with recursive division, an algorithm which works as follows: Begin with the maze's space with no walls. Call this a chamber. Divide the chamber with a randomly positioned wall (or multiple walls)…