首家大数据培训挂牌机构 股票代码:837906 | EN CN
阿里巴巴菜鸟级数据产品经理半年回顾总结篇
干货教程:如何绘制业务流程图(二)
干货教程:如何绘制业务流程图(一)
技术贴:如何在数据库中秘密地查询隐私数据
攻略教程:信息图(infographic)是怎么做出来的?
分析师一定要看!用数据讲故事的五个步骤
技术篇:怎样玩转千万级别的数据?
北漂书生:大数据时代SEO数据如何搜集和分析
干货,从十大问题重新认识并读懂互联网
相似图片搜索、算法、识别的原理解析(下)
相似图片搜索、算法、识别的原理解析(上)
制作信息图时请遵循这10条原则
提高表格可读性的一些技巧,适用于Excel、PPT等数据报表
实用教程:如何让Excel图表更具“商务气质”?
一张数据信息图是这样制作完成的
菜鸟读财报,如何从上市公司财报中挖情报?
北大数据分析老鸟写给学弟们一封信
如何一步一步制作出高品质数据信息图?
总结:海量数据分析处理的十个方法
【实战经验】数据分析师如何了解老板真正想法?
零售业数据分析那些事儿
数据分析时l常用电子表格公式【大全】
用数据来告诉你 上市公司财报的秘密
这12个数据能 帮你搞定淘宝店铺
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(四)
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(三)
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(二)
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(一)
淘宝网店从激活到挽留,4步走玩转数据营销
文案怎样写才有意思、不空洞、打动人?
入门级扫盲贴:数据分析的步骤有哪些?
关系即数据,论社交媒体的关系转换
数据的力量,苹果教你用数据鄙视竞争对手
谁说文科生不能做数据分析?数据分析入行→技能提升→优势
产品运营数据分析——SPSS数据分组案例
如何追踪iPhone和iPad等移动设备的用户行为数据?
阿里巴巴中国站:用户满意度指标权重计算方法
广告中的AdNetwork、AdExchange、DSP、SSP、RTB和DMP是什么?
信息图制作教程:关于数值的表现
为什么大数据会如此轰动?(值得深度的文章)
多图技术贴:深入浅出解析大数据平台架构
面板数据分析中标准误的估计修正——根据Peterson (2009)的归纳
财务官、投资人、CIO看过来:给企业数据定价
推荐系统中常用算法 以及优点缺点对比
探索Weotta搜索引擎背后的大数据技术
如何识别虚假数据?
为什么我们像驯化小狗那样驯化算法
程序员必须知道的10大基础实用算法及其讲解
电子商务:最影响转化率的九大要素
如何迅速成为一名数据分析师?
想从事大数据、海量数据处理相关的工作,如何自学打基础?
如何用亚马逊弹性MapReduce分析大数据?
译文:机器学习算法基础知识
给hadoop新手的一封信:Hadoop入门自学及对就业的帮助
从入门到精通,我是这样学习算法的
小商家,从老客户身上获取的数据才更有意义
13页PPT讲述:大数据下网站数据分析应用
40页PPT详解:京东大数据基础构架与创新应用
67页PPT解密搜索引擎背后的大技术:知识图谱,大数据语义链接的基石
营销洞察力——10个营销度量指标
技术篇:前端数据之美如何展示?
董飞:美国大数据工程师面试攻略【PPT】
easel:如何制作好的信息图——来自专家的顶级技巧
大数据实操:以3D打印机为例,如何知道卖点有没有市场需求?
大数据建模 需要了解的九大形式
用户画像数据建模方法
从规划开始,公司or企业如何入手和实施大数据?
干货:商品信息数据分析和展现系统的设计与开发
高手教你用Excel制作百度迁徙数据地图
50篇干货:淘宝店/电子商务如何玩转数据分析?
精华索引:大数据实际应用案例50篇
验证最小化可行产品 (MVP) 的 15 种方法
干货:数据分析师的完整知识结构
大数据技术Hadoop面试题,看看你能答对多少?答案在后面
用SPSS做数据分析?先弄懂SPSS的基础知识吧
怎样做出优秀的扁平化设计风格PPT? 扁平化PPT设计手册#3
解答│做大数据过程中遇到的13个问题
40页PPT│社交网络发展的新动力:大数据与众包
以Amazon、豆瓣网为例,探索推荐引擎内部的秘密#1
怎样做出优秀的扁平化设计风格PPT?#2
怎样做出优秀的扁平化设计风格PPT?#1
36页PPT│大数据分析关键技术在腾讯的应用服务创新
如何丰满地做SWOT分析?
【35页PPT】TalkingData研发副总阎志涛:移动互联网大数据处理系统架构
27页PPT|以珍爱网为例,如何构建有业务价值的数据分析系统?
国外数据新闻资源分享
21页PPT重磅发布:Mariana——腾讯深度学习平台的进展与应用
从0到100——知乎架构变迁史
PPT解读:百度大数据质量保障方案探索
45页PPT|大数据环境下实现一个O2O通用推荐引擎的实践
从数据看豆瓣兴衰
深度学习系列:解密最接近人脑的智能学习机器——深度学习及并行化实现(四)
重磅推荐:129页PPT讲述移动时代创业黄金法则 via:腾讯企鹅智酷
重磅推荐:大数据工程师飞林沙的年终总结&算法数据的思考
OpenKN——网络大数据时代的知识计算引擎
大数据下城市计算的典型应用
技术贴:大数据告诉你,如何给微信公众号文章取标题?
你的QQ暴露了你的心——QQ大数据及其应用介绍PPT
如何从企业报表看企业的生存能力?
实用的大数据技巧合集
技术帝揭秘:充电宝是如何盗取你的个人隐私的?
重磅!50页PPT揭秘腾讯大数据平台与推荐应用架构
原创教程:饼图之复合饼图与双层饼图(1)
PPT:大数据时代的设计特点——不了解这个你做不了今天的设计
教程贴:如何用方程式写春联?
原创教程:如何用Excel制作简易动态对比图
深度译文:机器学习那些事
教程帖:数学之美——手把手教你用Excel画心(动态图)
董老师走进斯坦福,聊聊硅谷创业公司和大数据的事儿(附课件PPT下载)
【限时】年度钜献,108个大数据文档PDF开放下载
董飞专栏:大数据入门——大数据相关技术、Hadoop生态、LinkedIn内部实战
亿级用户下的新浪微博平台架构
一张图了解磁盘里的数据结构
浅析数据化设计思维在阿里系产品的应用
美团推荐算法实践
一个P2P创业公司有哪些部门,都是做什么的?
一个P2P平台的详细运营框架是怎样的?
机器学习中的算法——决策树模型组合之随机森林与GBDT
神经网络简史
58页PPT看懂互联网趋势,大数据/物联网/云计算/4G都有了
广点通背后的大数据技术秘密——大规模主题模型建模及其在腾讯业务中的应用(附PPT)
微信红包之CBA实践PPT——移动互联网海量访问系统设计
一文读懂机器学习,大数据/自然语言处理/算法全有了……
搜狐新闻客户端的背后大数据技术原理——推荐系统(PPT)
原创教程:用Excel做动态双层饼图
半小时读懂PMP私有广告交易市场
怎样分析样本调研数据(译)
PPT:支付宝背后的大数据技术——DataLab、Higo的实践及应用
大数据技术人员的工具包——开源大数据处理工具list(限时下载)
计算机视觉:随机森林算法在人体识别中的应用
24页PPT:机器学习——支持向量机SVM简介(附下载)
互联网高手教你如何搜集你想要的信息
深度:对地观测大数据处理、挑战与思考
原创教程:用Excel做饼图之复合饼图与双层饼图(2)
移动大数据时代: 无线网络的挑战与机遇(附pdf下载)
Excel使用技巧——25招必学秘技
【年度热门】加上这些 Excel 技能点,秒杀众人(多图)
原创教程:用Excel做纵向折线图
知识图谱——机器大脑中的知识库
何明科专栏:用数据化的方式解析投资条款
DT时代,如何用大数据分析创造商业价值(23页PPT)
MIT牛人梳理脉络详解宏伟现代数据体系
你的老婆是怎么算出来的?揭秘佳缘用户推荐系统
飞林沙:商品推荐算法&推荐解释
PPT:如何成为真正的数据架构师?(附下载)
开源大数据查询分析引擎现状
董飞专栏:打造数据产品必知秘籍
译文:如何做强大又漂亮的信息图
如何使用Amazon Machine Learning构建机器学习预测模型
如何运用数据协助货架管理(内附26张PPT)
SVM算法
主流大数据系统在后台的层次角色及数据流向
PPT:阿里全息大数据构建与应用
人脸识别技术大总结——Face Detection & Alignment
教程:用Excel制作成对条形图
易观智库:大数据下的用户分析及用户画像(18页PPT附下载)
技术向:如何设计企业级大数据分析平台?
电商数据分析基础指标体系
IBM SPSS Modeler 决策树之银行行销预测应用分析
拓扑数据分析与机器学习的相互促进
基于 R 语言和 SPSS 的决策树算法介绍及应用
用php做爬虫 百万级别知乎用户数据爬取与分析
另类新浪微博基本数据采集方法
以10万+阅读的文章为例 教你做微信公众号的运营数据分析
破解数据三大难题:变现?交易?隐私?
微店的大数据平台建设实践与探讨
阿里巴巴PPT:大数据基础建议及产品应用之道
基于社会媒体的预测技术
人工智能简史
技巧:演讲中怎样用数据说话
马云和小贝选谁做老公?写给非数据人的数据世界入门指南
掘金大数据产业链:上游资源+中游技术+下游应用
原创教程:手把手教你用Excel做多层折线图
销售分析:如何从数据指标发现背后的故事
如何一步步从数据产品菜鸟走到骨干数据产品
也来谈谈微博的用户画像
行走在网格之间:微博用户关系模型
如何拍出和明星一样美爆的自拍照?斯坦福大学用卷积神经网络建模告诉你
运营商如何玩转大数据? 浙江移动云计算和大数据实践(PPT附下载)
大数据分析的集中化之路 建设银行大数据应用实践PPT
腾讯防刷负责人:基于用户画像大数据的电商防刷架构
创业提案的逻辑
友盟分享 | 移动大数据平台架构思想以及实践经验
寻路推荐 豆瓣推荐系统实践之路
“小数据”的统计学
重磅!8大策略让你对抗机器学习数据集里的不均衡数据
小团队撬动大数据——当当推荐团队的机器学习实践
微博推荐架构的演进
科普文 手把手教你微信公众号数据分析
信息图制作的六个注意点
【权利的游戏】剧透新玩法:情理之中?意料之外
推荐系统(Recommender System)的技术基础
核心算法 谷歌如何从网络的大海里捞到针
Quora数据科学家和机器学习工程师是如何合作的
阿里巴巴PPT:大数据下的数据安全
数据建模那点事儿
全民拥抱Docker云–Lhotse系统经验分享
实时股票分析系统的架构与算法
架构师必看 京东咚咚架构演进
什么叫对数据敏感?怎样做数据分析?
推荐系统基础知识储备
刘德寰:数据科学的整合与细分 数据科学的七个危险趋势(视频)
实际工作中,如何做简单的数据分析?
分布式前置机器学习在威胁情报中的应用(附PPT下载)
数据科学 怎样进行大数据的入门级学习?
扛住100亿次请求 如何做一个“有把握”的春晚红包系统?(PPT下载)
从 LinkedIn 的数据处理机制学习数据架构
大数据会如何改变管理咨询公司(I)
优秀大数据GitHub项目一览
生硬的数字和数据新闻:这么近,那么远
经典大数据架构案例:酷狗音乐的大数据平台重构(长文)
揭秘中兴大数据在银行领域的系统部署
基于大数据的用户画像构建(理论篇)
【R】支持向量机模型实现
数据图处处有陷阱?五个例子教你辨真伪
如何用R绘制地图
你确定你真的懂用户画像?
数据模型需要多少训练数据?
【接地气】01 数据报表的颜色怎么配
游戏价值和数据分析新思路
【R】异常值检测
快的打车架构实践
豆瓣还是朋友圈:大数据、新方法和日常问
PPT数据图表,怎么做才好看?
大道至简的数据体系构建方法论
数据的误区及自身业务
新浪微博的用户画像是怎样构建的?
面试干货!21个必知数据科学面试题和答案part1(1-11)
易观智库:中国大数据产业生态图谱2016(附下载)
Airbnb的数据基础架构
50PB海量数据排序,谷歌是这么做的
大数据时代工程师如何应对–今日头条走进硅谷技术讲座
D3.js教学记(下)
D3.js教学记(上)
飞林沙:企业级服务公司如何赚钱?只有平台级产品才有大数据的理论
一个母婴电子商务网站的大数据平台及机器学习实践
7大板块 组成数据分析师的完整知识结构
干货:SaaS领域如何分析收入增长?
学术 | 词嵌入的类比特性有实用意义吗?
6个用好大数据的秘诀
一个数据库外行眼中的微信优化 (附专家补充)
大数据调研,如何实现快全准?
数据大师Olivier Grisel给志向高远的数据科学家的指引
数据堂肖永红:数据交易的是使用权或数据的增值,而不是数据本身(PPT附下载)
淘宝商品详情平台化思考与实践
刘译璟:百分点大数据理念和实践(图文+PPT下载)
如何快速搞定一份看起来还不错的演示文档?
【BABY夜谈大数据】决策树
数据驱动设计:数据处理流程、分析方法和实战案例
美图数据总监:Facebook的法宝,我们在产品中怎么用?
树的内核:量化树结构化数据之间的相似性
拿到用户数据之后,LinkedIn怎么赚钱?
GrowingIO张溪梦:增长黑客的核心 企业应该重视产品留存率(附PPT下载)
[译]Airbnb是如何使用数据理解用户旅行体验的?
微博推荐数据服务代理: hyper_proxy的设计和实现
星图数据谷熠:消费领域DaaS 大数据重构未来商业游戏规则(附PPT下载)
鲍忠铁:TalkingData大数据技术与应用实践(PPT下载)
【干货教材】数据分析VS业务分析需求
九枝兰专访:数字营销的核心—企业如何使用数据管理平台(DMP)进行精准营销
我们的应用系统是如何支撑千万级别用户的
R应用空间数据科学
Excel进行高级数据分析(上)
Excel进行高级数据分析(下)
国内各大互联网公司2.0版技术站点收集
网站数据分析思路导图
大数据分析报表设计开发要素
大数据需要的12个工具 推荐
YARN/MRv2 Resource Manager深入剖析—NM管理
YARN/MRv2 Resource Manager深入剖析—RMApp状态机分析
Hadoop 1.0与Hadoop 2.0资源管理方案对比
Hadoop 2.0中单点故障解决方案总结
Hadoop 2.0 (YARN)中的安全机制概述
Hadoop 新特性、改进、优化和Bug分析系列1:YARN-378
Hadoop 新特性、改进、优化和Bug分析系列2:YARN-45
Hadoop 新特性、改进、优化和Bug分析系列3:YARN-392
Hadoop版本选择探讨
探究提高Hadoop稳定性与性能的方法
《Effective C++》读书笔记(第一部分)
Hadoop分布式环境下的数据抽样
Hadoop计算能力调度器算法解析
如何编写Hadoop调度器
数据结构之红黑树
Hadoop pipes设计原理
《C++ Primer plus》学习笔记之”类”
《C++ Primer plus》学习笔记之”类继承”
《C++ Primer plus》学习笔记之”C++中的代码重用”
《C++ Primer plus》学习笔记之”异常”
《C++ Primer plus》学习笔记之”RTTI”
Hadoop pipes编程
Hadoop Streaming高级编程
《C++ Primer plus》学习笔记之”标准模板库”
《C++ Primer plus》学习笔记之”输入输出库”
Linux Shell 命令总结
算法之图搜索算法(一)
awk使用总结
素数判定算法
《C++ Primer plus》学习笔记之“函数探幽”
使用Thrift RPC编写程序
如何在Hadoop上编写MapReduce程序
怎样从10亿查询词找出出现频率最高的10个

