Avazu Click-Through Rate Prediction比赛分享

                                                                                                              燕鹏、周骁聪

Avazu Click-Through Rate Prediction是移动广告dsp公司avazu在kaggle上举办的广告点击率预测的比赛,全球共有1604支队伍参加,我和周骁聪组队参加了比赛,最终我们获得了第三名。下面是我们比赛的方法分享。

Avazu CTR Prediction

整个比赛历时两个多月,在这个过程中我们和众多数据挖掘高手交流切磋,对于广告点击率预测问题也有了更深的理解。点击率预测算法在经历了多年的研究和发展之后,如今再要有一个大的提升已经是一个比较困难的事情了。当前点击率预测算法的主要收益大都是来自于线性模型的改进+特征工程,最近几年工业界已经开始尝试用非线性模型去解决点击率预测的问题,也取得了一些不错的结果。通过这次比赛,我们也相信非线性模型的使用以及多模型的融合会带来点击率预测算法的下一次飞跃。

Scrum——在变化中求进化

贾儒(高级开发工程师)

移动互联网当道的今天,变化已经是大家习以为常的事情了。也许昨天还在街边苦等久久不来的出租车,今天已经可以在手机上点点预约车辆准时到达门口。优秀的产品带来了生活习惯、甚至生活方式的变化,这是从前无法想象的。在这背后则是互联网产品服务的变化,在这个大潮中,“进化”的周期变得越来越短,大家也许还记得当年各大杀毒软件厂商,每年才会发布一个新的功能版本,而如今几乎每一天大家的手机上都会收到各种各样的软件更新。而在这种快速更新的软件背后,需要一种能够很好适应并响应变化的团队组织方式——已经为大家所熟知的敏捷开发方法Scrum。

Continue reading

局域网内针对自制证书网站的SSL中间人攻击

孔祥欣(高级开发工程师)

对于网络上通信的两个人,我们如何窃取他们的通信信息而又不被他们发现呢?一种通用的做法就是中间人攻击。所谓的中间人攻击就是通过某种技术手段将攻击者放置在通信的两个人之间,拦截并分析他们的通信流量,然后在将流量转发给对方。

如下图所示,Alice和Bob以为他们是通过虚线通信的,实际上是通过实线由Malicious转发的,这里Malicious就是一个中间人,他可以看到Alice和Bob之间的全部通信信息。

kongxx 图1

为了防止中间人攻击,Alice和Bob决定使用SSL协议。

Continue reading

云存储系统中的数据去重与加密

段亦涛(有道首席科学家)

本文是基于作者最近发表于CCSW’14的一篇论文,Distributed Key Generation for Encrypted Deduplication:Achieving the Strongest Privacy,简要介绍云存储系统中支持数据去重的加密算法的最新进展。论文的DOI是

为了描述方便,本文采用了和论文中完全一致的参考文献标号。读者可去论文中直接参阅。

1. 背景

大规模云存储系统往往面临两个矛盾的需求:一方面系统需要压缩数据以节省存储空间的开销;另一方面,用户出于数据安全和隐私的考虑,希望自己的数据加密存储。目前数据压缩非常有效也是很常用的一个手段是去重(deduplication),即识别数据中冗余的数据块,只存储一份,其余位置存储类似指针的数据结构。研究表明,基于数据分布的不同,有效的去重能够节省高达50%甚至90%的存储空间和带宽 [32, 17, 27, 21]。去重已经被广泛用于很多商业化的系统如 Dropbox [3],EMC [36],等等。许多Peer-to-Peer (P2P) 系统也使用同样的技术来节省存储空间 [52, 53, 5, 6].
Continue reading

前端学习之iOS开发(二)

liuzq(前端开发工程师)

本文是继上一篇《前端学习之iOS开发(一)》的续集,上一篇属于iOS开发的入门篇,主要内容为前端学习iOS开发的优势和对比学习。本文的内容为介绍在新的项目《有道口语大师》中的实际应用,主要包括第三方类库管理工具pods、sqlite、文件操作、网络请求、引导动画等在项目中的实践。

