豌豆荚工程师谈其新版应用搜索技术

标签: 豌豆荚 工程师 应用 | 发表时间:2012-12-06 20:12 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

豌豆荚近日发布了应用搜索的新版本,主要针对安全、隐私等问题做出了改善,InfoQ就相关技术问题对其工程师进行了采访。

InfoQ:首先请二位做下自我介绍?

陈兴润:我叫陈兴润,是豌豆荚的后台工程师,和吉昌一样也是早期的团队成员,主要负责应用搜索。

丁吉昌:我叫丁吉昌,我跟兴润是同期来豌豆荚的,现在我们也在一个团队,我现在算是应用搜索的负责人。

InfoQ:豌豆荚应用搜索迄今在架构上经历了几个阶段?

陈兴润:主要是三个阶段,第一个阶段,我们当时是为了追求全,就收录尽可能多的应用。在这个阶段我们会有爬虫不断的去爬取各大市场的应用。当时机器比较少,人也比较少,所以更新频率不是很快,大概是一天更新一次,就是从爬虫到最后展现给用户需要一天的时间;第二个阶段,因为对实时性要求不断提高,我们对架构进行了一些调整,大概从爬虫爬到以后,到最后展现给用户需要六个小时;第三个阶段是从今年6月份开始做的,现在从爬虫爬到到最后展现给用户,能够在秒级完成,大概五秒以内就能够在首页出现,用户在30秒内就能够搜到。

InfoQ:搜索的实时性是怎么来做提高的?

陈兴润:第一个阶段实时性不高是因为我们做了页面的静态化,所有用户看到的内容是一样的;第二个阶段,我们去掉了页面静态化的逻辑,加入了一些后端数据库的缓存,这样子在性能没有太多损失的情况下,提高了实时性;第三阶段我们用了一系列的消息中间件,还有使用订阅和发布机制来保证整套系统能够在秒级的时间内更新。 并且最早的时候我们主要是靠爬虫去各个应用商店抓取内容,最近有很多应用商店愿意和我们合作,他们会把数据主动的推给我们,这样能够更快、更实时的拿到最新的数据。

InfoQ:豌豆荚应用搜索这次发布的“绿色标签”和“优质开发者认证”主要是在安全方面做出了改善,这些背后是怎样一个机制?

陈兴润:我们主要有四个标签:

第一个是安全标签,我们接入了四家安全厂商,每爬到一个应用,就会把这个应用交给这些厂商,请他们帮我们做病毒扫描。如果全部都能扫描通过的话,我们就会打上“安全”标记;如果有一家不通过,其他家通过的话,我们就会标上“可疑”标记;如果全部都不通过就会标上“危险”标记,标记为“危险”的应用不会出现在页面上;

第二个是广告标签,我们会收集一些广告SDK,把他们做成黑名单,对我们拿到的每个应用,利用这个黑名单进行过滤,如果应用用到了这个黑名单中的SDK,我们就认为这个应用里面有广告;同样,如果有那种比较恶劣的弹窗广告应用,我们也是不会让它出现在页面上;

第三个是权限标签,我们整理了一些可能危害用户隐私的权限,比如说打电话、发短信、访问他的联系人数据等,如果一个应用用到了这些权限,我们就认为他有可能会触犯用户的隐私,除非他有很好的理由说用这个权限的确是合理的;

第四个标签是Google Play认证标签,主要是针对有些在Google Play上的国外应用。它的原理是:豌豆荚会去爬Google Play上的应用安装包,拿到以后会分析出这个应用的签名,把它存在数据库里,对我们爬到的每一个应用做签名认证。如果他的签名和它在Google Play上的签名是一样的,我们就会给他打上Google Play认证标签。因为有些应用可能会经过国内很多破解或者汉化等加工,加工以后有可能损害用户的利益,破解者可能加一些广告,或者加一些危害用户隐私的代码。如果我们标上了Google Play验证的标签,就说明用户看到的这个应用包和Google Play上的包是一模一样的,即它的确是由原始开发者来提供的,这样就可以一定程度保证这个包没有被第三方非法篡改过;