探索Weotta搜索引擎背后的大数据技术

于2017-04-01由小牛君创建

分享到:


搜索

本地化搜索(简称“本地搜”)是一个重要的网络信息检索工具,提供本地化的生活导航服务,在国内外都有成熟的产品面市。从本质上来看,本地搜是通用搜索引擎技术的垂直化产品(垂直搜索),提供更加精细化的搜索服务,对信息抽取、分类、数据规范化等流程提出更高要求。Weotta是一家基于机器学习和搜索技术的科技公司,成立于旧金山,2011年正式提供服务。Weotta称其提供的搜索为“深度搜索”,虽有跟风“深度学习”之嫌,本文甘愿冒险尝个鲜,探一探它的“深度”。

当我们准备发布Weotta时,我们已经为如何描述它犯了难。我们处理大数据吗?是的。我们使用了机器学习和自然语言处理吗?是的。可以叫它搜索引擎吗?当然。但是,我们想总和要大于部分。

我们最终觉得“深度搜索”是对我们工作最贴切的描述,它是一个超越了基本文本搜索的复杂搜索系统的简洁描述。无需赘言,不管怎么看,我们都不是这个领域唯一的一家公司;谷歌和很多其他公司都在对深度搜索的各个方面进行研究。但是还没有人创造出一个与我们的产品十分相像的深度搜索系统。我们的搜索技术可以处理各种标准文本搜索引擎无法理解的日常查询。

