时间计算

从原理到落地,七大维度读懂协同过滤推荐算法

感情迁移 提交于 2020-02-04 11:16:54
转载 AI科技大本营 最后发布于2019-08-09 19:52:18 阅读数 195 收藏 展开 作者丨gongyouliu 来源 | 大数据与人工智能 导语:本文会从协同过滤思想简介、协同过滤算法原理介绍、离线协同过滤算法的工程实现、近实时协同过滤算法的工程实现、协同过滤算法应用场景、协同过滤算法的优缺点、协同过滤算法落地需要关注的几个问题等7个方面来讲述。希望读者读完本文,可以很好地理解协同过滤的思路、算法原理、工程实现方案,并且具备基于本文的思路自己独立实现一个在真实业务场景中可用的协同过滤推荐系统的能力。 作者在《 推荐系统产品与算法概述 》这篇文章中简单介绍了协同过滤算法。协同过滤算法是在整个推荐系统发展史上比较出名的算法,具备举足轻重的地位,甚至在当今还在大量使用。本篇文章作者会详细讲解协同过滤推荐算法的方方面面,这里所讲的也是作者基于多年推荐系统研究及工程实践经验的基础上总结而成,希望对大家学习协同过滤推荐算法有所帮助,提供一些借鉴。在正式讲解之前,先做一个简单定义。本文用“ 操作过” 这个词来表示用户对标的物的各种操作行为,包括浏览、点击、播放、收藏、评论、点赞、转发、评分等等。 一、协同过滤思想简介 协同过滤,从字面上理解,包括协同和过滤两个操作。所谓协同就是利用群体的行为来做决策(推荐),生物上有协同进化的说法,通过协同的作用,让群体逐步进化到更佳的状态

【深度学习基础】从零开始的炼丹生活07——深度模型中的优化

喜夏-厌秋 提交于 2020-02-04 07:09:35
往期回顾: 04——从传统机器学习走向深度学习 05——深度前馈网络、神经网络概述 06——深度学习中的正则化 介绍了神经网络的基本构件和正则化策略之后,学习一下深度模型中的优化。先说一说传统的纯优化与机器学习中的优化的异同,再介绍一下神经网络中优化的挑战,最后说说基本的优化算法。(参考《深度学习》第8章) 一、机器学习中的优化 传统的优化方法是纯优化最小化目标 J 本身,而机器学习的优化是间接作用的。在机器学习问题中,我们关注某些性能度量 P ,其定义于测试集上并且是不可解的。因此机器学习希望通过降低代价函数 J(θ)来间接提高 P 。 1. 经验风险最小化 机器学习算法的目标是降低期望泛化误差 J ∗ ( θ ) = E ( x , y ) ∼ p d a t a L ( f ( x ; θ ) , y ) J^*(\theta)=\mathbb E_{(\bold {x,y})\sim p_{data}}L(f(x;\theta),y) J ∗ ( θ ) = E ( x , y ) ∼ p d a t a ​ ​ L ( f ( x ; θ ) , y ) 这被称为 风险 。此时数据取自真实的潜在分布,然而,我们遇到的问题通常并不清楚真实分布,只知道训练集中的样本。 我们将机器学习中的优化转换回一个优化问题的最简单方法就是最小化训练集上的期望损失,以训练集上的经验分布 p

《Sequence Models》课堂笔记

拜拜、爱过 提交于 2020-01-29 16:37:01
Lesson 5 Sequence Models 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第五门课程的课程笔记。 参考了其他人的笔记继续归纳的。 符号定义 假如我们想要建立一个能够自动识别句中人名地名等位置的序列模型,也就是一个命名实体识别问题,这常用于搜索引擎。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。 我们输入语句 "Harry Potter and Herminoe Granger invented a new spell." 作为输入数据 \(x\) ,我们想要这个序列模型输出 \(y\) ,使得输入的每个单词都对应一个输出值,同时这个 \(y\) 能够表明输入的单词是否是人名的一部分。技术上来说,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。 以简单的输出形式为例。这个输入数据是 9 个单词组成的序列,所以最终我们会有 9 个特征集合来表示这 9 个单词,并按序列中的位置进行索引, \(x^{<1>},x^{<2>}\) 直到 \(x^{<9>}\) 来索引不同的位置。 输出数据也是一样,用 \(y^{<1>},y^{<2>}\) 到 \(y^{<9>}\) 来表示输出数据。同时使用 \(T_x\) 来表示输入序列的长度,

网络知识入门,深入了解ACK控制位(五)

