推荐系统-Model Based协同过滤

个性化推荐

本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务。

推荐系统在日常的网络应用中无处不在,比如网上购物、网上买书、新闻app、社交网络、音乐网站、电影网站等等等等,有人的地方就有推荐。根据个人的喜好,相同喜好人群的习惯等信息进行个性化的内容推荐。比如打开新闻类的app,因为有了个性化的内容,每个人看到的新闻首页都是不一样的。

这当然是很有用的,在信息爆炸的今天,获取信息的途径和方式多种多样,人们花费时间最多的不再是去哪获取信息,而是要在众多的信息中寻找自己感兴趣的,这就是信息超载问题。为了解决这个问题,推荐系统应运而生。

协同过滤......

推荐系统-Python实战

这是一篇notebook,目的是介绍一些推荐系统常用的算法。

协同过滤

通过收集用户的喜好对用户感兴趣的东西做出自动预测,基于这样一个理论:如果一个用户A和另一个用户B对一系列物品有相同的行为或者喜好,那么对于一件新物品的行为,A与B做出的选择会比A与陌生人更加接近。

基于内容过滤

系统通过用户过去使用过的物品推荐和这些物品相似的物品,比如一些关键词描述、分类等特征

混合过滤

把协同过滤和基于内容过滤结合起来会比单独使用更有效果

数据集下载: https://www.kaggle.com/gspmoreira/articles-shari......

MySQL性能优化

慢查询

通过监控发现了一些慢查询日志如下:

时间上已经超出了期望,这些查询动作主要发生在模糊查询和分页查询的时候。

首先这个耗时比较长的为select *,整个表的数据大概在5000左右。

explain一下表:

explain SELECT * FROM `game_video` ORDER BY update_time DESC LIMIT 5000,10;

结果如下:

type=all,基本就是全表都查询了,以后数据多了将会是噩梦。

下面解释一下这几个字段的意思:

select_type

SIMPLE 最简单的select,其他的还有UNI......

HTTP的Body字段

Accept-Encoding

表示支持压缩编码格式

gzip 用于UNIX系统的文件压缩、流量比较大的时候可以节约一些流量

deflate 一种使用LZ77算法与哈夫曼编码的一个无损数据压缩无专利算法的压缩技术

HTTP压缩过程

首先客户端发送请求到服务器、Request携带Accept-Encoding

服务器接到Request后,生成数据,Content-type和Content-Length

服务器通过gzip进行编码、然后更改Content-Encoding为gzip,然后发给客户端

客户端接收数据,根据Content-En......

可靠的UDP的Golang实现源码解析

协议流程图

主要关键 UDP 输入 输出 逻辑时钟

要点

服务端需要保存一段时间发送历史

客户端需要保存已接收完整数据的进度,以及接收队列

如果接收完整数据进度与接收队列中间断了一截,需要主端像服务端请求重传

难点在进度更新、重传逻辑、封包协议

数据发送接收抽象为了数据层与UDP本身无关系,要使用UDP外层还得套一个发送队列和接收队列

定义数据结构

消息队列

recvQueue 接收队列

sendQueue 发送队列

sendHistory 发送历史-用作重传

消息队列元素

{byteBuffer, i......

Redis基础

应用场景

当做缓存,缓存未命中再访问MySQL,这样能降低读的延迟

原子计数

最新TopN数据

使用list中的LTRIM latest.comments 0 5000 这样永远只保存最近的5000个ID

带权值的排序

使用sorted set, 然后ZADD命令

过期时间

优先级的队列系统

数据类型

List

Set

Sorted set

Hash

自增原子

特点

主从同步

持久化

strings

struct sdshdr {

long len;

long free;

char buf[];

......

高性能MySQL

一、基础介绍

连接管理 每个客户端连接在fu服务器中拥有一个线程,这个连接的查询只会在单个线程执行。

锁机制 数据库有表锁、行锁两种粒度

事务

原子性

要么全部提交成功、要么全部失败回滚

一致性

数据库总是从一个一致性状态切换到另一个一致性状态,比如刚开始100块钱,最后还是100块钱。

隔离性

一个事务在最终提交前对其他事务是不可见的

持久性

一个事务提交成功,就会持久化到数据库。

隔离级别

未提交读

事务中的修改没有提交、对其他事务依然是可见的。事务可以读取未提交的数据,称为脏读

提交读(不可重复读)

......

Go基础语法

1. 编码风格1.1 gofmt

一般会自动规范代码风格

1.2 注释&驼峰命名

/*

需要注释的内容

*/

1.3 包名

import "bytes"

2. 变量2.0 常量

type ByteSize float64

const (

_ = iota

KB ByteSize = 1 << (2 * iota)

MB

GB

)

// 主函数

func main() {

fmt.Println("Hello World!")

fmt.Println("size %f", GB)

// size %f 64

}

2.1 声明

var ......