基本搜索

文本搜索引擎,如Sphinx或Lucene/Solr,均使用了分面过滤技术(注1):每篇文档都有一组“字段”(注2),通常表示成一个XML格式的文件,且各个字段都建立索引。给定一个搜索查询词以及可选的侧面选择参数,系统可以从文档集合迅速检索到目标文档和字段(建议读者阅读《信息检索导论》了解具体的实现细节)。

大数据

在文本索引时,通常可以指定建立索引的字段,每个字段都有各自的权重。比如,如果选择给文档标题字段很大的权重,而赋予文档文本字段的权值较小,则标题中含搜索词的文档,要比只在文本字段包含此搜索词的文档得到更高的分值。

为了检索建立索引的文档,你可以使用类似于SQL检索语句的搜索检索字符串。通常,在搜索语句中存在特殊的语法以控制搜索引擎决定检索哪些文档时的行为。比如,你可以明确哪些单词是必须的,哪些单词是可选的,或单词相距多远。

现在,所有这些对于程序员和技术用户都不成问题,但对于一般消费者,它并不理想。他们甚至不想知道是否存在特殊语法,更别提使用了。谢天谢地,深度搜索检索引擎卓越的检索词解析和自然语言理解能力使特殊语法成为多余。

分面提供了过滤搜索结果的方法。分面搜索可以在字段中寻找一个具体的值,或者更复杂的如确定日期、时间范围或确定与一个给定点的距离。通常,分面不影响文档的分值,但是会减少返回的文档数目。由于分面搜索通常会启动一个搜索/浏览接口的组合,也称“分面导航”。一个基本的搜索系统,若提供分面搜索,一般都是通过复选框、下拉列表或相似控件实现。eBay就是一个完美的例子,它提供许多分面以深入挖掘和过滤搜索结果。相比而言,深度搜索系统将分面搜索移至后台进行。