丁吉昌:还有一个优质标签,其实刚才兴润基本上把原理都讲了,像安全就是我们为什么引入三家、四家?因为我们发现所收录的应用,每家安全厂商对其判断标准还是挺不一样的,比如29%的应用腾讯觉得没问题,360却觉得有问题;同样有接近30%的应用,360觉得没有问题,腾讯觉得有问题,所以我们也就引入了多家安全厂商来做辅助判断。对于广告,豌豆荚会针对超过一百个广告特征进行扫描,是国内做的比较早的。这四个标签对我们的分析来说都比较重要,因为没有任何一个指标能完全保证应用质量是靠谱的,既使是像Google Play这种审核比较严格的市场,也有3%左右的应用是有安全问题的,所以我们就把更多标签都放上去。除了这些标签之外,我们还做了一个用户不可见的事情:相信“用户投票”的结果。在做应用排序的时候会通过五个标签和一个认证来做一个优先级排序,这是一个智能的筛选策略,也是本次重构的重点。

InfoQ:你们在实现这些绿色标签的时候,技术上会有哪些挑战?

丁吉昌:安全方面,我们觉得实现的难点可能是商务谈判上,即如何把不同的安全厂商接入进来,让他们愿意合作;第二就是广告扫描,如何跟的上广告特征增加的速度,因为广告平台在不停的增加,包括他们的特征也不停的增加,这些是需要持续维护的一件事情。

InfoQ:实际上对于广告和权限就是直接看它是否有声明?

丁吉昌:我们会解开他的代码来解析;同时我们还在使用“用户投票”的结果,就是我们会根据用户自己的选择结果来判断哪个应用最受欢迎、哪个应用的签名最受欢迎。对于我们完全没有办法进行验证的应用,我们会用这个策略来判断,同时这里面涉及到的计算量会比较大,因为我们有几千万用户,所以这里面也有些技术难度。

InfoQ:这个是做实时计算吗?

丁吉昌:对,实时计算。

InfoQ:现在我们怎么来做这一块的?有多大的一个集群?

陈兴润:我们是有一个集群,现在其实是有数十台机器跑在Hadoop上。

丁吉昌:主要是Hadoop,一开始我们计算的时候要两天,后来重构算法以后可以做到几乎实时,包括现在豌豆荚上看到那些安装量也都是实时的,当然现在还没有做到每秒去更新,因为计算量比较大;

InfoQ:当应用被收录之后豌豆荚会做哪些工作?

陈兴润:我们的爬虫是以全为目的,尽可能多的收录应用。但是收录进来的应用不一定能让用户看到。会根据一些原则来进行处理,例如违法等应用不会显示也不能搜索到;

丁吉昌:其实收录以后会进行安全、广告校验,也会对完整性、非法性做基本的校验,只有满足这些条件的,才会入到我们最终的库里面展现给用户。

InfoQ:豌豆荚的推荐算法是怎么来应用的?

彭跃辉:目前我们做了“豌豆猜”。为什么做这个东西呢?是因为我们发现用户在豌豆荚里面下载应用,Top200的应用好像就已经占了下载量的95%以上,这样会有一个问题,即大部分应用其实用户都接触不到。做“豌豆猜”当时的目的就是想把一些优质的应用展现给用户。另一方面是应用不像音乐,用户的搜索行为不是太多,用户主要是靠浏览去下载应用;还有就是我们想对一些用户历史行为进行挖掘,去发现一些用户的兴趣点,然后把他感兴趣的应用推荐给他。

InfoQ:挖掘这个算法能够稍微介绍一下吗?

