冷启动

事件通知

心不动则不痛 提交于 2020-03-21 23:37:41
3 月,跳不动了?>>> 在 zookeeper 中,我们可以监控特定的 znode 节点,当节点发生变化时,便会给监控方发送事件通知。这有点类似于发布-订阅模式,拿 Redis 来说,当我们发布新消息时, Redis 便会通知订阅者。 从设计模式上来说,事件通知属于观察者模式。当被观察者发生某种变化时,通知观察者,观察者对通知作出处理。 在业务上,将事件通知独立成一个微服务:事件中心,目的是解耦业务。本质上, kafka 能做什么,事件中心就能做什么。记得看过一句话,大概的意思的是: 任何问题,都能通过抽象一个中间服务层来解决 。 实现一个事件中心,主要包括两部分: 创建事件 订阅事件 拿客户端冷启动的事件为例,我们可能需要在用户打开 APP 的时候,做一些特殊的业务逻辑(这种情况应该挺常见的)。事件中心的业务处理流程包括: 在事件中心创建一个客户端冷启动的标识 业务在后台订阅这个标识,并配置一个请求地址,用于接受回调通知 客户端冷启动时,通知事件中心,事件中心触发回调通知 事件中心充当了代理的角色,因为有了事件中心作为中间层,发布事件的逻辑和消费事件的逻辑可以并行开发,同时,如果有别的业务也需要关注客户端冷启动事件,在事件中心订阅这个事件就可以了。 来源: oschina 链接: https://my.oschina.net/u/3017278/blog/3207906

元学习<A Meta-Learning Perspective on Cold-Start Recommendations for Items>论文解读

…衆ロ難τιáo~ 提交于 2020-03-21 18:05:35
矩阵分解(MF)是最流行的产品推荐技术之一,但众所周知,它存在严重的冷启动问题。项目冷启动问题在Tweet推荐等设置中尤其严重,因为新项目会不断到达。本文提出了一种元学习策略来解决新项目连续到达时项目冷启动的问题。我们提出了两种深度神经网络架构来实现我们的元学习策略。第一种结构学习一个线性分类器,其权值由项目历史确定,而第二种结构学习一个神经网络,其偏差被调整。我们对Tweet推荐的实际问题进行了评估。在Twitter的生产数据上,我们证明了我们提出的技术大大超过了MF基线,并且在Tweet推荐方面也优于生产模型。 item冷启动涉及到基于item描述、内容或内在价值的item特定特征。训练了一个模型,该模型可以参数化地(与查找表相反)推断该item的embeding向量。然后,可以将这些item embeding向量与用户embeding向量进行比较,从而向这些用户推荐新item。 然而,在新item不断产生的情况下,我们假设依赖离线训练的用户embeding查表中是次优的。事实上,这种方法无法捕捉在短时间内发生的用户兴趣的实质性变化,这是一种持续产生新item情况下的常见现象。当用户embeding被周期性地或增量地在线调整时(用户向量没法实时更新,随着新资源的加入),这个问题只得到部分解决。 或者,可以通过执行基于内容的筛选[21],在这里,我们将每个新item

推荐系统Lambda架构算法(七):基于内容的推荐算法(Content-Based)

喜夏-厌秋 提交于 2020-03-08 17:46:33
文章目录 基于内容的推荐算法(Content-Based) 简介 基于内容的推荐实现步骤 问题:物品的标签来自哪儿? 基于内容推荐的算法流程: 物品冷启动处理: 基于内容的推荐算法(Content-Based) 简介 基于内容的推荐方法是非常直接的,它以物品的内容描述信息为依据来做出的推荐,本质上是基于对物品和用户自身的特征或属性的直接分析和计算。 例如,假设已知电影A是一部喜剧,而恰巧我们得知某个用户喜欢看喜剧电影,那么我们基于这样的已知信息,就可以将电影A推荐给该用户。 基于内容的推荐实现步骤 画像构建 。顾名思义,画像就是刻画物品或用户的特征。本质上就是给用户或物品贴标签。 物品画像 :例如给电影《战狼2》贴标签,可以有哪些? "动作"、"吴京"、"吴刚"、"张翰"、"大陆电影"、"国产"、"爱国"、"军事"等等一系列标签是不是都可以贴上 用户画像 :例如已知用户的观影历史是:"《战狼1》"、"《战狼2》"、"《建党伟业》"、"《建军大业》"、"《建国大业》"、"《红海行动》"、"《速度与激情1-8》"等,我们是不是就可以分析出该用户的一些兴趣特征如:“爱国”、“战争”、“赛车”、“动作”、“军事”、“吴京”、"韩三平"等标签。 问题:物品的标签来自哪儿? PGC 物品画像–冷启动 物品自带的属性(物品一产生就具备的):如电影的标题、导演、演员、类型等等 服务提供方设定的属性

推荐系统实践读书笔记

