Platform for AI (PAI) によって提供されるCollaborative Filtering (etrec) コンポーネントは、アイテムに基づく協調フィルタリングアルゴリズムであるetrecを使用します。 このアルゴリズムは、2つの入力列を使用し、最も類似度の高い上位N個の項目を出力として返します。
コンポーネントの設定
次のいずれかの方法を使用して、Collaborative Filtering (etrec) コンポーネントを設定できます。
方法1: PAIコンソールでコンポーネントを設定する
PAIのMachine Learning Designerのパイプラインページで、Collaborative Filtering (etrec) コンポーネントのパラメーターを設定できます。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | ユーザー列 | ユーザー列の名前。 |
アイテム列 | アイテム列の名前。 | |
出力テーブルの項目間の区切り文字 | 出力テーブルの项目间の区切り文字を指定します。 デフォルトの区切り文字はスペースです。 | |
出力テーブルのキーと値の間の区切り文字 | 出力テーブルのキーと値を区切るために使用される区切り文字。 デフォルトの区切り文字はコロン (:) です。 スペースはサポートされていません。 | |
パラメーター設定 | 類似タイプ | 類似性のタイプ。 有効な値: WbCosine、asymcosine、Jaccard |
TopN | 出力テーブルで予約できる類似アイテムの最大数。 | |
計算動作 | ユーザーのアイテムが複数回表示されたときにペイロードを計算するために使用されるメソッド。 有効な値: Add、Mul、Min、Max。 説明 このパラメーターは段階的に廃止され、現在のトレーニング結果には影響しません。 | |
最小アイテム値 | userのitemsの数がこのパラメーターの値未満の場合、userの動作は無視されます。 | |
最大アイテム値 | userのitemsの数がこのパラメーターの値より大きい場合、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 | 不可 | 出力テーブル内のkeyとvalueを区切るために使用される区切り文字。 | コロン (:) |
アルファ | 不可 | similarityTypeパラメーターがasymcosineに設定されている場合の平滑化係数。 有効な値: (0,1) 。 | 0.5 |
重量 | 不可 | similarityTypeパラメーターがasymcosineに設定されている場合の重みインデックス。 | 1.0 |
演算子 | 不可 | ユーザーのアイテムが複数回表示されたときにペイロードを計算するために使用されるメソッド。 有効な値: add、mul、min、max | add |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 | 1 |
coreNum | 不可 | コアの数。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 | システムによって決定される |
例
次の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
次の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";
etrec_test_resultという名前の結果出力テーブルを表示します。
itemid
類似性
0
1:1
1
0:1