彭跃辉:其实上周六的时候,我们去参加了推荐系统的大会,在会上也简单介绍过。我们发现一个很有意思的点是我们做这件事情的过程和Hulu做推荐系统的演变过程基本上是一样的。我们在最开始的时候,可能是一种基于item的协同过滤算法。随着我们对应用领域的了解,我们发现其实可以把一些应用的特征加进去,就加入了一些基于内容的推荐。这样的话,第二个版本就是一些基于item的协同过滤加上一个基于内容的推荐。做完这部分之后,我们发现这两种策略还是有一些bad case,主要体现就是它经常给出的是一些相似的应用,但不是一些相关的应用。举例来说,比如你下了一个愤怒的小鸟,他会给你推荐一个愤怒的小鸟2。但是相关的想法是,比如说你下了“知乎”,要可以给你推荐“点点”,或者给你推荐“豆瓣读书”这样的应用。我们为了让应用相关性更强就引进了一些topic model的算法。目前我们会对一些应用抽取topic,建立这些应用和topic之间的关联。我们目前就是做到第三步这个阶段;

InfoQ:豌豆荚应用搜索下一步有什么打算?

丁吉昌:就如兴润刚才所讲,我们之前目标是做全,现在的目标是要做精。再长远一点,我们会考虑做一些事情:第一个提供给用户的安装包,首先是安全的,没有广告、弹窗,或者隐私这种问题。但同时还要考虑用户手机是不是能够安装上,因为Android分裂的特别严重,所以也不是每个开发者都有精力来做到所有的手机适配,我们会将适配加入到应用搜索中;另外是运营方面也有一些策略,比如现在正在做的优质开发者,对于优质开发者的应用将会在各种排序和策略上优先展示;

陈兴润:有些事情其实我们还没有特别确定,比如说我们现在做的事情可能是过去三、五个月摸索的时候,发现用户有很多抱怨或者有需求没有满足的时候才开始做的。最终做成什么样,还要根据用户的反馈;

您可能也会喜欢

相关 [豌豆荚 工程师 应用] 推荐:

豌豆荚工程师谈其新版应用搜索技术

- - InfoQ cn
豌豆荚近日发布了应用搜索的新版本,主要针对安全、隐私等问题做出了改善,InfoQ就相关技术问题对其工程师进行了采访. InfoQ:首先请二位做下自我介绍. 陈兴润:我叫陈兴润,是豌豆荚的后台工程师,和吉昌一样也是早期的团队成员,主要负责应用搜索. 丁吉昌:我叫丁吉昌,我跟兴润是同期来豌豆荚的,现在我们也在一个团队,我现在算是应用搜索的负责人.

豌豆荚设计奖正式上线,附以往7期获奖应用

- junyu - 36氪
对于做应用开发的创业团队来说,推广可以说是一个非常核心的难题. 尤其是一些小团队,他们的产品或许做的很棒,但是由于推广资源有限一直默默无闻. 为此,豌豆荚联合36kr、ifanr、小众软件、天涯海阁等7家移动互联网知名blog 设立了豌豆荚设计奖. 豌豆荚设计奖将每周甄选推荐一款获奖应用, 旨在感谢那些为Android创造了优质应用,有着杰出贡献的开发团队,并为这些应用提供免费的推广及曝光,以保证不会被海量应用所掩埋.

文章: 应用的未来——面孔、豌豆荚、HTML5小组专家访谈

