文档扫描:深度神经网络在移动端的实践
鲜于海舒(有道高级研发工程师)
随着深度学习算法在图像领域中的成功运用,学术界的目光重新回到神经网络上;而随着 AlphaGo 在围棋领域制造的大新闻,全科技界的目光都聚焦在“深度学习”、“神经网络”这些关键词上。与大众的印象不完全一致的是,神经网络算法并不算是十分高深晦涩的算法;相对于机器学习中某一些数学味很强的算法来说,神经网络算法甚至可以算得上是“简单粗暴”。只是,在神经网络的训练过程中,以及算法的实际运用中,存在着许多困难,和一些经验,这些经验是比较有技巧性的。
有道云笔记不久前更新的文档扫描功能中使用了神经网络算法。本文试图以文档扫描算法中所运用的神经网络算法为线索,聊一聊神经网络算法的原理,以及其在工程中的应用。
阅读全文
Avazu Click-Through Rate Prediction比赛分享

                                                                                                              燕鹏、周骁聪

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

Avazu CTR Prediction

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

阅读全文
Scrum——在变化中求进化

贾儒(高级开发工程师)

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

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

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

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

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

kongxx 图1

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

阅读全文
云存储系统中的数据去重与加密

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

本文是基于作者最近发表于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].

阅读全文
前端学习之iOS开发(二)

liuzq(前端开发工程师)

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

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

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

阅读全文