微博春晚流排序算法榜单

需求说明

原始需求说明

首页

实时流
白名单用户所发博文 + 关键词
阅读量+互动量排序,权重各占50%
发博时间降权

精彩段子

段子实时流
白名单用户所发博文 + 关键词
阅读量 + 互动量排序, 权重各占50%
发博时间降权
段子排行榜
白名单用户所发博文 + 关键词
阅读量 + 互动量排序, 权重各占50%
uid 去重,每个uid显示排名最高的博文

视频流

历年节目回顾
白名单用户所发博文+关键词
播放量+互动量排序,权重各占50%

明星实时流

白名单用户所发博文 + 关键词
阅读量 + 互动量排序,权重各占50%
发博时间降权

排序规则的抽象

是否区分视频微博

博文类:排序计数按 阅读量 + 转评赞
视频类:排序计数按 播放量 + 转评赞
视频的播放量从微博信息中获取,不同于 阅读、转评赞是同一个接口

是否时间降权

实时流: 计数按发布时间因子衰减

是否uid去重

段子手排行榜

抽象后的流排序

流分类

春晚实时博文 (阅读+转评赞+时间降权; 春晚主场、精彩段子、明星拜年)
春晚段子排行 (阅读+转评赞+uid去重,精彩段子)
春晚视频排行 (播放量+转评赞,历年回顾、视频排行)

算法抽象

//根据后台设置的计数权重计算 单体微博的原始得分
//如对于视频微博, $weight['read'] = 0 
//对于普通博文, $weight['play'] = 0
$raw_score = $weight['read'] * $read_count + $weight['interacts'] * $interacts_ccount  + $weight['play'] * $play_counts;
//根据时间衰减因子,计算衰减系数,
//$decay_hour_config 衰减到e^(-1) 约为0.3678需要的小时数
//如果需要实时性比较强,$decay_hour_config 可以设置的比较下,如0.01
$decay_weight = exp(-1 * ($count_time_in_seconds - $mid_create_time_in_seconds) /(3600 * $decay_hour_config));
$score = $score * $decay_weight;

流收录&&排序总体流程

使用redis的zset 实时收录feed流
区分视频微博和普通微博(redis_key_feed, redis_key_video, redis_key_spring2018)
每十分钟排序
前台展示使用redis_key_spring2018, 初始微博的score 为0

读《高性能MySQL》摘记

第三章 性能剖析
性能:更好的解释可以是,完成某任务所需的时间度量 秒/任务
优化:减少所需时间
吞吐量:每秒完成查询量 任务数/秒

正确步骤:测量时间花在哪(这是重点和前提),为什么花在那儿,优化那儿。
3.3 剖析MySQL查询
捕获MySQL查询
方法1 配置long_query_time=0 注意 由于全量查询,以免磁盘使用过大,最好部署log ratation工具
方法2 抓取TCP网络包,tcpdump保存到磁盘,用Percona Toolkit中的pt-query-degist分析
附加:MySQL还有“通用日志”,但只记录查询发生时间;MySQL Proxy代理层也可以记录所有查询
3.5.2 使用strace
strace -cfp $(pidof mysqld)
Percona Toolkit中的pt-ioprofile也是使用的strace来生成I/O活动的剖析报告

产品想法-出门提醒器

出门提醒器

考虑这几种场景:
天气重度污染,出门忘记戴口罩
答应给同事带东西,想着想着,第二天忘记了 等等

在门口安装 出门提醒器,你就可以这样:

  1. 想带一本书来公司,通过手机向其发送条出门提醒,明天带《思维导图》,次日出门时,出门提醒器通过红外监测要出门了,说一声“带上您的书了吗?”。
  2. 上午出门,出门提醒器知道外面污染,说一声,“雾霾严重,带口罩哦”

技术实现:
红外线传感
网络模块
机器学习-声音合成
...

啊呀,好像小米 都做出产品了
https://item.mi.com/1171600028.html

取悦的是谁?为了谁?

从一个孩童,到长大成人。不论“好孩子”还是“坏孩子”,成长与生活,都伴随着亲人朋友老师同学的说道、评价,也深受其影响。我们努力的成为别人眼中的好孩子、好人,却很少思考为什么一直这样做。

我们似乎渐渐地活成了别人认为的样子吗?活在了别人的眼中吗?有的文章说过这样的观点,我觉得需要解释一下。

我们之所以这样做,让别人觉得舒服,从来不是终极目的,我们想要的其实是别人对自己认同、对自己好。

世间没有绝对真理,也就没有绝对错误。绝大多数人认为对的,往往就是符合人们认识和期望的,相对来说就是对的。
我们只要学着践行那些大多数人觉得正确的为人处世之道,就足够了,不必尝试每一个人都认同,让自己失去独特性。

我们取悦了别人,也是为了最终取悦自己。为的也是自己。

爱,却是另外一回事。我相信,多数人深爱着自己的父母,当找到那个真正的另一半,一定也深爱着ta。
爱,不需要解释,也不要有任何假设,更不是为了自己。没有谁是一座孤岛,我们是我们所爱的人和事物。

如果读罢此文,能有些同感或者认同,我就会收到鼓舞。
有何想法,欢迎留言交流~

我的原则

我的原则有哪些?

  1. 家庭第一位
  2. 个人价值,直接或间接地对社会、或对社会的一小部分的价值与服务。
  3. 好兄弟,多支持。朋友妻,要远离。
  4. 待人真诚,不存偏见。
  5. 责任与本心:做好本职工作,但不为所谓的“绩效”,给自己的生活打折扣。

我的弊病(曾经):

  1. 取悦他人胜于取悦自己
  2. 相信他人胜于相信自己
  3. 缺乏主见,莫衷一是

警句记录:
大家的共识都是错的,要做独立的思考者。
我干我想做的事情,而非他人逼迫我为之。
我把我能想到的最好的、独立的观点汇聚到一起,用以实现我的目标。