左心房为你撑大大i 提交于 2020-01-27 05:40:55
上一篇文章讲了协议栈内部的组成,以及客户端与服务器建立连接时协议栈是如何工作的,本章将具体讲一下TCP控制信息里的控制位--ACK。 【网络知识入门,探索一次网页请求的旅程(一)】 https://blog.csdn.net/ck784101777/article/details/103741398 【网络知识入门,探讨DNS服务器在网页请求中的作用(二)】 https://blog.csdn.net/ck784101777/article/details/103741398 【网络知识入门,何为协议栈(三)】https://blog.csdn.net/ck784101777/article/details/103746921 【网络知识入门,深入探索协议栈(四)】 https://blog.csdn.net/ck784101777/article/details/103761880 一、使用ACK确认网络包已经收到 1.数据包的序号和ack序列号 到这里 , 网络包已经装好数据并发往服务器了 , 但数据发送操作还没有结束。 TCP 具备确认对方是否成功收到网络包 , 以及当对方没收到时进行重发的功能, 因此在发送网络包之后 , 接下来还需要进行确认操作 。 我们先来看一下确认的原理(下图 )。 首先,TCP 模块在拆分数据时,会先算好每一块数据相当于从头开始的第几个字节

如何造一个『为移动端而生』的日历

谁说我不能喝 提交于 2020-01-21 16:00:51
之前写了一篇 Calendar -『为移动端而生』的自定义日历 ,一直有童鞋对这个插件的手势处理存在一些问题,所以想写篇文章,来说说它的成长史~ 在阅读本文之前,确保你有稍微看过 calendar 的效果 喔~ 点击查看github, 查看calendar源码 也可以在 NPM上搜索 mob-calendar 找到它。 一、 确认需求 想做一个日历最主要的原因,当然还是因为在开发过程中频繁的遇到。而且对日历的需求又是奇葩到不行,市面上的插件都满足不了我们产品的需求。所以,我不得不动手自己造。 这段话,好像在造 上一个插件 - 级联选择器 的时候也说过 大家就当无事发生过(⁎⁍̴̛ᴗ⁍̴̛⁎) 首要问题依然是处理需求: 第1个问题:『日历的出现场景有哪些特点?』 用户不确定自己要选择的时间点或时间范围,需要一些基本的时间参照单位,比如“ 下星期一 ”、“ 下个周末 ”。 用户需要查看某个时间区间,之后再有选择性的选取时间点或时间范围,比如“ 尽可能避开周末的20天翘班请假计划 ”。 用户需要查看某个时间区间的行为记录,比如“ 查看过去几周的打卡情况 ” 当出现以上问题的时候,日历的时间定位优势就显示出来了。 第2个问题:『日历会有哪些奇葩需求?』 日历存在着点击事件,点击事件是 跳转事件 还是 高亮事件 无法预知。 日历存在着选取操作,选取的结果是 时间点 还是 时间范围 无法预知。

simulink之S函数

此生再无相见时 提交于 2020-01-21 01:02:51
s函数是system Function的简称,用它来写自己的simulink模块。(够简单吧,^_^,详细的概念介绍大伙看帮助吧)可以用matlab、C、C++、Fortran、Ada等语言来写,这儿我只介绍怎样用matlab语言来写吧(主要是它比较简单) 先讲讲为什么要用s函数,我觉得用s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c或c++等语言写的s函数还可以实现对硬件端口的操作,还可以操作windows API等的 先介绍一下simulink的仿真过程(以便理解s函数),simulink的仿真有两个阶段:一个为初始化,这个阶段主要是设置一些参数,像系统的输入输出个数、状态初值、采样时间等;第二个阶段就是运行阶段,这个阶段里要进行计算输出、更新离散状态、计算连续状态等等,这个阶段需要反复运行,直至结束。 在matlab的workspace里打edit sfuntmpl(这是matlab自己提供的s函数模板),我们看它来具体分析s函数的结构。 它的第一行是这样的:function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag) 先讲输入与输出变量的含义:t是采样时间,x是状态变量,u是输入(是做成simulink模块的输入),flag是仿真过程中的状态标志(以它来判断当前是初始化还是运行等)

一步一步教你制作销售业绩分析报告

爷,独闯天下 提交于 2020-01-19 20:12:38
在入门案例动态销售报告中已经带领大家入门制作PowerBI可视化报告。本文主题销售业绩分析将继续针对入门案例进行进一步优化,让大家更改的了解和掌握使用PowerBI的功能。优化内容主要有两个:   1、数据分析层面:在可视化报告中单独的一个销售业绩指标是没有意义的,只有通过对比指标才能知道销售业绩指标的好坏。对比方法主要通过同指标不同时间的对比,通过PowerBI智能时间函数,可以更加方便的计算累计销售额(YTD),同比(与去年同期对比),环比(与上月对比)等指标。   2、图表层面:使用KPI图表可以更加直观的显示业绩完成状况。通过对同比,环比格式设置可以进行分阶段显示数据。   本文的数据源主要包含有销售明细数据,销售目标数据,以及日期数据源。   销售明细数据   销售目标数据   日期数据   一、创建日期表   日期表作为时间智能函数的基础表,PowerBI可以自动未具有日期或日期时间类型的字段自动创建一个隐藏的日期表。动手操作PowerBI的小伙伴们应该都已经发现了这个功能。软件自带的日期表开启方式如下图:(打开路径:文件=》选项和设置=》选项=》数据加载,默认已勾选自动日期/时间)   上图中的自动日期表并不能够很好的满足不同的业务场景需求,在模型复杂的情况下也会导致文件体积偏大,我们可以通过手动创建日期表。接下来我会教大家创建日期表的三种方式。   1

