# tALSModel

特定のユーザー製品のインタラクティブデータに基づいて、ユーザーランキング製品に関連付けられたマトリクスを生成します。

このマトリクスは、これらのユーザーの好みを推定するためにtRecommendが使います。

tALSModelはSparkを利用して、特定の製品に対するユーザーの好みに関する大量の情報を処理します。

先行するSparkコンポーネントからこの種の情報を受け取り、これらの情報セットに対してALS (Alternating Least Squares)計算を実行して、微調整された製品リコメンダーモデルを生成し、Parquet形式の特定のファイルシステムに書き込みます。

ローカルモードでは、Apache Spark 2.4.0以降のバージョンがサポートされています。

デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、[機能マネージャーを使って機能をインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/install-features-to-talend-studio)をご覧ください。

## Apache Spark BatchのtALSModelプロパティ

これらのプロパティは、Spark Batchジョブのフレームワークで実行されているtALSModelを設定するために使われます。

Spark BatchのtALSModelコンポーネントは、機械学習ファミリーに属しています。

このコンポーネントは、ビッグデータ対応のTalend製品およびTalend Data Fabricで利用できます。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| [Define a storage configuration component] (ストレージ設定コンポーネントを定義) | HDFSなどのターゲットファイルシステムへの接続の設定情報を提供するために使用する設定コンポーネントを選択します。<br><br>このチェックボックスをオフにすると、ターゲットファイルシステムはローカルシステムになります。<br><br>使用する接続設定は同じジョブ内にあることが必要です。たとえば、tHDFSConfigurationコンポーネントをジョブにドロップした場合は、このコンポーネントを選択して、所定のHDFSシステム内で結果を書き込むことができます。 |
| [Feature table] (機能テーブル) | このテーブルを完成させて、リコメンダーモデルの計算に必要な3つのエレメントを入力カラムにマッピングします。<br><br><ul> <li> <p> <span>[Input column] (入力カラム)</span>: 使う入力カラムをドロップダウンリストから選択します。 </p> <p>これらの選択したカラムには、ユーザーID、製品ID、評価が含まれている必要があり、データは数値である必要があります。</p> </li> <li> <p> <span>[Feature type] (機能タイプ)</span>: 選択した各入力カラムをマッピングする必要があるエレメントを選択します。3つのエレメントは、<span>User_ID</span>、<span>Product_ID</span>、<span>Rating</span>です。</p> </li> </ul><br><br>このマップにより、tALSModelは、必要な各エレメントについて適切なタイプのデータを読み取ることができます。 |
| [Training percentage] (トレーニングの割合) | 分類子モデルのトレーニングに使う入力データのパーセンテージ(10進形式で表現)を入力します。残りのデータはモデルのテストに使われます。 |
| [Number of latent factors] (潜在エレメントの数) | 各ユーザーまたは製品の機能を測定する際に使うする潜在エレメントの数を入力します。 |
| [Number of iterations] (反復回数) | ジョブを実行してモデルをトレーニングする反復回数を入力します。<br><br>スタックオーバーフローの問題を回避するために、この数は30未満にする必要があります。実際には、30を超える数を使う必要が生じる前に、収束スコア(RMSEスコア)を取得できることがよくあります。<br><br>ただし、30回を超える反復を実行する必要がある場合は、ジョブの実行に使うスタックサイズを増やす必要があります。これを行うには、-Xss引数を追加する方法があります。[Run] (実行)ビューの[Advanced settings] (詳細設定)タブで、[JVM Settings] (JVM設定)テーブルに、たとえば*-Xss2048k*を追加します。[JVM Settings] (JVM設定)テーブルの詳細は、[ジョブやルートでVMメモリの制限を指定](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/specifying-limits-of-vm-memory-for-job-or-route)をご覧ください。 |
| [Regularization factor] (正則化係数) | 過剰適合を回避するために使う正規化数を入力します。 |
| [Build model for implicit feedback data set] (暗黙的なフィードバックデータセットのモデルをビルド) | このチェックボックスをオンにすると、tALSModelが暗黙的なデータセットを処理するようになります。<br><br>製品のランキングなどの明示的なデータセットとは対照的に、暗黙的なデータセットはユーザーの好み(ユーザーが特定の商品を購入する頻度を示すレコードなど)だけを意味します。<br><br>このチェックボックスをオフのままにすると、tALSModelは明示的なデータセットのみを処理します。<br><br>ALSモデルが暗黙的なデータセットを処理する方法に関連する詳細については、次のリンクにあるSparkのドキュメントをご覧ください:https://spark.apache.org/docs/latest/mllib-collaborative-filtering.html。 |
| [Confidence coefficient for implicit training] (暗黙的トレーニングの信頼係数) | 数値を入力して、観察されたユーザー設定での信頼度を示します。 |
| [Parquet model path] (Parquetモデルパス) | 使うファイルシステムで生成されたリコメンダーモデルを保管するディレクトリーを入力します。<br><br>参照用のボタンはSpark Localモードでは機能しません。お使いのディストリビューションで、Talend Studioがサポートしているその他のSpark Yarnモードを使用している場合は、同じジョブ内の設定コンポーネントで接続を適切に設定したことを確認する必要があります。使用されるファイルシステムに応じて設定コンポーネントを使用します。 |
| [Parquet model name] (Parquetモデル名) | リコメンダーモデルに使う必要がある名前を入力します。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Set Checkpoint Interval] (チェックポイント間隔の設定) | チェックポイントの頻度を設定するために使われます。これはデフォルト値(10)をそのまま使用することが推奨されています。<br><br>このパラメーターの値を設定する前に、チェックポイントをアクティブにし、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブでチェックポイントディレクトリーを設定するために使われます。<br><br>チェックポインティングの詳細は、[Apache Sparkジョブのロギングとアクティビティのチェックポインティング](https://help.qlik.com/talend/ja-JP/components/8.0/spark-batch/logging-and-checkpointing-activities-of-your-apache-spark-job-spark-batch-component-if-you)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、終了コンポーネントとして使用され、入力リンクを必要とします。<br><br>設定する必要があるパラメーターは自由パラメーターであるため、値は以前の実験や経験的推測などによって提供される場合があります。すべてのデータセットに適用できる最適値はありません。したがって、最小RMSEスコアが得られるまで、さまざまなパラメーター値のセットを使って生成するモデルをトレーニングする必要があります。このスコアは、ジョブが実行されるたびに、[Run] (実行)ビューのコンソールに出力されます。 |
| [MLlib installation] (MLlibのインストール) | Apache Spark V1.3以前のバージョンのSparkでは、Spark機械学習ライブラリーMLlibが*gfortran runtime*ライブラリーを使います 。このライブラリーが、使うSparkクラスターのすべてのノードに既に存在していることを確認する必要があります。<br><br>MLlibとこのライブラリーの詳細は、Sparkの関連ドキュメンテーションをご覧ください。 |
| [RMSE score] (RMSEスコア) | これらのスコアは、Project SettingsダイアログボックスのLog4jビューに次のコードを追加した時にジョブを実行すると、[Run] (実行)ビューのコンソールに出力できます。<br><br>```<br><!-- DataScience Logger --><br><logger name= "org.talend.datascience.mllib" additivity= "false" ><br><level value= "INFO" /><br><appender-ref ref= "CONSOLE" /><br></logger><br>```<br><br>これらのスコアは、Log4j INFOレベルの他の情報と共に出力されます。無関係な情報が出力されないようにするには、たとえば、この種の情報のLog4jレベルをWARNに変更します。ただし、この*DataScience Logger*コードをINFOにしておく必要があります。<br><br>サブスクリプションバージョンのTalend Studioを使用している場合は、このコンポーネントのアクティビティは、*log4j*機能を使用して記録できます。この機能の詳細は、[Log4を有効化して設定](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/studio-configure-log4j)をご覧ください。<br><br>log4jロギングレベルの詳細は、Apacheのドキュメンテーション(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html)をご覧ください。 |