热搜和底纹

什么是热搜和底纹

热搜和底纹是一个完整搜索引擎必备的基本功能,通常占据着搜索框入口的重要位置,提供不可或缺的业务价值。下图是看一个典型电商平台的热搜和底纹的位置。

1

热搜和底纹处于搜索引擎整个工作流程的最上游,为搜索优化起铺垫作用,可以大大降低query理解、排序、运营干预等环节的调优难度,并且结合运营策略可以有比较大的发挥空间。

从用户的角度来看,热搜底纹一般可以满足如下的需求:

说明

  1. 我想随便逛逛,不知道搜什么好,能不能给我推荐一些优质的查询词? 

  2. 我想知道大家都搜了些什么,随大流不会错 

  3. 最好能结合我的兴趣推荐query,也要有多样性,我既想看感兴趣的内容,又想探索一些兴趣之外的内容

从运营者的角度,热搜和底纹可以提供这样的价值:

说明
  1. 我想知道哪些query被搜得最多,热门query是用户兴趣的风向标,通过分析热门query可以把握用户的兴趣走向,对制定运营策略提供决策依据 

  2. 我想给用户推荐一些优质query,在用户有输入的情况下,下拉提示引导用户意图,但是在没有任何输入的时候,如何推荐优质query呢? 

  3. 如果给用户推荐热门query,不能总是固定给出最热的那几个query,需要考虑到多样性,一方面兼顾用户体验,另一方面需要给部分次热门query曝光机会

  4. 通过分析用户的行为,结合用户的兴趣来推荐query,既兼顾用户体验,又可以有的放矢的提升业务目标

【控制台热搜榜】和【热搜推荐接口】有以下几点区别:

说明
  1. 【热搜推荐接口】只统计最近14天的;

  2. 【热搜推荐接口】只统计raw_query,【控制台热搜榜】除了统计raw_query还会统计default索引上的查询词;

  3. 【热搜推荐接口】会过滤掉搜索无结果的query,【控制台热搜榜】则不会;

温馨提示

  • 目前热搜与底纹算法模型需要通过统计历史搜索请求中设为 raw_query 的查询词来进行训练,若历史搜索请求没有出现过raw_query,模型可能会创建失败。

  • 独立query:训练晋升条件中的raw_query是搜索请求时需要携带的参数,并且要求是独立的、有召回结果的、非重复的query查询词

  • 最多各创建3个热搜、底纹模型;

  • 默认显示热搜榜数据条数是10000条,可根据实际情况进行修改,但最低不少于100条。

  • 目前的算法模型只依赖搜索日志,按照一定算法做统计,暂不支持设定其他训练目标,因此仅需创建模型一次。

  • 系统接收到模型创建请求后,会立刻开始训练模型。

  • 一旦创建模型成功,系统会每天自动重新训练模型,不再需要人为干预。

  • 热搜/底纹模型开启并且已经训练后,可查询半年内任意一个时间段的榜单数据,默认为近14天的榜单数据.

创建热搜或底纹模型

API/SDK创建热搜和底纹模型

管控SDK依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-opensearch</artifactId>
    <version>0.7.0</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.0</version>
</dependency>