跟風遠走 提交于 2020-02-04 04:59:59
最近大概复习了一下这本书,了解了较早的推荐系统的一些方法,记录如下,以便大家对本书内容有个快速地了解。略去了第一张,详细的代码和细节可以参考其他博客。需要关注的地方直接标出了页码。 书里面的代码不是很完整,用来学习还可以。第八章介绍了一些svd等机器学习的算法,在2020年的今天可以回顾一下。 推荐系统实践 第二章:利用用户行为数据 常见数据集: Book-Crossing(有评分、年龄、书籍的简介等) ,Last.fm , Netflix Prize ,Delicious(有标签) ,CiteULike(有标签),Digg, Yahoo!Music, GroupLens, KDD cup. 基于用户的cf:可以先构造倒排表,然后再计算用户相似度,这样能降低计算开销(p47)。User-IIF算法的表现更好。 基于物品的cf:解释性强。IUF算法(1998)降低了活跃用户对物品相似性的影响,归一化的物品cf能提高推荐的多样性。 两种cf的比较:usercf更加类似社会网络推荐,itemcf更加偏重挖掘某个用户的爱好。Itemcf在覆盖率方面不如usercf,可以通过p63的方法改进。 隐语义模型:借鉴文本挖掘领域的知识,包括LDA\pLSA\矩阵分解等。书中介绍了LFM,推导和伪代码已经给出。这个方法能极大地提高覆盖率,在Netflix Prize比赛中也使用了LFM

stc单片机自动下载程序原理和代码实现

旧街凉风 提交于 2020-01-28 01:44:27
1/stc单片机下载程序的原理 首先我们要理解stc单片机下载程序的原理。在stc单片机中有两个程序区:用户程序区和ISP监控程序区。 这是stc89c52单片机数据手册中的内容。 根据数据手册,我们可以知道,当冷启动或者对ISP_CONTR寄存器送入60H产生复位以后,单片机会从ISP监控程序区开始执行程序。 如果这时候检测到合法的ISP下载命令流(后面会说什么是ISP的合法下载流),则ISP监控程序开始与ISP下载软件通信(如stc-isp),软件也会进入编程模式,向监控程序发送程序码,监控程序接收程序码,并将其写入用户程序区中。成功后,用户程序立即生效,开始运行用户程序。 如果这时候没有检测到合法的ISP下载命令流,单片机就会从用户程序区开始执行程序。 2/冷启动下载 我们刚开始接触stc单片机一般采用的都是冷启动来下载程序。但是这样做有一定的缺点。 首先,单片机频繁的上电掉电会影响单片机的寿命,且一些特殊的外围电路要求一直保持有电状态。 其次,也是我主要想说的一点是,市面上的USB转TTL模块质量参差不齐,绝大多数模块都没有做好隔离,导致电流会从模块的TX和RX倒灌进单片机,如果此时单片机上的电压高于单片机的上电复位检测门槛电压的话,就会导致单片机无法冷启动,进而无法成功下载程序。 我测量了市面上购买的两款USB转TTL模块(PL2303)

怎样为产品选择更为合适的推荐算法

房东的猫 提交于 2020-01-18 00:28:36
常见推荐机制/算法 基础推荐机制 机制 应用场景 原理概述 内容推荐 适用于冷启动 基于内容的协同过滤 数据量较大 判断内容相似度,相似度高的内容;播放内容A的用户,也会对内容B感兴趣 基于用户的协同过滤 数据量较大,但数据量越大可信度越低 把数据代入专门计算相似度的公式,获得不同用户(二者)口味的相似度;推测相似度高的用户,喜好的内容也类似,进而可以相互推荐 基于标签的推荐 适用于冷启动 协同过滤的风险 协同过滤技术在个性化推荐初期具有较好的效果,但随着产品结构、内容复杂度和用户人数的不断增加,协同过滤技术的缺点也一点一点的暴露出来了。 稀疏性(sparity) 大多数推荐系统中,每个用户涉及的信息量较为有限;用户数据最多不过评估到了百分分之一,造成评估矩阵数据相当稀疏,增加寻找相似用户集的难度,导致推荐效果大大降低 扩展性(scalability) “最近邻居”算法的计算量虽则用户和项的增加而大大增加,对于百万之巨的数目,通常的算法将遭遇严重的扩展性问题 精确性(accuracy) 寻找相近用户来产生推荐集,在数据量较大的情况下,推荐的可信度也会降低 经典算法 算法 应用机制 原理概述 topN 基础算法 1、直接用List的sort方法进行排序处理 2、使用排序二叉树进行排序,然后取出前N名 3、使用最大堆排序,然后取出前N名 矩阵算法 基础算法

小程序:运行机制