这些文本搜索引擎很强大,但在深度搜索的背景下,实际上只是一种别样的数据库。文本搜索与深度搜索均使用索引优化检索过程。文本搜索使用特殊的格式化查询字串与分面说明检索数据,而非使用SQL执行检索。虽说SQL数据库经过优化可以存储基于列或基于行的数据,但是文本搜索引擎经过优化,可以使用倒排索引(注3)存储普通文本数据。不管哪一种方法,从开发人员的角度来看,均属于底层数据存储方法,都有最适合的使用场景。

高级搜索

虽然高级搜索系统在最底层使用一个文本搜索引擎,但是会集成一些额外的排名信号。一个突出的例子就是谷歌的PageRank算法,它组合了文本搜索、关键词相关性、网站权威度及许多其它便于对搜索结果排序的信号。基本的文本搜索引擎仅使用单个文档的信息和文档集合的统计信息,高级搜索系统还考虑譬如信用、流行度和链接强度等外部信号。比如亚马逊允许用户按照平均评分或流行度对结果排序。但是这还算不上深度搜索,因为它只是在控制搜索结果的排序方面更强一些,对数据或检索语句还没有更深的了解。

深度搜索

我相信深度搜索满足如下四个基本要求:

  • 简单的搜索输入。它意味着深度搜索具有对检索语句的自然语言理解(NLU)能力,使得系统底层能够明白应该调用哪项侧面选择。
  • 多类目搜索。如果用户只搜索一样东西,搜索系统相对比较简单。但是如果搜索中包含多个变量,用户也没有给出明确的侧面选择,就需要深度搜索根据NLU技术确定用户在搜索什么,以及如何搜索到它。深度搜索还要能够高效地、自动地将多个数据集融合到一个系统。
  • 特征工程以实现深度数据理解。与流行观点不同,只有大数据还不够。你拥有海量数据并不定说你就掌握了能够洞察数据的方法。我们可以拿冰山打个很好的比方:用户看到的只是冰山一角,而冰山的大部分却藏在水面下。这里数据是冰山,特征工程则是解决如何让水下冰山现形,展示给用户,使其看到最佳搜索结果。
  • 情景理解。你对用户了解的越多,则你就掌握了更多调整搜索结果的知识。情景理解就意味着要知道用户的地理位置,他们过去的搜索历史,或者他们显性的偏好信息。情景是王!

