10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Google Play 的应用发现,第 1 部分:了解主题

  • 2017-02-03
  • 本文字数:1901 字

    阅读完需:约 6 分钟

据 statista 统计,截止到 2016 年 6 月,Google Play 应用商店有 220 万个 App ,超越了苹果的应用商店的 200 万个 App,Windows 和 Amazon 的应用商店则被这两家远远甩在身后。那么,你是不是好奇,在这浩烟如海的应用商店来发现你中意的 App,是怎么做到的呢?

今天,我们就来看看 Google Play 小组的软件工程师 Malay Haldar、Matt MacMahon、Neha Jha 和 Raj Arasu 分享的这篇文章,了解到Google Play 的应用商店的工作机理。本文是Google Play 的应用发现,第一部分:了解主题。

每个月,超过10 亿的用户来在Google Play 为他们的移动设备下载App。虽然有些人寻找特定的App,如Snapchat,其他人对他们感兴趣的只有一个粗略的概念,如“恐怖游戏”或“自拍App”。这些按主题进行的宽泛搜索,就占据了应用商店中的查询的将近一半,因此找到最相关的App 至关重要。

按主题进行搜索不仅仅需要通过查询字词对App 进行索引;他们需要了解与App 相关的主题。机器学习方法已经应用于类似的问题,但它的成功,在很大程度上取决于学习一个主题的训练样本的数量。虽然对于一些热门主题,如“社交网络”,我们有许多已贴标签的App 来学习,大多数主题只有少数几个例子。我们的挑战是从数量有限的训练样本中学习,并扩展到数千个App 的数千个主题,迫使我们去适应机器学习技术。

我们最初的尝试是建立一个深度神经网络(DNN),训练根据App 标题和描述的字词和词组预测App 的主题。例如,如果App 描述提到“可怕”、“非常可怕”和“恐惧”,然后将“恐怖游戏”主题与它相关联。然而,鉴于DNN 的学习能力,它完全“记忆”了我们的小型训练数据中提到的App 主题,却不能推广到之前未见过的新App。

为了有效地推广,我们需要一个更大的数据集来训练,于是,我们转向研究人们如何学习来寻找灵感。与DNN 相反,人类只需少得多的训练数据即可。例如,在学习如何推广和关联新App 之前,您可能需要查看非常少的“恐怖游戏”App 说明。只要知道描述App 的语言,人们甚至可以从少数几个例子就能正确推断出主题。

为了效仿这一点,我们尝试了这种以语言为中心的学习的非常粗略的思路。我们训练了一个神经网络来学习如何使用语言来描述App。我们建立了一个 Skip-gram 模型,其中神经网络尝试预测给定单词周边的单词,例如给定单词“photo”的“share”。神经网络将其知识编码为浮点数的向量,称为嵌入。这些嵌入用于训练另一个称为分类器的模型,能够区分应用于 App 的主题。得益于使用 Skip-gram 模型进行大量的学习,现在我们只需很少的训练数据即可了解 App 的主题。

虽然这种架构适用于热门主题,如“社交网络”。我们碰到一个新的问题,就是有更多的小众主题,比如“自拍”。单个分类器内置预测的所有主题大部分都集中在它学过的热门主题,对于不常见的错误则忽略之。为了解决这个问题,我们为每个主题构建了一个单独的分类器,并单独调整它们。

这种架构产生了合理的结果,但仍然有时会过度概括。例如,它可能会将 Facebook 与“约会”关联,或者将“植物大战僵尸”与“教育游戏”相关联。为了产生更精确的分类器,我们需要高容量、高质量的训练数据。我们将上述系统视为一个粗分类器,它将每个可能的{app,topic}对(编号为数十亿)删除到更易于管理的{app,topic}对的列表中。我们建立了一个管道,让人类评估者来评估分类器的输出,并将共识结果作为训练数据。这个过程允许我们从现有系统中引导,提供稳定地提高分类器性能的途径。