论文笔记 - 《Deep Learning》(Yann LeCun Yoshua Bengio & Geoffrey Hinton)经典

别等时光非礼了梦想. 提交于 2020-01-19 15:42:10
论文: LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. “Deep learning.” Nature 521.7553 (2015): 436-444. [pdf] (Three Giants’ Survey) 监督学习 机器学习最常见的形式,不管是否深入都是监督学习。 我们计算一个目标函数,它度量输出分数与期望的分数模式之间的误差(距离)。然后,机器修改其内部可调参数,以减少这种误差。这些可调参数通常称为权重,它们是实数,可以看做是定义机器输入输出函数的按钮。在一个典型的深度学习系统中,可能有数亿个这样的可调权重,以及数亿个用于训练机器的带标签的例子。 在实践中,大多数从业者使用一种称为随机梯度下降(SGD)的程序。这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,并相应地调整权重。从训练集到目标函数的平均值停止下降,对许多小样本重复这个过程,它们之所以被称为随机,是因为每个小样本集都给出了所有样本平均梯度的这里会有的噪声的估计。 传统方法是手工设计良好的特征提取器,这需要大量的工程技术和专业领域知识。但是如果通过使用通过学习过程而得到的良好的特征,那么这些都是可以避免的了。这就是深度学习的关键优势。 深度学习的体系结构是简单模块的多层栈,所有(或大部分)模块的目标是学习,还有许多计算机非线性输入输出的映射

从文件中读取数据,计算时间差并记录到excel表格中

陌路散爱 提交于 2020-01-17 03:19:26
接到一个任务,将类似如下图中的十万条数据: 格式: 本地接收时间 [编号] Recived on [hello]: ‘发送的消息|发送时间|test’ 要求: 计算出每两条的时间差,接收时间与发送时间的时间差 思路: 创建excel—>读取文件—>取出接收时间和发送时间—>进行比较 代码实现: package main import ( "bufio" "fmt" "github.com/360EntSecGroup-Skylar/excelize" "io" "os" "strings" "time" ) func main ( ) { //创建一个excel表格 xlsx := excelize . NewFile ( ) index := xlsx . NewSheet ( "Sheet1" ) cate := map [ string ] string { "A1" : "编号" , "B1" : "发送时间" , "C1" : "接收时间" , "D1" : "接收时间每两次时间差" , "E1" : "发送和接收的时间差" } for k , v := range cate { xlsx . SetCellValue ( "Sheet1" , k , v ) } sendTime , n := send ( xlsx ) UnixTime1 := sub1 ( xlsx

工业界通用推荐系统架构及NetFlix经典架构解析

最后都变了- 提交于 2020-01-16 05:15:40
2个关键因素决定机器学习模型预测效果好坏 在这个页面里面,它相当于是给大家披露了一种比较标准的,算是行业的解决方案,对于不同的公司,每家公司业务是不一样的,但是每家公司背后的技术框架、基本思想是统一的, OK你可以认为这个是一个每家公司都要去遵守的一个就是统一的一个技术思路在,只不过是每家公司它可能给你看到技术方案的长的不一样,但是它的方案可能也就是呈现形式不一样,但是如果我们一旦要抓住背后的精髓,比如这张图我们就可以觉得每家公司其实技术都是统一的,都是通用的,对吧?“蜡炬教育AI学院” 比如在这里面我们把整个的方案分成三个层次,对吧? 从下往上就分别是这是数据层更偏底层对吧?底层大家都清楚,底层一般都是做什么的?都是做一些存储的,对不对?底层存储底层就是更切更贴近于你的磁盘,对吧?我们要做数据挖掘,首先底层要存数据,他要存什么数据呢? 存业务数据和日志数据,那是业务数据,什么叫业务数据?什么叫日志数据?业务数据就是用户的数据,比如说用户的性别、年龄、兴趣,还有一些什么家庭住址,或者是一些用户是不是有没有开会员,然后他的钱包里面有没有钱,甚至他有没有收藏一些信息等等, 这是用户数据,商品数据相当于是物品的原数据,比如说你在听一首歌或者是看一段视频,这个视频背后就是一个商品,你可以认为把它当成一个商品或者物品,比如说我们拿视频也好,物品数据包含什么?包含视频的自身的标题,演员。