Java SDK Demo

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.opensearch.model.v20171225.*;
import com.aliyuncs.profile.DefaultProfile;
public class CreateModel {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", "<accessKeyId>", "<accessSecret>");
        IAcsClient client = new DefaultAcsClient(profile);
        CreateModelRequest request = new CreateModelRequest();
        request.setAppGroupIdentity("app_name");
 //type为算法类型:热搜设置为hot,底纹设置为hint;modelName为模型名称:自定义,由英文数字、字母、下划线组成,非纯数字,不超过30个字符
        String content = "{\"type\": \"hot\",\"name\": \"model_name\"}";
        request.setHttpContent(content.getBytes(), "UTF-8", FormatType.JSON);
        try {
            HttpResponse response = client.doAction(request);
            System.out.println(response.getHttpContentString());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

页面创建模型

1、在搜索引导->热搜与底纹页面,点击创建按钮创建热搜或底纹模型:

创建模型

2、填写名称选择模型类型(热搜/底纹模型),填写过滤条件(非必选):

配置模型

参数名称

说明

过滤条件

需填写OpenSearch搜索请求参数的判断条件,该过滤条件用于筛选符合条件的历史搜索词。支持如下格式:OpenSearch请求参数 biz_type(<、>、<=、>=、=、!=)数值,暂仅支持biz_type和user_id参数。多个过滤条件之间为AND关系,必须要使用英文逗号(,)分隔,表示且关系(暂不支持或关系)。例如当过滤条件为 user_id=1,biz_type=1 时,则只能选取符合该条件的记录。更多搜索请求参数请参考搜索处理

3、在热搜与底纹页面的列表页中找到刚创建的状态为“待训练”的模型,点击训练:训练模型4、训练完成后可通过热搜效果预览查看效果:

热搜效果预览001

底纹效果预览002

注意

  • 热搜的效果预览,弹框每次返回的10个推荐的热搜词,最多20组推荐的热搜词。

  • 底纹的效果预览,弹框每次返回1个底纹词,最多30组推荐的底纹词。

热搜与底纹页面介绍

热搜与底纹列表介绍

可通过搜索引导->热搜与底纹下查看,模型名称、模型类型、创建时间、模型状态、最后训练开始时间、最新版本状态和操作信息。用户可以根据自身需求设置默认模型,如果参数中没有设定模型名称,则访问默认模型。

image

热搜与底纹 详情页介绍

其基本信息包含创建时间、模型状态、最后训练开始时间、最新版本状态。也可在训练历史下查看模型版本、版本状态、训练开始时间、训练结束时间等信息。模型训练后为两种状态训练成功和训练失败

训连失败问题查看:

可点击详情进入详情页查看:可以通过异常报告查看失败的原因,在升级条件下查看所需条件。

image

个性化配置:

黑白名单配置:用户可根据自身业务的需求对模型进行黑白名单配置在模型详情下配置信息处点击配置

image

SDKSDK获取热搜/底纹结果

在产品中集成热搜和底纹功能,可以通过API/SDK来调用热搜底纹的推荐结果,热搜和底纹API文档。SDK Demo请参考下文。

热搜功能默认返回10个query,底纹功能默认返回3个query,用于在搜索框中轮播。

温馨提示:

  • 目前没有获取算法任务执行状态的接口,需要用户调用API/SDK根据是否有结果来判断是否可使用。

  • 一旦调用创建模型成功后,后续每日系统内部会自动执行算法训练任务,用户每日通过API/SDK获取更新的热搜词即可。

  • 目前通过SDK调用热搜和底纹接口时,hit参数(召回个数)热搜最大是30,底纹最大是10。

  • 热词榜单API:ListStatisticLogs

流量SDK依赖:

<dependency>
    <groupId>com.aliyun.opensearch</groupId>
    <artifactId>aliyun-sdk-opensearch</artifactId>
    <version>3.5.0</version>
</dependency>

Java SDK Demo

import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
public class Hot {
    private static final String accesskey = "替换为accesskey";
    private static final String secret = "替换为secret";
    private static final String host = "替换为endpoint, 例如:http://opensearch-cn-hangzhou.aliyuncs.com";
    private static final String appName = "替换为opensearch应用名";
    private static final String HOT_API_PATH = "/apps/{app_name}/actions/hot";
    public static void main(String[] args) {
        OpenSearch openSearch = new OpenSearch(accesskey, secret, host);
        // Create OpenSearchClient
        OpenSearchClient client = new OpenSearchClient(openSearch);
        String requestPath = HOT_API_PATH.replaceAll(("\\{app_name\\}"), appName);
        Map<String, String> params = new HashMap<>();
        params.put("model_name", "your_model_name");//设置模型名称
        params.put("hit", "20");//设置查询的热搜词数据条数
        try {
            String response = client.call(requestPath, params, OpenSearchClient.METHOD_GET);
            System.out.println(JSON.toJSONString(response));
        } catch (OpenSearchClientException e) {
            e.printStackTrace();
        }
    }
}

效果优化

行为数据

基于统计搜索日志的热搜/底纹结果可以满足冷启动阶段的需求,在这个功能开始发挥作用后,建议关联热搜/底纹的用户点击事件,系统内部通过采集行为数据(from_request_iduser_id)来进一步优化效果,采集了行为数据有如下几个收益:

说明

  1. 可以统计得到各项指标,诸如引导搜索的pv、uv、无结果率等,用来衡量这个功能的使用效果,为后续的改进提供依据。 

  2. 可以分析用户群的兴趣走向,为制定运营策略提供依据。 

  3. 可以采用智能化的手段来推荐query,通过用户的点击行为对数据进行标注,可能根据不同的优化目标来训练模型(默认按点击率优化),通过模型来推荐query,具备较强的泛化能力。 

热搜/底纹引导搜索流量

API/SDK获取到的热搜/底纹结果中会返回一个request_id, 用于唯一标识这一次请求。通常,如果产品中集成了热搜/底纹结果,当终端用户点击了热搜词或底纹词后,便会以该热搜词或底纹词作为搜索词触发一次搜索请求,通过在搜索请求中将from_request_id参数设置为热搜/底纹结果返回的request_id,就可以关联这一次用户点击行为,后台通过搜索日志分析和统计了这些点击行为,就可以在业务运营报表中看到由热搜/底纹引导的搜索流量指标。如果在搜索请求中设置了user_id参数,业务运营报表中还可以看到热搜/底纹引导的搜索UV指标。

温馨提示:

  • 由于搜索的翻页请求也会被认为是独立的搜索PV,所以对于热搜/底纹引导的搜索请求翻页时候,也同样要设置from_request_id参数。

  • 搜索请求的参数详情,请查阅from_request_iduser_id的参数说明。

业务运营报表

界面介绍

热搜

可以通过【搜索算法中心-->搜索引导—->热搜与底纹】,“查看指标”进入热搜的运营报表;000000000000

也可以直接在“统计报表—->热搜报表”里查:

热搜报表

底纹

可以通过【搜索算法中心-->搜索引导—->热搜与底纹】,“查看指标”进入底纹的运营报表;66666666666

也可以直接在“统计报表—->底纹报表”里查:

底纹报表

注意

  • 热搜报表对应指标介绍可点击此处进行查看。

  • 底纹报表对应指标介绍可点击此处进行查看。