一、第三方类库管理工具CocoaPods

CocoaPods作为iOS开发的第三方类库管理工具,可以很好的解决第三方类库的检索、安装、更新等操作,功能与nodejs中的npm类似。 Continue reading

用“逐步排除”的方法定位Java服务线上“系统性”故障

李斯宁(高级测试开发工程师)

一、摘要

由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(或所有)接口超时或卡死等。其中部分故障隐藏颇深,对运维和开发造成长期困扰。笔者根据自己的学习和实践,总结出一套行之有效的“逐步排除”的方法,来快速定位Java服务线上“系统性”故障。


Continue reading

Deep Learning实战之word2vec


邓澍军、陆光明、夏龙

前言Deep Learning已经很火了,本文作者算是后知后觉者,主要原因作者的工作是广告点击预测,而之前听说Deep Learning最大的突破还是在图像语音领域,NLP和在线广告点击预测方面的突破还不够大。但后来听说Google开源的word2vec还挺有意思,能够把词映射到K维向量空间,甚至词与词之间 向量操作还能和语义相对应如果换个思路,把词当做feature那么word2vec可以把feature映射到K维向量空间应该可以为现有模型提供更多的有用信,基于这个出发点,作者word2vec的相关代码和算法做了相关调研,本文是作者关于word2vec调研的总结,也是作为自己以后备用。存在疏漏之处,欢迎大家反馈:shujun_deng@163.com

 

…..继续阅读(请下载附件): word2vec

 

前端学习之IOS开发

liuzq(前端开发工程师)

随着智能手机的普及,目前移动互联网已经飞速发展,几乎每天都会有涉及人们生活的各种Android APP或者 IOS APP上线。作为一名WEB前端开发人员,一切与用户交互相关的技术都应该关注一下。前段时间有幸参与了第一个IOS项目——职场口语APP。现在站在前端开发人员的角度分享下开发心得,文章主要适用于未接触过IOS开发的前端人员,可以让其对IOS开发有个粗浅的了解。

不论是Javascript还是Object-C,作为一门编程语言它们的基本概念和编程思想都是相同的。所以这里的重点不会是数据类型、语法、语句等概念,更不会讲语言的发展史之类,至于这些基础知识需要感兴趣的同学自行学习啦。这里主要会讲如何创建第一个IOS项目、前端开发人员学习IOS开发的优势、前端开发和IOS开发的对比。

Continue reading

敏捷中的测试实践

Xing Binbin(测试工程师)

    有道云笔记团队采用敏捷的开发模式已有近两年的时间,为了更好的协作完成产品迭代,笔记测试团队也逐渐积攒了一些敏捷实践的经验。然而敏捷测试的转换和实施并不容易,和资源、环境等诸多因素有关系。如何实现从传统瀑布模型到敏捷模型的转化?本文将会结合笔记测试团队一些良好的实践来进行介绍。

    前不久ChinaTest大会上Martin Pol的演讲,阐述了测试从产生到现阶段的演变过程。如图1所示:

Continue reading

思维导图–云笔记测试的利器

Star (测试开发工程师)

有道笔记组用敏捷开发两年多了,对于敏捷,有很多的文章在写,我就不班门弄斧了,我只说下和我们测试相关的一些情况。

每次迭代,都有大量的测试用例,评审往往要花很多时间,效果不好;产品更新快,开发没有合适的依据自测,提测的质量没有预期的好;需求根据市场的需求不断有改动,所有人都为跟上需求而发愁;需求的内容量大,测试执行的时候会不记得有些功能的设计,如果找文档速度往往比较慢;准入测试没有很好的依据,不能在短时间内发现block测试的问题。

像是个魔咒,又像一个怪圈,每次都在抱怨这些问题,然而却迟迟得不到很好的解决,直到有一天,我们遇到了思维导图…

Continue reading