当今许多搜索系统不符合这些要求的任何一条。有些只是实现了一条或两条,但是很少同时符合所有要求。Siri根据设备情景,并使用NLU技术理解检索语句。但是,Siri并非真正地进行搜索,而是将检索请求转发给另外一个应用或搜索引擎执行。谷歌与Weotta均符合所有要求,但是实现、方法及应用范围不同。

如何搭建一个深度搜索系统呢?深度搜索与简单文本搜索相同,都存在两个重要环节:索引和查询。下图是从深度搜索角度对两者的一个概括。

搜索

深度索引

深度搜索需要对数据的深度理解:它是什么,它怎么样,它对什么有益以及如何将其转换成机器可以理解的一种格式。这里举几个例子:

  • 位置要有地址和地理方位点信息
  • 产品要有重量和尺寸信息
  • 电影要有演员和导演信息

我们一得到底层数据结构,则立即将其转化为适于文本和侧面索引的文档结构。但是,深度搜索也需要特征工程发挥作用的深层知识和理解。我们必须仔细思考,用户可能执行何种搜索以及他们对搜索结果期望的质量如何。然后,我们还须确定如何将其转化为可索引的文档特征。

关于这种想法,我们这里给出两个例子。

假设有一家卖鸡翅的饭店。那么,鸡翅怎么样?有多少人喜欢有多少人不喜欢?它卖的鸡翅是本城最好吃的吗?诸如此类的问题可以通过一项基于目录的情感分析技术回答。

