Apache Spark BatchのtALSModelプロパティ
これらのプロパティは、Spark Batchジョブのフレームワークで実行されているtALSModelを設定するために使われます。
Spark BatchのtALSModelコンポーネントは、機械学習ファミリーに属しています。
このコンポーネントは、ビッグデータ対応のTalend製品およびTalend Data Fabricで使用できます。
基本設定
[Define a storage configuration component] (ストレージ設定コンポーネントを定義) |
HDFSなどのターゲットファイルシステムへの接続の設定情報を提供するために使用する設定コンポーネントを選択します。 このチェックボックスをオフにすると、ターゲットファイルシステムはローカルシステムになります。 使用する接続設定は同じジョブ内にあることが必要です。たとえば、tHDFSConfigurationコンポーネントをジョブにドロップした場合は、このコンポーネントを選択して、所定のHDFSシステム内で結果を書き込むことができます。 |
[Feature table] (機能テーブル) |
このテーブルを完成させて、リコメンダーモデルの計算に必要な3つのエレメントを入力カラムにマッピングします。
このマップにより、tALSModelは、必要な各エレメントについて適切なタイプのデータを読み取ることができます。 |
[Training percentage] (トレーニングの割合) |
分類子モデルのトレーニングに使う入力データのパーセンテージ(10進形式で表現)を入力します。残りのデータはモデルのテストに使われます。 |
[Number of latent factors] (潜在エレメントの数) |
各ユーザーまたは製品の機能を測定する際に使うする潜在エレメントの数を入力します。 |
[Number of iterations] (反復回数) |
ジョブを実行してモデルをトレーニングする反復回数を入力します。 スタックオーバーフローの問題を回避するために、この数は30未満にする必要があります。実際には、30を超える数を使う必要が生じる前に、収束スコア(RMSEスコア)を取得できることがよくあります。 ただし、30回を超える反復を実行する必要がある場合は、ジョブの実行に使うスタックサイズを増やす必要があります。これを行うには、-Xss引数を追加する方法があります。[Run] (実行)ビューの[Advanced settings] (詳細設定)タブで、[JVM Settings] (JVM設定)テーブルに、たとえば-Xss2048kを追加します。[JVM Settings] (JVM設定)テーブルの詳細は、ジョブやルートでVMメモリの制限を指定をご覧ください。 |
[Regularization factor] (正則化係数) |
過剰適合を回避するために使う正規化数を入力します。 |
[Build model for implicit feedback data set] (暗黙的なフィードバックデータセットのモデルをビルド) |
このチェックボックスをオンにすると、tALSModelが暗黙的なデータセットを処理するようになります。 製品のランキングなどの明示的なデータセットとは対照的に、暗黙的なデータセットはユーザーの好み(ユーザーが特定の商品を購入する頻度を示すレコードなど)だけを意味します。 このチェックボックスをオフのままにすると、tALSModelは明示的なデータセットのみを処理します。 ALSモデルが暗黙的なデータセットを処理する方法に関連する詳細については、次のリンクにあるSparkのドキュメントをご覧ください:https://spark.apache.org/docs/latest/mllib-collaborative-filtering.html。 |
[Confidence coefficient for implicit training] (暗黙的トレーニングの信頼係数) |
数値を入力して、観察されたユーザー設定での信頼度を示します。 |
[Parquet model path] (Parquetモデルパス) |
使うファイルシステムで生成されたリコメンダーモデルを保管するディレクトリーを入力します。 参照用のボタンはSpark Localモードでは機能しません。お使いのディストリビューションで、Talend Studioがサポートしているその他のSpark Yarnモードを使用している場合は、同じジョブ内の設定コンポーネントで接続を適切に設定したことを確認する必要があります。使用されるファイルシステムに応じて設定コンポーネントを使用します。 |
[Parquet model name] (Parquetモデル名) |
リコメンダーモデルに使う必要がある名前を入力します。 |
詳細設定
[Set Checkpoint Interval] (チェックポイント間隔の設定) |
チェックポイントの頻度を設定するために使われます。これはデフォルト値(10)をそのまま使用することが推奨されています。 このパラメーターの値を設定する前に、チェックポイントをアクティブにし、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブでチェックポイントディレクトリーを設定するために使われます。 チェックポインティングの詳細は、Apache Sparkジョブのロギングとアクティビティのチェックポインティングをご覧ください。 |
使用方法
使用ルール |
このコンポーネントは、終了コンポーネントとして使用され、入力リンクを必要とします。 設定する必要があるパラメーターは自由パラメーターであるため、値は以前の実験や経験的推測などによって提供される場合があります。すべてのデータセットに適用できる最適値はありません。したがって、最小RMSEスコアが得られるまで、さまざまなパラメーター値のセットを使って生成するモデルをトレーニングする必要があります。このスコアは、ジョブが実行されるたびに、[Run] (実行)ビューのコンソールに出力されます。 |
[MLlib installation] (MLlibのインストール) |
Apache Spark V1.3以前のバージョンのSparkでは、Spark機械学習ライブラリーMLlibがgfortran runtimeライブラリーを使います 。このライブラリーが、使うSparkクラスターのすべてのノードに既に存在していることを確認する必要があります。 MLlibとこのライブラリーの詳細は、Sparkの関連ドキュメンテーションをご覧ください。 |
[RMSE score] (RMSEスコア) |
これらのスコアは、Project SettingsダイアログボックスのLog4jビューに次のコードを追加した時にジョブを実行すると、[Run] (実行)ビューのコンソールに出力できます。
<!-- DataScience Logger --> <logger name= "org.talend.datascience.mllib" additivity= "false" > <level value= "INFO" /> <appender-ref ref= "CONSOLE" /> </logger> これらのスコアは、Log4j INFOレベルの他の情報と共に出力されます。無関係な情報が出力されないようにするには、たとえば、この種の情報のLog4jレベルをWARNに変更します。ただし、このDataScience LoggerコードをINFOにしておく必要があります。 サブスクリプションバージョンのTalend Studioを使用している場合は、このコンポーネントのアクティビティは、log4j機能を使用して記録できます。この機能の詳細は、Log4を有効化して設定をご覧ください。 log4jロギングレベルの詳細は、Apacheのドキュメンテーション(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html)をご覧ください。 |