点点圈 提交于 2020-01-16 02:52:15
ylbtech-小程序:运行机制 1. 返回顶部 运行机制 小程序启动会有 两种情况 ,一种是 「冷启动」 ,一种是 「热启动」 。 假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;冷启动指的是用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。 更新机制 小程序冷启动时如果 发现有新版本 ,将会 异步下载新版本的代码包 , 并同时用客户端本地的包进行启动 ,即 新版本的小程序需要等下一次冷启动才会应用上 。 运行机制 小程序 没有重启的概念 当小程序 进入后台 ,客户端 会维持一段时间的运行状态 ,超过一定时间后( 目前是5分钟 )会被微信主动销毁 置顶 的小程序 不会被微信主动销毁 当 收到系统内存告警 也会进行小程序的 销毁 再次打开逻辑 基础库 1.4.0 开始支持,低版本需做 兼容处理 用户打开小程序的预期有以下两类场景: A. 打开首页: 场景值 有 1001, 1019, 1022, 1023, 1038, 1056 B. 打开小程序指定的某个页面: 场景值为除 A 以外的其他 当再次打开一个小程序逻辑如下: 上一次的场景 当前打开的场景 效果 A A 保留原来的状态 B A 清空原来的页面栈,打开首页 (相当于执行 wx.reLaunch 到首页) A 或

Serverless 实战——使用 Rendertron 搭建 Headless Chrome 渲染解决方案

让人想犯罪 __ 提交于 2019-12-24 19:12:02
为什么需要 Rendertron? 传统的 Web 页面,通常是服务端渲染的,而随着 SPA(Single-Page Application) 尤其是 React、Vue、Angular 为代表的前端框架的流行,越来越多的 Web App 使用的是客户端渲染。 使用客户端渲染有着诸多优势,比如节省后端资源、局部刷新、前后端分离等等,但也带来了一些挑战,比如本文要解决的 SEO 问题。 对于服务端渲染的页面,服务端可以直接将内容通过 HTML 的形式返回,搜索引擎爬虫可以轻易的获取页面内容,而对于客户端渲染的应用,客户端必须执行服务器返回的 Javascript 才能得到正确的网页内容。目前,除 Google、Bing 支持 Javascript 外(也会有一些限制),其他的大部分搜索引擎都不支持 Javascript,也就无法获取正确的网页内容。 Google 推出的 Rendertron 就是为了解决这样场景的一款工具。通过使用 Rendertron,SPA 也能够被不支持执行 Javascript 的搜索引擎爬取渲染后的内容。其原理主要是通过使用 Headless Chrome 在内存中执行 Javascript,并在得到完整内容后,将内容返回给客户端。 Rendertron 原理介绍 通常会将 Rendertron 部署为一个独立的 HTTP 服务,然后为 Web

微信小程序 更新版本操作

≯℡__Kan透↙ 提交于 2019-12-23 22:40:46
1.小程序的启动方式: 冷启动----小程序首次打开或销毁后再次被打开 热启动----小程序打开后,在一段时间内(目前:5分钟)再次被打开,此时会将后台的小程序切换到前台。 2.根据以上两种启动方式,相应的更新机制为: 小程序冷启动时,会检查小程序是否有最新版本。如果有则将异步下载最新版本,但是仍将运行当前版本等到下一次冷启动时再运行最新版本。 如果你想现在就使用最新版本则需要调用wx.getUpdateManager API进行处理; 3.关于wx.getUpdateManager实战使用 3.1API介绍 //获取全局唯一的版本更新管理器,用于管理小程序更新。 const updateManager = wx.getUpdateManager(); 3.2 updateManager对象的方法列表: a.onCheckUpdate(function(res){}) 当向微信后台请求完新版本信息,会进行回调 b.onUpdateReady 当新版本下载完成,会进行回调 c.onUpdateFail 当新版本下载失败,会进行回调 d.applyUpdate 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启 上述代码的书写位置为app.js中onLaunch 3.3如何测试? 4.直接上代码 const updateManager = wx

函数计算: 让小程序开发进入 Serverless 时代

。_饼干妹妹 提交于 2019-12-18 10:43:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 点击下载《不一样的 双11 技术:阿里巴巴经济体云原生实践》 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击上方图片即可下载! 作者 | 吴天龙(木吴)阿里云函数计算技术专家 导读 :小程序是轻量级的快速迭代的移动应用,对开发者从开发到上线的效率提出了更高的要求。使用函数计算,开发者无需关心后端服务的搭建运维,只需要编写函数就能够为小程序提供稳定可靠并且弹性伸缩的服务。并且随着小程序访问量增加,函数计算能够自动快速地弹性伸缩,即使应对 双11 活动高峰也能够如丝般顺滑。 自 2017 年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现。小程序拥有触手可及、用完即走的优点,这大大降低了用户的使用负担,使小程序得到了广泛的传播。在阿里巴巴,小程序也被广泛地应用在淘宝/支付宝/钉钉/高德等平台上,例如今年 双11,大家在淘宝/天猫上参加的活动,大部分都是通过小程序提供的。 一个小程序可以分为客户端和服务端:客户端包括界面的展示和交互逻辑;服务端则包括数据的处理和分析。 为了支撑大量的小程序,平台在服务端面临的挑战有: 大量的小程序是不活跃的,传统的至少一台服务器的方式会造成资源浪费; 在活动高峰期小程序的调用量激增,要求服务端能够快速进行弹性伸缩。 针对小程序场景