一场演唱会可能只是一次性事件,但是乐队以前的演出内容可能不同于今日。人们是否喜欢以前的演出?乐队粉丝呈现什么样的人口分布?演唱会会场如何?要回答这些问题,可能需要组合多个数据集,以建立乐队在不同会场演出间的交叉联系。

深度索引就是回答这类问题,将答案转化成适于排名和(或)过滤搜索结果的过程。这可能会涉及到应用数据科学、线性回归或情感分析。由于问题及其答案有赖于数据特征、用户所需结果类型,目前还没有特定的方法。但是,我们可以使用适当的技术,从而获得对数据前所未有的理解。比如,我们可以使用潜在情感分析技术,发掘数据隐含特征,从而可以处理基本文本索引不可能处理的检索语句。实现对数据的深入理解,自然水到渠成。引用佩德罗·多明格斯在《机器学习那些事(注4)》一文中的原话:

“机器学习初学者常常会惊奇地发现在一个机器学习项目中,真正用于机器学习的时间少得可怜。但是,当你考虑到数据收集、集成、清洗和预处理何等耗时,特征设计要经历一轮一轮不断试错,就会释然了。”

“项目70%的时间用于特征工程,20%的时间则耗费在为算法确定一个合适的、全面的度量标准,而只有10%的时间用在算法选择和调优。”

