全部產品
Search
文件中心

Platform For AI:協同過濾etrec

更新時間:Jul 13, 2024

etrec是基於item的協同過濾演算法,輸入為兩列,輸出為item之間的相似性TopN。

組件配置

您可以使用以下任意一種方式,配置協同過濾etrec組件參數。

方式一:可視化方式

Designer工作流程頁面配置組件參數。

頁簽

參數

描述

IO/欄位設定

user列名

使用者列名。

item列名

物品列名。

輸出表中item之間的分隔字元

配置輸出表中物品之間的分隔字元,預設分隔符號為空白格。

輸出表中KV之間的分隔字元

配置輸出表中索引值對(KV)之間的分隔字元,預設為半形冒號(:),不支援使用空格。

參數設定

相似性類型

支援wbcosineasymcosinejaccard類型。

TopN

輸出結果中最多保留的相似物品數量。

計算行為

如果同一使用者的某個物品出現多次時,payload進行的計算行為。系統支援addmulminmax行為。

說明

該參數即將下線,目前對訓練效果無影響。

最小物品值

如果某useritem數小於該值,則忽略該user的行為。

最大物品值

如果某useritem數大於該值,則忽略該user的行為。

平滑因子

相似性類型asymcosine時,該參數生效。

權重係數

相似性類型asymcosine時,該參數生效。

方式二:PAI命令方式

使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼

PAI -name pai_etrec
    -project algo_public
    -DsimilarityType="wbcosine"
    -Dweight="1"
    -DminUserBehavior="2"
    -Dlifecycle="28"
    -DtopN="2000"
    -Dalpha="0.5"
    -DoutputTableName="etrec_test_result"
    -DmaxUserBehavior="500"
    -DinputTableName="etrec_test_input"
    -Doperator="add"
    -DuserColName="user"
    -DitemColName="item"

參數

是否必選

描述

預設值

inputTableName

輸入表的名稱。

userColName

輸入表中的user列名。

itemColName

輸入表中的item列名。

inputTablePartitions

輸入表中,參與訓練的分區名稱。

全表

outputTableName

輸出表的名稱。

outputTablePartition

輸出表的Partition。

similarityType

相似性類型。取值範圍為{wbcosine,asymcosine,jaccard}

wbcosine

topN

相似性最大的N個item。取值範圍為1~10000。

2000

minUserBehavior

最小使用者行為。

2

maxUserBehavior

最大使用者行為。

500

itemDelimiter

輸出表中item之間的分隔字元。

空格

kvDelimiter

輸出表中key與value之間的分隔字元。

半形冒號(:)

alpha

Asymcosine的平滑因子,範圍(0,1)。

0.5

weight

Asymcosine的權重指數。

1.0

operator

如果同一user出現相同的item,則payload進行的計算行為。取值範圍為{add,mul,min,max}

add

lifecycle

輸出結果表的生命週期。

1

coreNum

核心數。

預設自動分配

memSizePerCore

單個核心的記憶體,單位為MB。

預設自動分配

樣本

  1. 使用SQL語句,產生訓練資料。

    drop table if exists etrec_test_input;
    create table etrec_test_input
    as
    select
        *
    from
    (
        select
            cast(0 as string) as user,
            cast(0 as string) as item
        union all
            select
                cast(0 as string) as user,
                cast(1 as string) as item
        union all
            select
                cast(1 as string) as user,
                cast(0 as string) as item
        union all
            select
                cast(1 as string) as user,
                cast(1 as string) as item
    ) a;

    產生的訓練資料表etrec_test_input如下。

    user

    item

    0

    0

    0

    1

    1

    0

    1

    1

  2. 使用PAI命令提交訓練參數。

    drop table if exists etrec_test_result;
    PAI -name pai_etrec
        -project algo_public
        -DsimilarityType="wbcosine"
        -Dweight="1"
        -DminUserBehavior="2"
        -Dlifecycle="28"
        -DtopN="2000"
        -Dalpha="0.5"
        -DoutputTableName="etrec_test_result"
        -DmaxUserBehavior="500"
        -DinputTableName="etrec_test_input"
        -Doperator="add"
        -DuserColName="user"
        -DitemColName="item";
  3. 查看結果輸出表etrec_test_result

    itemid

    similarity

    0

    1:1

    1

    0:1