- - InfoQ cn
为了让大家能够了解到不同平台的产品特质以及现状和发展趋势,我们特别邀请到移动App平台的 @面孔网杨锴、PC平台的 @豌豆实验室张涛和姜楠以及 @HTML5研究小组的黄蔚瀚,他们将分别以各自独特的视角,来审视和解读未来时代的Apps. 百度开发者大会:Web App设计、移动互联网应用、个性化推荐、敏捷(3月23日 免费报名中.

豌豆荚被阿里全资收购?它是如何错失应用分发黄金时代的?

- - 虎嗅网
今天,互联网爆料平台“ 开八”爆料,阿里巴巴已正式收购豌豆荚,收购价格未知,确切消息将在今日公布,而豌豆荚创始人王俊煜对此的回应是“我并未听说”. 在笔者看来,豌豆荚这次被收购应该是板上钉钉了,豌豆荚再不嫁就真嫁不出去了. 这不是第一次传出阿里巴巴要收购豌豆荚的消息. 2013年阿里就有意向要收购豌豆荚,那一年百度以19亿美金的天价收购91无线,UC以大约1亿美元的价格收购了PP助手,那是应用分发市场的好时候,应用分发市场掌握着App与用户之间最关键的通道,在移动互联网争得不可开交的巨头们都想通过应用分发市场拿到所谓的船票,就算不卖给巨头,靠广告费和游戏联运也能赚得钵满盆满.

同样基于应用内搜索,“一览”才上线半年多,豌豆荚为什么又发布了“轻桌面”?

- - 爱范儿
没有安装 app,却能在 Android 手机桌面看到该 app 的图标,点击进去可以阅读内容. 不同 app 还能按主题“合体”在一起,在一个有时间线的信息流页面里阅读“合体” app 的内容. 联翩科技出品、 1 月 29 日晚刚刚发布的 豌豆荚轻桌面,就能做到上面说的这些“神奇的”事情. 今年 1 月,豌豆荚将 豌豆荚一览、Snap 效率锁屏(现已更名豌豆荚 Smart 锁屏)两款产品拆分了出来,成立一间新公司——联翩科技.

PPT:解析 Android 用户的内容消费行为(豌豆荚)

- 黄啸 - 互联网的那点事
豌豆荚:准 3G 时代的内容入口 解析 Android 用户的内容消费行为. 豌豆荚:准 3G 时代的内容入口. © 推荐 for 互联网的那点事, 2011. | 点击查看你正在浏览的文章链接 |. 点击关注“互联网的那点事”新浪微博. 点击收听”互联网的那点事”腾讯微博. 为什么说Android令人沮丧.

android手机桌面管理工具-豌豆荚手机精灵

- 叁石 - 葡挞生活
最近发现一个android手机的PC管理工具—豌豆荚手机精灵,可以用来管理android手机的短信、联系人、应用程序、音乐以及视频,可以解决基本的手机上内容的管理. 以前用WM手机的时候,有掌智手机助手,非常好用. 用android手机时,一直没有找到这样好用的工具. 用过91手机助手android版本,但不知为什么我个人的使用体验一直不顺利,除了截屏,其他功能都用不了.

文章: 了解豌豆荚2.0背后的技术故事

- - InfoQ cn
前不久, @豌豆实验室发布了豌豆荚2.0版本,发布会后,InfoQ采访到了软件工程师范怀宇( @duguguiyu)和高级软件工程师高雄( @Rock_gao),针对豌豆荚的技术特性和Webkit技术进行了采访. 本文将为您揭开豌豆荚2.0神秘的面纱,带您走近“快速、简单、有爱”的设计理念背后的技术故事:.

豌豆荚下载竞价收入逐月翻番 微信为最大客户

- - TechWeb 今日焦点 RSS阅读
  豌豆荚并不将自己定义为一个应用商店,而是一个通过搜索方式寻找应用并下载的渠道.   新浪科技讯 2月24日上午消息,创新工场孵化的豌豆荚( wandoujia.com)战略重点早已转向Android应用的下载渠道,借助竞价排名模式,其收入已经实现逐月翻番. 豌豆荚计划今年推出开放策略,引入第三方服务,并准备向海外市场进行渗透.

极客公园走进豌豆荚:团队如何高效率工作

- - 极客公园-GeekPark
[核心提示]极客公园走进豌豆荚实际考察豌豆荚实验室都是使用哪些工具,如何高效率协作工作. 提起 豌豆荚可能很多人第一印象都会想到那个白白胖胖的创始人 王俊煜吧,然后可能会是“硅谷范”、“极客范”这些字眼. 作为创新工厂投资的最早、最为人熟知且比较成功的项目,豌豆荚自始至终都处在大家的眼中,慢慢地由十几个人变成几十个人,再到现在一百多人.