特征工程的一个主要部分是获取更多数据及质量更好的数据。我们需要大量的多样化的数据集得到必要的上下文信息。Weotta处理的数据,包括用户的地理信息、人口特征、兴趣点(Point Of Interest,POI)信息和位置数据库,以及社交网络。但是,我们还需要深度理解如何集成和关联数据,应用哪种机器学习算法,最重要的是,需要理解哪些问题提及到它以及可以回答哪些问题。所有这些都需要设计出一个可以自动实现的集成系统。谷歌研究主管彼特·诺维格说:“我们只是拥有更多的数据,还没有设计出更好的算法。”

在Weotta,我们相信高质量数据是最重要的,因此投入大量精力滤除噪声数据以抽取有意义的信号。对于任何重要的特征工程,其大部分工作实际上就是数据清洗。毕竟,投入的是垃圾,产出的也是垃圾(注5)。

我们还需要一个自动流程以实现连续学习。当数据进来时集成以后,系统应当自动改善。佩德罗·多明格斯说:“机器学习不是一个创建数据集和启动学习器的一次性过程,它是一个不断启动学习器、分析结果、修改数据和(或)学习器的循环过程。”

在此过程,人也是重要的一部分。在几乎每个层面上,我们必须都能够将人的知识和经验融合到数据管道。这种恰到好处的平衡与人机组合,决定了深度搜索系统的真正潜能和适应变化的能力。

深度查询

虽然我们已经获得深度数据驱动的深度索引,还需有效地使用它。简单的文本查询是不够的。为了得到正确的结果,我们需要准确领悟用户的搜索意图。它涉及到查询解析和自然语言理解技术。

在Weotta,我们已经投入大量时间,细化查询解析以处理如“哪一家餐厅适合我的周年纪念日”或“本周末哪有音乐会演出,我约了人”之类的查询语句。其他搜索系统的查询解析能力存在差别:Siri可识别单词Call加一个名字,而谷歌知识图谱却可以识别维基百科上几乎所有的实体。

如果我们已经解析查询词,并知晓搜索意图,下一步就是检索结果。由于我们实现的是多类目搜索,因此需要查询多个索引。在这一点上,自然语言理解能力尤为可贵,因为我们需要知道每个索引支持的查询参数类型,从而系统可以对查询词进行智能切分。

但是,当我们检索不同类型的信息时,那么如何将其组织到一个结果集合?怎么对不同类的事物进行排名呢?这些都是接口设计和用户体验方面的重要问题。谷歌使用结果页面的不同区块显示不同类型的结果,如谷歌地图和知识图谱。

我们认为Weotta使用的卡片展示有很大意义。我们在移动端使用一个栈,在电脑端则使用五张以上排成一排的卡片显示结果。为何这样做呢?这种表示方法从视觉效果上来看,可以让用户每次重点浏览少数几条结果,并允许我们显示多类目结果。这样,人们可以搜索晚餐饮品与电影,而看到三类不同的搜索结果,所有结果均混到一起。

