详情页标题前

阿里云云原生大数据计算服务 MaxCompute多类目测试-云淘科技

详情页1

本文为您介绍多类目测试的结论及测试过程。

测试结论

Proxima CE对于多类目场景的按类目检索、类目多标签检索符合预期。

测试过程

  • 测试方法。
    • case1: 生成一批多类目数据,各类目对应的文档数量为1、5、10、20、30,query数据中各类目对应的数量为5、10、20、 5、10,类目阈值假定为15,小类目的行数为2,列数为3,大类目并发度为3,topk为5,数据类型为float,维数2,距离为欧式距离, 验证最终的结果数目,以及正确性。
      各类目对应的文档数量 query数据中各类目对应的数量 类目阈值 小类目的行数 小类目的列数 大类目并发度 TopK 数据类型 维度 距离
      1、5、10、20、30 5、10、20、5、10 15 2 3 3 5 FLOAT 2 欧式距离
    • case2: 只有小类目,没有大类目时,正确性验证。数据是上面case1的数据,CATEGORY_THREASHOLD默认就是100万,也就是只有小类目。距离为计算欧式距离。
      各类目对应的文档数量 query数据中各类目对应的数量 类目阈值 小类目的行数 小类目的列数 大类目并发度 TopK 数据类型 维度 距离
      1、5、10、20、30 5、10、20、5、10 100W 2 3 5 FLOAT 2 欧式距离
    • case3: 和case2一致,距离为计算内积。
      各类目对应的文档数量 query数据中各类目对应的数量 类目阈值 小类目的行数 列数 大类目并发度 TopK 数据类型 维度 距离
      1、5、10、20、30 5、10、20、5、10 100W 2 3 5 FLOAT 2 计算内积
    • case4: 只有小类目,没有大类目,文档数量为1、5、10,query数量1、5、10,数据类型是binary,距离为hamming距离。验证最终结果数目,以及正确性。类目阈值1000000。
      各类目对应的文档数量 query数据中各类目对应的数量 类目阈值 小类目的行数 小类目的列数 大类目并发度 TopK 数据类型 维度 距离
      1、5、10 1、5、10 1000000 2 3 5 BINARY 4 Hamming距离
    • case5: 只有大类目,没有小类目时,正确性验证。数据是上面case1的数据,去掉类目1,5,10。
      各类目对应的文档数量 query数据中各类目对应的数量 类目阈值 大类目的行数 列数 大类目并发度 TopK 数据类型 维度 距离
      20、30 5、10 15 2 3 3 5 FLOAT 2 欧式距离
    • case6: query为multicategory多类目,doc数据和case1一致。
      各类目对应的文档数量 query数据中各类目对应的数量 类目阈值 小类目的行数 列数 大类目并发度 TopK 数据类型 维度 距离
      1、5、10、20、30 multicategory数据 15 2 3 3 5 FLOAT 2 欧式距离
  • 对比测试。
    • Case1:输入数据:类目1、5、10、20、30对应的文档数分别为1、5、10、20、30,query数据中类目1、5、10、20、30对应的query数目分别为5、10、20、5和10。数据类型为float,维数为2。距离为欧式距离。
      1. 数据准备。

        各类目数据生成规则为key+类目id-idx,idx~idx,类目id,例如:key1-1,1~1,1

        doc数据如下:

         key1-1,1~1,1
         key5-1,1~1,5
         ... ...
         key5-5,5~5,5
         key10-1,1~1,10
         key10-2,2~2,10
         ... ...
         key10-9,9~9,10
         key10-10,10~10,10
         key20-1,1~1,20
         ... ...
         key20-20,20~20,20
         key30-1,1~1,30
         ... ...
         key30-30,30~30,30

        query数据如下:

         key1-1,1~1,1
         ... ...
         key1-5,5~5,1
         key5-1,1~1,5
         ... ...
         key5-10,10~10,5
         key10-1,1~1,10
         ... ...
         key10-20,20~20,10
         key20-1,1~1,20
         ... ...
         key20-5,5~5,20
         key30-1,1~1,30
         ... ...
         key30-10,10~10,30
      2. 运行结果。将类目阈值假定为15,小类目的行数为2,列数为3,大类目并发度为3,topn为5,则小类目数目为3,大类目数目为2,观察最终执行结果如下,符合预期。
        +----+------------+-------+------------+----+
        | pk | knn_result | score | category   | pt |
        +----+------------+-------+------------+----+
        | key30-1 | key30-1    | 0.0   | 30         | 20210712 |
        | key30-1 | key30-2    | 2.0   | 30         | 20210712 |
        | key30-1 | key30-3    | 8.0   | 30         | 20210712 |
        | key30-1 | key30-4    | 18.0  | 30         | 20210712 |
        | key30-1 | key30-5    | 32.0  | 30         | 20210712 |
        ... ...
        | key20-5 | key20-5    | 0.0   | 20         | 20210712 |
        | key20-5 | key20-6    | 2.0   | 20         | 20210712 |
        | key20-5 | key20-4    | 2.0   | 20         | 20210712 |
        | key20-5 | key20-3    | 8.0   | 20         | 20210712 |
        | key20-5 | key20-7    | 8.0   | 20         | 20210712 |
        
        jar 命令:odpscmd -e "jar -resources proxima-ce-xl-222.jar -classpath ./proxima-ce-xl-222.jar com.alibaba.proxima2.ce.ProximaCERunner -doc_table cat_doc_table -doc_table_partition 20210712 -query_table cat_query_table -query_table_partition 20210712 -output_table cat_result_table -output_table_partition 20210712 -data_type int8 -dimension 2 -app_id 201220 -category_row_num 2 -category_col_num 3 -topk 5 -category_thread_num 3 -category_threshold 15;
    • Case2: 所有类目都是小类目,计算欧式距离,预期结果和case1的结果一致。
      1. 数据准备:与case1一致。
      2. 运行结果。预期结果和case1的结果一致,经过验证,符合预期。结果如下:
        +----+------------+-------+------------+----+
        | pk | knn_result | score | category   | pt |
        +----+------------+-------+------------+----+
        | key10-18 | key10-10   | 128.0 | 10         | 20210712 |
        | key10-18 | key10-9    | 162.0 | 10         | 20210712 |
        | key10-18 | key10-8    | 200.0 | 10         | 20210712 |
        | key10-18 | key10-7    | 242.0 | 10         | 20210712 |
        | key10-18 | key10-6    | 288.0 | 10         | 20210712 |
        ...
        | key30-8 | key30-8    | 0.0   | 30         | 20210712 |
        | key30-8 | key30-9    | 2.0   | 30         | 20210712 |
        | key30-8 | key30-7    | 2.0   | 30         | 20210712 |
        | key30-8 | key30-6    | 8.0   | 30         | 20210712 |
        | key30-8 | key30-10   | 8.0   | 30         | 20210712 |
        | key5-5 | key5-5     | 0.0   | 5          | 20210712 |
        | key5-5 | key5-4     | 2.0   | 5          | 20210712 |
        | key5-5 | key5-3     | 8.0   | 5          | 20210712 |
        | key5-5 | key5-2     | 18.0  | 5          | 20210712 |
        | key5-5 | key5-1     | 32.0  | 5          | 20210712 |
        +----+------------+-------+------------+----+
        
        jar命令:odpscmd -e "jar -resources proxima-ce-xl-222.jar -classpath ./proxima-ce-xl-222.jar com.alibaba.proxima2.ce.ProximaCERunner -doc_table cat_doc_table -doc_table_partition 20210712 -query_table cat_query_table -query_table_partition 20210712 -output_table cat_result_table -output_table_partition 20210712 -data_type int8 -dimension 2 -app_id 201220 -category_row_num 2 -category_col_num 3 -topk 5 -category_thread_num 3 -category_threshold 100;"
    • Case3: 输入数据和case2一致,区别在于case3距离为计算内积。
      1. 数据准备:和case1一致。
      2. 运行结果:符合预期。结果如下:
        +----+------------+-------+------------+----+
        | pk | knn_result | score | category   | pt |
        +----+------------+-------+------------+----+
        | key10-10 | key10-1    | 20.0  | 10         | 20210712 |
        | key10-10 | key10-2    | 40.0  | 10         | 20210712 |
        | key10-10 | key10-3    | 60.0  | 10         | 20210712 |
        | key10-10 | key10-4    | 80.0  | 10         | 20210712 |
        | key10-10 | key10-5    | 100.0 | 10         | 20210712 |
        | key10-19 | key10-1    | 38.0  | 10         | 20210712 |
        | key10-19 | key10-2    | 76.0  | 10         | 20210712 |
        | key10-19 | key10-3    | 114.0 | 10         | 20210712 |
        | key10-19 | key10-4    | 152.0 | 10         | 20210712 |
        | key10-19 | key10-5    | 190.0 | 10         | 20210712 |
        ... ...
        | key10-17 | key10-1    | 34.0  | 10         | 20210712 |
        | key10-17 | key10-2    | 68.0  | 10         | 20210712 |
        | key10-17 | key10-3    | 102.0 | 10         | 20210712 |
        | key10-17 | key10-4    | 136.0 | 10         | 20210712 |
        | key10-17 | key10-5    | 170.0 | 10         | 20210712 |
        | key30-8 | key30-16   | 256.0 | 30         | 20210712 |
        | key30-8 | key30-17   | 272.0 | 30         | 20210712 |
        | key30-8 | key30-18   | 288.0 | 30         | 20210712 |
        | key30-8 | key30-19   | 304.0 | 30         | 20210712 |
        | key30-8 | key30-20   | 320.0 | 30         | 20210712 |
        +----+------------+-------+------------+----+
        
        jar命令:odpscmd -e "jar -resources proxima-ce-xl-222.jar -classpath ./proxima-ce-xl-222.jar com.alibaba.proxima2.ce.ProximaCERunner -doc_table cat_doc_table -doc_table_partition 20210712 -query_table cat_query_table -query_table_partition 20210712 -output_table cat_result_table -output_table_partition 20210712 -data_type float -dimension 2 -app_id 201220 -category_row_num 2 -category_col_num 3 -topk 5 -category_thread_num 3 -category_threshold 100 -distance_method InnerProduct;"
    • Case4: 输入数据:类目1、5、10对应的文档数分别为1、5、10,query数据中类目1、5、10。对应的query数目分别为1、5、10。数据类型为binary,维数为4。距离为欧式距离。doc和query的数据一致。
      1. 数据准备。
        key1-1,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,1
        key5-1,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0,5
        key5-2,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0,5
        key5-3,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,5
        key5-4,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,5
        key5-5,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,5
        key10-1,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0,10
        key10-2,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0,10
        key10-3,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-4,0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-5,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-6,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-7,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-8,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-9,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
        key10-10,1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1~1,10
      2. 运行结果:符合预期。结果如下:
        +----+------------+-------+------------+----+
        | pk | knn_result | score | category   | pt |
        +----+------------+-------+------------+----+
        | key10-9 | key10-8    | 0.0   | 10         | 20210712 |
        | key10-9 | key10-9    | 0.0   | 10         | 20210712 |
        | key10-9 | key10-10   | 0.0   | 10         | 20210712 |
        | key10-9 | key10-5    | 0.0   | 10         | 20210712 |
        | key10-9 | key10-7    | 0.0   | 10         | 20210712 |
        | key5-4 | key5-5     | 0.0   | 5          | 20210712 |
        | key5-4 | key5-4     | 0.0   | 5          | 20210712 |
        | key5-4 | key5-3     | 15.0  | 5          | 20210712 |
        | key5-4 | key5-1     | 32.0  | 5          | 20210712 |
        | key5-4 | key5-2     | 32.0  | 5          | 20210712 |
        ...
        | key10-3 | key10-7    | 15.0  | 10         | 20210712 |
        | key1-1 | key1-1     | 0.0   | 1          | 20210712 |
        | key10-4 | key10-4    | 0.0   | 10         | 20210712 |
        | key10-4 | key10-3    | 0.0   | 10         | 20210712 |
        | key10-4 | key10-7    | 15.0  | 10         | 20210712 |
        | key10-4 | key10-6    | 15.0  | 10         | 20210712 |
        | key10-4 | key10-5    | 15.0  | 10         | 20210712 |
        +----+------------+-------+------------+----+
        
        jar命令:odpscmd -e "jar -resources proxima-ce-xl-222.jar -classpath ./proxima-ce-xl-222.jar com.alibaba.proxima2.ce.ProximaCERunner -doc_table cat_doc_table -doc_table_partition 20210712 -query_table cat_query_table -query_table_partition 20210712 -output_table cat_result_table -output_table_partition 20210712 -data_type binary -dimension 32 -app_id 201220 -category_row_num 2 -category_col_num 3 -topk 5 -category_thread_num 3 -category_threshold 100 -distance_method hamming;"
    • Case5: 所有类目都是大类目,预期结果和case1的结果一致,经过验证,符合预期。大类目的阈值是15,query和case1数据一致。doc数据将类目1、5、10去掉,只保留20、30。doc_table数据如下。
      1. 数据准备。query数据和case1一致,doc数据如下:
        key20-1   1~1   20
        key20-2   2~2   20
        ... ...
        key20-19   19~19   20
        key20-20   20~20   20
        key30-1   1~1   30
        key30-2   2~2   30
        ... ...
        key30-28   28~28   30
        key30-29   29~29   30
        key30-30   30~30   30
      2. 运行结果:符合预期。结果如下:
        +----+------------+-------+------------+----+
        | pk | knn_result | score | category   | pt |
        +----+------------+-------+------------+----+
        | key30-1 | key30-1    | 0.0   | 30         | 20210712 |
        | key30-1 | key30-2    | 2.0   | 30         | 20210712 |
        | key30-1 | key30-3    | 8.0   | 30         | 20210712 |
        | key30-1 | key30-4    | 18.0  | 30         | 20210712 |
        | key30-1 | key30-5    | 32.0  | 30         | 20210712 |
        | key30-2 | key30-2    | 0.0   | 30         | 20210712 |
        | key30-2 | key30-3    | 2.0   | 30         | 20210712 |
        | key30-2 | key30-1    | 2.0   | 30         | 20210712 |
        | key30-2 | key30-4    | 8.0   | 30         | 20210712 |
        | key30-2 | key30-5    | 18.0  | 30         | 20210712 |
        ... ...
        | key20-1 | key20-1    | 0.0   | 20         | 20210712 |
        | key20-1 | key20-2    | 2.0   | 20         | 20210712 |
        | key20-1 | key20-3    | 8.0   | 20         | 20210712 |
        | key20-1 | key20-4    | 18.0  | 20         | 20210712 |
        | key20-1 | key20-5    | 32.0  | 20         | 20210712 |
        ... ...
        | key20-5 | key20-5    | 0.0   | 20         | 20210712 |
        | key20-5 | key20-6    | 2.0   | 20         | 20210712 |
        | key20-5 | key20-4    | 2.0   | 20         | 20210712 |
        | key20-5 | key20-7    | 8.0   | 20         | 20210712 |
        | key20-5 | key20-3    | 8.0   | 20         | 20210712 |
        +----+------------+-------+------------+----+
        
        jar命令:odpscmd -e "jar -resources proxima-ce-xl-222.jar -classpath ./proxima-ce-xl-222.jar com.alibaba.proxima2.ce.ProximaCERunner -doc_table cat_doc_table -doc_table_partition 20210712 -query_table cat_query_table -query_table_partition 20210712 -output_table cat_result_table -output_table_partition 20210712 -data_type int8 -dimension 2 -app_id 201220 -category_row_num 2 -category_col_num 3 -topk 5 -category_thread_num 3 -category_threshold 15;"
    • Case6: query为multicategory数据,doc数据和case1一致,数据如下。
      1. 数据准备。doc数据和case1一致,query数据如下:
        key1-1;1~1;1,5,10
        key1-2;2~2;1,5,10
        key1-3;3~3;1
        key1-4;4~4;1
        key1-5;5~5;1
      2. 运行结果:符合预期。结果如下:
        +----+------------+-------+------------+----+
        | pk | knn_result | score | category   | pt |
        +----+------------+-------+------------+----+
        | key1-1 | key1-1     | 0.0   | 1          | 20210712 |
        | key1-1 | key5-1     | 0.0   | 5          | 20210712 |
        | key1-1 | key10-1    | 0.0   | 10         | 20210712 |
        | key1-1 | key10-2    | 2.0   | 10         | 20210712 |
        | key1-1 | key5-2     | 2.0   | 5          | 20210712 |
        | key1-2 | key5-2     | 0.0   | 5          | 20210712 |
        | key1-2 | key10-2    | 0.0   | 10         | 20210712 |
        | key1-2 | key5-3     | 2.0   | 5          | 20210712 |
        | key1-2 | key5-1     | 2.0   | 5          | 20210712 |
        | key1-2 | key10-1    | 2.0   | 10         | 20210712 |
        | key1-3 | key1-1     | 8.0   | 1          | 20210712 |
        | key1-4 | key1-1     | 18.0  | 1          | 20210712 |
        | key1-5 | key1-1     | 32.0  | 1          | 20210712 |
        +----+------------+-------+------------+----+
        
        jar命令:odpscmd -e "jar -resources proxima-ce-xl-222.jar -classpath ./proxima-ce-xl-222.jar com.alibaba.proxima2.ce.ProximaCERunner -doc_table cat_doc_table -doc_table_partition 20210712 -query_table cat_query_table -query_table_partition 20210712 -output_table cat_result_table -output_table_partition 20210712 -data_type int8 -dimension 2 -app_id 201220 -category_row_num 2 -category_col_num 3 -topk 5 -category_thread_num 3 -category_threshold 15  -query_multi_label true;"

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/159866.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云云原生大数据计算服务 MaxCompute使用DataHub(实时数据传输)-云淘科技

    本文为您介绍流式数据处理服务DataHub。 DataHub是MaxCompute提供的流式数据处理(Streaming Data)服务,它提供流式数据的发布(Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于流式数据的分析和应用。 DataHub同样提供流式数据归档的功能,支持流式数据归档至MaxCompute。DataHub实时数…

  • 阿里云日志服务SLS云产品日志通用操作-云淘科技

    您在各个云产品控制台开通日志功能后,即可执行日志服务相关操作。 常用操作 采集到云产品日志后,您可以执行如下操作。 操作 说明 查询和分析日志 查询和分析日志。具体操作,请参见查询和分析日志。 查询和分析时序数据 查询和分析时序数据。具体操作,请参见查询和分析时序数据。 查看原始日志 在查询和分析页面,查看原始日志。 快速分析 快速分析日志字段。具体操作,请…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云大数据开发治理平台 DataWorksLogHub(SLS)数据源-云淘科技

    LogHub(SLS)数据源为您提供读取和写入LogHub(SLS)双向通道的功能,本文为您介绍DataWorks的LogHub(SLS)数据同步的能力支持情况。 使用限制 数据集成离线写LogHub(SLS)时,由于LogHub(SLS)无法实现幂等,FailOver重跑任务时会引起数据重复。 支持的字段类型 数据集成支持读写的LogHub(SLS)字段类…

  • 阿里云云原生大数据计算服务 MaxComputeCOMBINATIONS-云淘科技

    返回输入数组元素的N元组合组成的数组。 命令格式 combinations(array(T), n) 参数说明 array:为输入数组。 n:元数。 返回值说明 返回输入数组元素的N元组合组成的数组。 如果输入数组没有重复项,则返回N元子集数组。子集是确定的但顺序不保证,子集中元素是确定的但顺序不保证。 目前n的值默认不能大于5(可通过设置odps.sql.…

  • 阿里云负载均衡访问日志概述-云淘科技

    结合阿里云日志服务,您可以通过分析传统型负载均衡的访问日志了解客户端用户行为、客户端用户的地域分布,排查问题等。 什么是CLB访问日志 CLB的访问日志功能收集了所有发送到CLB的请求的详细信息,包括请求时间、客户端IP地址、延迟、请求路径和服务器响应等。CLB作为公网访问入口,承载着海量的访问请求,您可以通过访问日志分析客户端用户行为、了解客户端用户的地域…

    阿里云负载均衡 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。