すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:共同フィルタリング (etrec)

最終更新日:Jul 22, 2024

Platform for AI (PAI) によって提供されるCollaborative Filtering (etrec) コンポーネントは、アイテムに基づく協調フィルタリングアルゴリズムであるetrecを使用します。 このアルゴリズムは、2つの入力列を使用し、最も類似度の高い上位N個の項目を出力として返します。

コンポーネントの設定

次のいずれかの方法を使用して、Collaborative Filtering (etrec) コンポーネントを設定できます。

方法1: PAIコンソールでコンポーネントを設定する

PAIのMachine Learning Designerのパイプラインページで、Collaborative Filtering (etrec) コンポーネントのパラメーターを設定できます。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

ユーザー列

ユーザー列の名前。

アイテム列

アイテム列の名前。

出力テーブルの項目間の区切り文字

出力テーブルの项目间の区切り文字を指定します。 デフォルトの区切り文字はスペースです。

出力テーブルのキーと値の間の区切り文字

出力テーブルのキーと値を区切るために使用される区切り文字。 デフォルトの区切り文字はコロン (:) です。 スペースはサポートされていません。

パラメーター設定

類似タイプ

類似性のタイプ。 有効な値: WbCosineasymcosineJaccard

TopN

出力テーブルで予約できる類似アイテムの最大数。

計算動作

ユーザーのアイテムが複数回表示されたときにペイロードを計算するために使用されるメソッド。 有効な値: AddMulMinMax

説明

このパラメーターは段階的に廃止され、現在のトレーニング結果には影響しません。

最小アイテム値

useritemsの数がこのパラメーターの値未満の場合、userの動作は無視されます。

最大アイテム値

useritemsの数がこのパラメーターの値より大きい場合、userの動作は無視されます。

平滑化要因

このパラメーターは、Similarity Typeパラメーターがasymcosineに設定されている場合にのみ有効です。

重み付け係数

このパラメーターは、Similarity Typeパラメーターがasymcosineに設定されている場合にのみ有効です。

方法2: 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

不可

出力テーブルのパーティション。

なし

similarityType

不可

類似性のタイプ。 有効な値: wbcosine、asimcosine、およびjaccard

wbcosine

topN

不可

出力テーブルで予約できる類似度が最大の項目の数。 木の数。 有効な値: 1 ~ 10000

2000

minUserBehavior

不可

ユーザー行動レコードの最小数。

2

maxUserBehavior

不可

ユーザー行動レコードの最大数。

500

itemDelimiter

不可

出力テーブル内の項目を区切るために使用される区切り文字。

バックスペース

kvDelimiter

不可

出力テーブル内のkeyvalueを区切るために使用される区切り文字。

コロン (:)

アルファ

不可

similarityTypeパラメーターがasymcosineに設定されている場合の平滑化係数。 有効な値: (0,1) 。

0.5

重量

不可

similarityTypeパラメーターがasymcosineに設定されている場合の重みインデックス。

1.0

演算子

不可

ユーザーアイテムが複数回表示されたときにペイロードを計算するために使用されるメソッド。 有効な値: add、mul、min、max

add

ライフサイクル

不可

出力テーブルのライフサイクル。

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という名前のトレーニングデータテーブルが生成されます。

    ユーザー

    アイテム

    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

    類似性

    0

    1:1

    1

    0:1