要评估{app,topic}对,我们问问题的形式是:“主题 X 与应用程序 Y 有多大程度的关联性?”多个评估者接收相同的问题,对每个 App 在评定量表上独立选择答案,标识出“重要的”、“有些关系”、或者完全“无关”。我们初步的评估显示了评估者之间存在极大的分歧。随着深入挖掘,我们发现了引起分歧的几个原因:答案不够明确;评估者培训不足;评估应用于大多数 App 或游戏的宽泛主题,像“计算机文件”、“游戏物理”那样的。解决这些问题导致评估者一致性的重要利益。要求评估者从策划列表中选择明确的答案,进一步提高可靠性。尽管有所改进,但我们有时仍然必须“同意歧见”,评估者在未能达成共识的情况下放弃作答。

这些 App 主题分类在Google Play 应用商店中启用搜索和发现功能。当前的系统帮助用户提供相关结果,但我们正在不断探索新的方法来改进系统,通过额外的标识、架构的改进和新的算法。在本系列的第2 部分中,我们将讨论如何为用户个性化应用发现体验。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-03 16:341845
用户头像

发布了 376 篇内容, 共 205.0 次阅读, 收获喜欢 949 次。

关注

评论

发布
暂无评论
发现更多内容

仅用3年!青软集团跃升华为云教育类目伙伴TOP2

科技怪咖

推荐这几款好用的IDEA插件,一定不要错过

(-0 , +0)

IDEA 插件 8月月更

Python自学教程4-数据类型学什么

和牛

Python 测试 8月月更

腾讯云大数据平台 TBDS全面升级,加速构建安全可控的大数据生态

科技热闻

一加和OPPO是什么关系?我来揭秘

Geek_8a195c

数衍科技与超市发达成合作,共同探索数字小票的新应用

科技怪咖

java程序员培训学习靠谱吗

小谷哥

web前端程序员学习靠谱吗?

小谷哥

有个大神把牛客网的Java面试笔记在GitHub开源了

收到请回复

大数据 架构 语言 & 开发 开发技术

活动预告(29日)|诚邀您参与AWS & 观测云「可观测性体验日」

观测云

皮皮APP夏日防溺水公益讲座 联动武汉长江救援队筑建生命安全线

联营汇聚

运营小能手看过来,龙蜥社区招募 5 名校园大使!(另兑换功能上线啦)

OpenAnolis小助手

龙蜥社区 礼品 开发者激励 校园大使 贡献兑换

数字化时代CRM新的发展方向

力软低代码开发平台

购物中心的运营保障,数衍科技数据桥接服务系统升级

科技怪咖

风险组件已经升级到最新版本,仍然提示风险,如何快速解决——kaptcha 安全漏洞

墨菲安全

Kaptcha 漏洞修复 开源安全 漏洞检测 开源安全与治理

EPPlus - 用于 .NET 的 Excel 电子表格

辣么大

Excel net 8月月更

社区疫情防控小程序源码

清风

源码 计算机毕业设计

直播预告|FeatureStore Meetup V4携手第四范式 & 腾讯 & 微软大咖讲师,共探特征平台实践

星策开源社区

微软 腾讯 Feature Store 特征平台 MLOps

OceanBase 4.0:当我们谈单机分布式一体化架构时,我们在说什么?

OceanBase 数据库

开源一夏 |分布式事务--TCC解决方案

六月的雨在InfoQ

开源 分布式事务 TCC 最终一致性 8月月更

案例 | 拯救Larrakia

澳鹏Appen

人工智能 数据库 nlp 语音识别 数据标注

CSDN 报告:阿里云容器服务成为中国开发者首选

阿里巴巴中间件

阿里云 云原生 云原生容器

defi质押dapp智能合约系统开发代码逻辑

开发微hkkf5566

Python自学教程5-字符串有哪些常用操作

和牛

Python 测试 8月月更

ARMS实践|日志在可观测场景下的应用

阿里巴巴中间件

阿里云 云原生 可观测

A tour of gRPC:08 - gRPC 反射 与 Evans 客户端

BUG侦探

gRPC RPC protocolBuffer

零基础参加web前端培训薪资怎么样

小谷哥

北京前端培训学习怎么选择

小谷哥

在线医疗 | 眩晕智能语音问诊技术解决方案

擎声科技

RTC 实时音视频 语音通话 在线医疗 擎声Qtt

大数据学习好还是自学的效果好?

小谷哥

Google Play的应用发现,第1部分:了解主题_Google_刘志勇_InfoQ精选文章