还记得前面提到的侧面选择吗?在深度搜索中,虽然侧面选择对用户隐藏不可见,但是它们对于查询引擎仍然重要。根据检索词,查询解析器使用自然语言理解技术,而非依赖显式复选框决定使用哪个侧面选择。这种决定也可以由数据和产品的性质来驱动。在Weotta中,当我们知道一个检索语句涉及到食物时,我们使用一个侧面选择将结果限定于餐馆方面的条目。谷歌却不同,虽然他们或许知道一个检索语句中包含食品方面的单词,由于他们的数据是如此的丰富庞大,他们不能或者不愿为显示何种类型搜索结果做出清晰的决策,所以人们常常看到混在一起的搜索结果。比如,我试着用谷歌搜索“寿司”,除了一个网页列表,我还看到一个本地餐厅的长列表、一张地图和一个知识图谱方盒。由于Weotta专注于本地搜索并且理解用户,我们知道你正在寻找“寿司店”,这就是我们为你提供的服务。使用Weotta的深度搜索,用户可以搜索更为具体的对象,搜到“可以吃到滨地寿司的餐厅”相关结果。

深度查询语句理解的另外一个关键因素是“情景”:谁在搜索?他们在哪?现在什么时间?天气怎样?他们过去搜索了什么?他们的亲人朋友是谁?他们给出的显性偏好是什么?他们的隐形偏好是什么?

这些问题的答案会对搜索结果产生重大影响。如果我们知道一个人在纽约,那么我们就不会将其他地方的信息或发生在其他地方的事显示给他/她。如果外边正在下雨,我们会显示室内活动或周边地方相关结果。如果我们知道一个人讨厌垃圾食品,就不会显示麦当劳的结果给他/她。

所谓“爱屋及乌”,朋友喜欢什么你可能也会跟着喜欢。它可能不是一个强信号,但是几乎每个人都看重“社会认同”。此外,人们常与朋友和家人一起做事,如果将他们的偏好都考虑进来,我们也许能够找到更多的相关结果。事实上,如果你使用脸谱账号注册Weotta,就可以搜索到你的朋友喜欢的地方或事件。

大数据

总结

深度搜索系统从如下几个方面超越基本的文本搜索和高级搜索:

  1. 没有显性的侧面选择
  2. 多类目搜索
  3. 深度特征工程
  4. 情景

为了实现这些要求,我们需要利用自然语言理解、机器学习和大数据技术。实现时需要做的工作,比想象的要多得多,但好处也不言而喻:你可以通过一个简单的接口进行自然语言查询,并可搜索到更相关更加个性化的搜索结果。


备注

  1. 分面过滤(Faceted Filtering),又称分面搜索(Faceted Search)。所谓分面(Facet)实际上就是事物的多维属性,如一部电影的导演、演员、类型等分面。分面搜索通过事物的多维属性对不断筛选、过滤搜索结果的一种搜索方法,可视为搜索和浏览的结合。
  2. 字段(Field)方便文档(如网页等)的存储和索引,比如在全文检索引擎Lucene中,将文档划分成标题、正文、摘要等字段,并且可以设置各个字段的存储、索引状态,还可以设置每个字段的权重,称作Boost,以方便文档评分与排名。
  3. 倒排索引(Inverted Index)是搜索引擎最重要的一个模块。搜索引擎使用分词工具将文档切分成多个词的集合(又称“词袋”),词(中文的“词语”或“单字”,英文的“单词”)是文档的基本表示单元,由文档到词袋的映射就是建立正排索引(Forward Index)的过程。我们还可以根据所有文档中的词,建立从词到文档的映射关系,这就是倒排索引。在用户提交检索语句后,经过分词处理后,由词定位所有出现该词的文档,并使用相关的排名算法对文档进行排名。
  4. 《机器学习那些事》(A Few Useful Things to Know about Machine Learning)中文译名借鉴刘知远的翻译版本,感谢译者的贡献。但是,本文对佩德罗·多明格斯在《机器学习那些事》中的表述文字是本文译者的独立工作。
  5. 投入的是垃圾,产出的也是垃圾(garbage in, garbage out),常译作“垃圾进垃圾出”是一个常见的计算机术语,模仿“先进先出”(FIFO)的翻译。本文译者直接使用本意,方便多数读者理解。

译者:HorseHour原文作者:JACOB PERKINS via:译言网

扫描微信下面二维码,随时了解大数据最新动向,添加大数据培训,就上小牛学堂官方微信公共帐号dashuju36:

大数据培训,就上小牛学堂

End.