深度解析 | 垂直搜索引擎构建:一个例子(上)
搜索引擎可以分为三类,元搜索引擎、综合搜索引擎、垂直搜索引擎。元搜索引擎使用场景较少,综合搜索引擎逐渐成熟,而许多垂直搜索引擎发展却参差不齐。一方面,身处垂直行业的企业更关注业务发展,较少关注产品算法和策略。另一方面,网络上关于搜索引擎的功能设计的文章汗牛充栋,而对搜索引擎的策略设计阐述却是不常见。针对这种现象,本文将以互联网房产为例,分享垂直搜索引擎的构建策略和基本框架,希望可以为后来者带来一些启发。
01搜索引擎概述
1.1 房产搜索引擎的含义
房产搜索是为用户提供房源信息检索的搜索工具。用户可以通过输入楼盘、小区、地标等关键词来获取自己需要的房源或资讯信息。
1.2 房产搜索引擎的数据来源
房产搜索引擎数据来源主要有两个渠道:(1)用户、企业、经纪人发布或上传;(2)基于爬虫进行站外抓取。
1.3 房产搜索引擎的特点
房产搜索的使命是连接人与房源,帮助用户“快”、“准”、“全”地搜集符合自身需求的信息。“快”指访问和返回搜索结果的速度快;“准”指返回精准命中用户需求的信息;“全”指返回多条满足用户需求的信息,使用户有选择余地。
相比综合搜索引擎Google、Bing、Baidu而言,房产搜索属于垂直类搜索引擎,具备一些独有的特点:
1. 信息精准
房产搜索数据专注房产领域 ,对房产信息的收集较为全面,同时通过标签构建,用户即便输入意图模糊的query也会返回符合用户需求的结果。如搜索“朝阳”,相比综合搜索引擎会返回地标地图、百科等信息,房产软件则会命中地标附近的各类房源信息、资讯等。
因此综合类搜索引擎需要根据用户属性、行为日志等特征,对用户的意图识别作出更多的探索,而垂直类搜索引擎则需对用户query进行聚焦,在房产领域召回符合用户信息的数据。
2. 更为便捷
如果使用Baidu等综合搜索引擎,搜索房产信息,难以避免在结果中浏览大量与需求无关信息,从而浪费时间。使用房产搜索则可以快速、轻松地找到符合自己需求的房源信息与资讯。
3. 多样化的筛选和排序
房产搜索可提供多样化的筛选和排序功能,例如用户可按照地区、房源类型、面积、户型、价格等多种条件进行筛选和排序,以快速定位满足自身需求的信息。
目前一些搜索引擎也在布局Item筛选垂直化,如京东,对许多热销品类筛选进行定制化筛选,以满足用户个性化的需求。
02 搜索引擎的作用
具备房源需求的用户,往往在使用App前就有明确的需求画像,比如想要在xx小区购买一套三居室,价格在500万左右的二手房。这些用户并不会无目的地浏览与需求无关的信息。因此,识别用户的意图并返回符合其需求的房源信息,是搜索的核心功能。此外,房产搜索还具备以下作用:
1. 体验提升
通过房产搜索引擎,用户可以在平台上快速、方便地找到满足自身需求的房源信息,减少综合搜索产生的信息过载。
2. 流量引导
根据相关数据统计,在房产应用中,主搜承载了首页40%以上的流量,对流量转化和收入提升有着十分重要的作用。通过搜索引流,有助于提升其他内容曝光量,提高订单(线索)转化率。
3. 广告创收
通过在搜索前、搜索中、和搜索后植入符合用户或商业化需求的广告,有助于提高用户体验和带来广告收益。
4. 产生曝光
当用户意图精度缺乏时,对关键词进行拓展,可以使更多关联房源被用户浏览,从而满足用户潜在需求和提高长尾房源曝光率。
5.数据分析
搜索可以产生海量的用户数据,对用户行为日志进行时序、对比、交叉分析可以解构用户需求,构建用户个人画像、群体画像等。此外,也可通过观察搜索词、搜索行为等数据,分析房市热点,打造相关运营内容,营造良好的应用生态环境。
03 房产搜索的框架搭建
实际上,搜索引擎是一个复杂的系统,它需要通过搜索用户输入的查询来从大量的数据中筛选出最符合用户需求的结果。整个搜索引擎包括query理解、召回和排序、重排等多个模块。下面将介绍房产搜索引擎的整体框架以及每个模块的作用。
3.1 Query理解
Query理解可以被视为一种分析过程。对用户输入的query进行预处理、分词、纠错、扩展、意图识别、赋予权重等操作,再做为检索条件进行数据召回。
这个过程可能比较复杂,我们可以通过一个例子来进行简单分析。例如,用户输入query为:“Chaoyang 两居的二手房、”,可以进行以下操作:
1. 预处理
预处理指对整个输入query进行简单处理,将大小转换为小写、无意义符号去除、停用词去除、半角转换、过长截断、繁转简等。通过上述方法,对数据进行初步处理。
对上述query做预处理后可以得到:“chaoyang两居二手房”
2. 分词
分词(Tokenization)指根据一些规则,将一段文本切换为若干个字或词语的流程,如“永远有光芒”,可拆分为“永远/有/光芒”,这里的每一个字或词可以看作一个输入单元(Token),OpenAI的API的收费标准便是按Token为单位计费的。
常见的分词工具有jieba、HanLP、NLPIR、THULAC、IK Analyzer。值得一提的是,大多分词工具也支持自定义词典。对于垂直搜索引擎而言,结合分词工具和自定义词典切分自然语言十分方便。
通过使用分词工具,我们可以将query可切分为“chaoyang”、“两居”、“二手房”3个Token。
3. 纠错
纠错(Query Correction)是预处理中的重要流程之一,通过对用户输入的query进行修正或重写,提高搜索结果的精准度。纠错一般包括以下几种方法:拼写检查、词典纠错、基于上下文纠错、机器学习、深度学习等方法。房产搜索引擎主要使用拼写检查、基于词典纠错等方法。
关于机器学习或深度学习,主要采用HMM、Seq2Seq、Transformer、Pointer-Generator Networks等模型进行改写生成。另外,BERT的应用也是不错的选择,在工业界被广泛应用。
根据纠错规则,此处将query处理为“朝阳/两居/二手房”。
4. 扩展
扩展(Expansion)一般指对用户的query进行扩展,以便召回更多符合用户需求的数据。扩展通常有以下方法:
- 同义词扩展:将查询词中的同近义词进行转换或替换。如用户输入“北京九号线”可将词语扩展至“国家图书馆”、“郭公庄”等沿线站点;
- 模糊匹配扩展:对查询词进行模糊匹配,用来纠正潜在的拼写或语法错误相关词扩展。如对于“橡树”可扩展至“橡树湾”;
- 根据查询词的内容和上下文:添加相关的查询词或属性,以扩展搜索结果。对于用户输入“学区房”可将其扩展为包括标题“xx学校”的检索结果;
- 基于用户画像的扩展:根据用户的历史搜索行为、兴趣偏好、地理位置等上下文信息,扩展用户查询词,以更好地匹配搜索结果。如,对于经常浏览别墅的用户,在对其“二手房”的搜索上可加上“别墅二手房”等关联词汇。
5. 意图识别
意图识别指通过各种方法,对用户的query进行分析,确定用户需求的过程。用户意图可分为精准意图和模糊意图。
精准意图识别一般根据用户的query,检索其用户意图精准对应的item。模糊意图识别一般可以采用基于模板规则、行为统计反馈、深度学习等方法。由于方法较为繁杂,此处不做详细介绍,若感兴趣的读者可自行检索相关文章
通过意图识别:我们可以得到query相关词汇“朝阳”、“两居”、“二手房”,代表的实体含义为 {Region:’朝阳’;House Type:’两居’; House Status:’二手房’}。
6. 权赋
权赋是指在文本处理中对词项(term)进行权重计算和权重赋予的过程。权重计算通常使用TF-IDF、TF-DF、BM25、概率模型、隐语义分析、基于知识图谱的算法等。
房产信息具备高度结构话特征,因此在项目初期,使用权重计算的场景较为稀少。而在处理房产资讯的检索时,可以使用该方法,进行数据处理。
7. 敏感信息
敏感信息:query分析中,对敏感信息(如违法、隐私)等信息进行识别和过滤的过程。可通过基于规则的方法、基于机器学习、基于深度学习的方法等实现
3.2 召回
召回是根据处理过的用户query,在数据库查询符合条件数据的过程。召回是搜索引擎中的重要环节,垂直搜索引擎亦不例外。召回策略决定着搜索结果的质量。例如,用户想要寻找北京的房源,若召回的是上海的房源,那么排序再好,也对用户的需求解决没有任何帮助。
除了召回策略外,数据质量也至关重要。在互联网房产行业,房源数据主要来自用户发布和商家发布,资讯的数据来源是多方的,包括企业发布、用户发布、第三方公开资讯等。
除了内容信息外,用户行为和用户日志数据也需进行储存,它们是召回策略的重要参考依据。
1. 数据储存与加工
搜索引擎的质量取决于搜索策略和数据质量。低质数据泛滥,对用户的浏览体验造成了严重的负面影响。这是当前中文搜索为人所诟病的原因之一。在Chatgpt、文心一言等AIGC工具迅速发展的情形下,这种影响将会愈发严重。因此,数据在存储时,除了本身实体属性外,还需要引入一些额外的标签对数据质量进行多方面评价。
对于房源信息,数据库通常会录入房源的标题、名称、类型、位置、价格、户型、面积、楼层、朝向、发布时间等字段,同时这些将这些数据做结构化处理,方便搜索引擎和其他业务查询。除此之外,也可以引入房源质量评分、VR评分、户型评分、评级等多维评价标签或指数,作为召回策略的条件。
2. 召回方式
与大多搜索引擎系统一样,房产搜索引擎通常采取多路召回策略,下面介绍几种常用的召回策略:
- 文本索引召回:文本索引通常使用倒排索引方式。预先构建关键词-包含关键词文档的索引,根据用户输入的关键词,对房产数据库中的已有的索引进行检索,查找包含关键词的房源(文档)信息。例如,用户在平台搜索“三室两厅”,搜索引擎根据数据库中查找包含“三室”和“两厅”的文档索引,从中返回符合搜索条件的房源信息并呈现给用户。
- 精准召回:根据用户输入的召回条件,从房产数据库中筛选出符合条件的房源信息,保证召回的准确性和完整性。例如,用户在房产平台搜索“深圳市罗湖区,90平米以下的二手房”。根据用户输入的query,不进行纠错、扩展等操作,优先在数据库中筛查找符合query的房源信息。
- 同义词改写:将用户输入的query转换为相似的同义词,从而扩大召回范围,提高召回的覆盖率。例如,当用户在房产平台搜索“带阳台的房子”,搜索引擎可以将“阳台”改写为“露台”,“阳光房”等同义词,从而扩大搜索范围,提高召回率。
- U2I:基于用户历史行为数据,将用户行为、偏好等信息作为召回条件之一,提高召回的个性化程度。比如经常搜索小户型房源的用户,我们可以在召回时将“小户型”(1或2室)加入到召回条件中,提高搜索结果的满意度。
- I2I:基于不同房源之间的相似度,将某个房源特征加入到召回条件中,推荐相似的房源信息。例如,用户收藏了一套花园别墅。基于该房源的特征,比如位置、房型、面积、价格等,在搜索结果中适当推荐其它具有相似特征的别墅给用户。
除此之外,召回策略还包含向量召回、基于深度学习召回等方式,有兴趣的读者可以通过作者其他文章了解。
召回是从海量的物品库里快速找出用户可能感兴趣的物品的过程,它决定了推荐系统的上限。如果召回的物品与用户需求无关,那么后面的排序就算再好也无法解决用户需求。召回率越高,用户就有更多的选择空间,推荐系统就更能满足用户的需求。
除了分词、召回的处理外,搜索引擎还涉及到排序和评价等模块,读者朋友们可以通过点击下方传送门进行查看。
参考文献
1 J Shen, R Lyu, X Ren, M Vanni, B Sadler. Mining Entity Synonyms with Efficient Neural Set Generation. AAAI,2019.
2 H Fei, S Tan, P Li. Hierarchical multi-task word embedding learning for synonym prediction. KDD,2019.
本文由 @知一 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自 Unsplash,基于 CC0 协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!