FieldAwareFactorizationMachineTrainer 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
IEstimator<TTransformer> 확률적 그라데이션 메서드를 사용하여 학습된 필드 인식 팩터리화 머신 모델을 사용하여 대상을 예측하는 것입니다.
public sealed class FieldAwareFactorizationMachineTrainer : Microsoft.ML.IEstimator<Microsoft.ML.Trainers.FieldAwareFactorizationMachinePredictionTransformer>
type FieldAwareFactorizationMachineTrainer = class
interface IEstimator<FieldAwareFactorizationMachinePredictionTransformer>
Public NotInheritable Class FieldAwareFactorizationMachineTrainer
Implements IEstimator(Of FieldAwareFactorizationMachinePredictionTransformer)
- 상속
-
FieldAwareFactorizationMachineTrainer
- 구현
설명
입력 및 출력 열
입력 레이블 열 데이터는 Boolean이어야 합니다. 입력 기능 열 데이터는 알려진 크기의 벡터 Single여야 합니다.
이 트레이너는 다음 열을 출력합니다.
출력 열 이름 | 열 유형 | 설명 | |
---|---|---|---|
Score |
Single | 모델에서 계산한 바인딩되지 않은 점수입니다. | |
PredictedLabel |
Boolean | 점수 부호에 따라 예측된 레이블 음수 점수는 false 에 양수 점수는 true 에 매핑됩니다. |
|
Probability |
Single | true를 레이블로 갖는 점수를 보정하여 계산된 확률입니다. 확률 값은 [0, 1] 범위에 있습니다. |
이 트레이너를 만들려면 FieldAwareFactorizationMachineFieldAwareFactorizationMachine 또는 FieldAwareFactorizationMachine(옵션)을 사용합니다.
하나의 기능 열만 지원할 수 있는 다른 이진 분류자와 달리 필드 인식 팩터리화 컴퓨터는 여러 기능 열을 사용할 수 있습니다. 각 열은 일부 기능의 컨테이너로 표시되며 이러한 컨테이너를 필드라고 합니다. 모든 기능 열은 부동 소수자 벡터여야 하지만 해당 차원은 다를 수 있습니다. 기능을 다른 필드로 분할하는 동기는 서로 다른 배포의 기능을 독립적으로 모델링하는 것입니다. 예를 들어 온라인 게임 스토어에서 사용자 프로필과 게임 프로필에서 만든 기능을 두 개의 다른 필드에 할당할 수 있습니다.
트레이너 특성
기계 학습 작업 | 이진 분류 |
정규화가 필요한가요? | 예 |
캐싱이 필요한가요? | 아니요 |
Microsoft.ML 외에도 필요한 NuGet | 없음 |
ONNX로 내보낼 수 있습니다. | 예 |
배경
팩터리화 머신 제품군은 감독 학습 문제에 대한 강력한 모델 그룹입니다. 2010년 스테펜 렌들(Steffen Rendle)의 팩터리화 머신 논문에서 처음 소개되었습니다. 나중에 일반화된 버전 중 하나인 필드 인식 팩터리화 머신은 최근 추천 시스템 및 클릭률 예측 콘테스트에서 중요한 예측 모듈이 되었습니다. 예를 들어 Steffen Rendle의 2012년 KDD-Cup(트랙 1 및 트랙 2), 크리테오, 아바즈, 아웃브레인의 Kaggle 클릭 예측 챌린지에서 성공한 솔루션을 참조하세요.
팩터리화 머신은 기능 결합이 예측하려는 신호와 매우 상관 관계가 있는 경우에 특히 강력합니다. 중요한 결합을 형성할 수 있는 기능 쌍의 예로는 음악 권장 사항의 사용자 ID 및 음악 ID가 있습니다. 데이터 세트가 조밀한 숫자 기능으로만 구성된 경우 팩터리화 머신의 사용은 권장되지 않거나 일부 기능화를 수행해야 합니다.
점수 매기기 함수
필드 인식 팩터리화 컴퓨터는 다양한 필드의 기능 벡터를 스칼라 점수로 매핑하는 점수 매기기 함수입니다. 모든 $m$ 기능 열이 긴 기능 벡터 $\textbf{x} \in {\mathbb R}^n$ 및 ${\mathcal F}(j)$에 연결되어 $j$-th 기능의 필드 들여쓰기를 나타낸다고 가정합니다. 해당 점수는 $\hat{y}(\textbf{x}) = \langle \textbf{w}, \textbf{x} \rangle + \sum_{j = 1}^n \sum_{j' = j + 1}^n \langle \textbf{v}_{j, {\mathcal F}(j')}, \textbf{v}_{j', {\mathcal F}(j)} \rangle x_j x_{j'}$, 여기서 $\langle \cdot, \cdot \rangle$ 내부 제품 연산자, $\textbf{w} \in {\mathbb R}^n$ 선형 계수를 저장합니다. 및 $\textbf{v}_{j, f}\in {\mathbb R}^k$는 $f$-th 필드의 대기 공간에서 $j$-th 기능의 표현입니다. $k$는 사용자가 지정한 잠재 차원입니다.
예측된 레이블은 $\hat{y}$의 부호입니다. $\hat{y} > 0$이면 이 모델은 true를 예측합니다. 그렇지 않으면 false를 예측합니다.
현장 인식 팩터리화 머신에 대한 체계적인 소개는 이 문서를 참조하세요.
학습 알고리즘 세부 정보
구현된 FieldAwareFactorizationMachineTrainer 알고리즘은 확률적 그라데이션 메서드를 기반으로 합니다. 알고리즘 세부 정보는 이 온라인 문서의 알고리즘 3에 설명되어 있습니다. 최소화된 손실 함수는 로지스틱 손실이므로 학습된 모델을 비선형 로지스틱 회귀로 볼 수 있습니다.
사용 예제에 대한 링크는 참고 섹션을 확인하세요.
메서드
Fit(IDataView) |
를 학습하고 반환합니다 FieldAwareFactorizationMachinePredictionTransformer. |
Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters) |
FieldAwareFactorizationMachineTrainer 이미 학습된 및/또는 유효성 검사 데이터를 FieldAwareFactorizationMachinePredictionTransformer사용하여 학습을 |
GetOutputSchema(SchemaShape) |
변환기에 대한 스키마 전파입니다. 입력 스키마가 제공된 스키마와 같으면 데이터의 출력 스키마를 반환합니다. |
확장 메서드
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
추정기 체인에 '캐싱 검사점'을 추가합니다. 이렇게 하면 다운스트림 추정기가 캐시된 데이터에 대해 학습됩니다. 여러 데이터 전달을 수행하는 트레이너 앞에 캐싱 검사점이 있는 것이 좋습니다. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
추정기가 지정된 경우 호출된 대리 Fit(IDataView) 자를 호출할 래핑 개체를 반환합니다. 예측 도구가 적합한 항목에 대한 정보를 반환하는 것이 중요한 경우가 많습니다. 따라서 Fit(IDataView) 메서드는 일반 ITransformer개체가 아닌 구체적으로 형식화된 개체를 반환합니다. 그러나 동시에 IEstimator<TTransformer> 개체가 많은 파이프라인으로 형성되는 경우가 많으므로 변환기를 가져올 추정기가 이 체인의 어딘가에 묻혀 있는 위치를 통해 EstimatorChain<TLastTransformer> 추정기 체인을 빌드해야 할 수 있습니다. 이 시나리오에서는 이 메서드를 통해 fit이 호출되면 호출될 대리자를 연결할 수 있습니다. |
적용 대상
추가 정보
- FieldAwareFactorizationMachineTrainer.Options
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String[], String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, FieldAwareFactorizationMachineTrainer+Options)