소프트맥스 학습

이전 페이지에서는 소프트맥스 레이어를 심층 레이어에 통합하는 방법을 설명했습니다. 신경망 네트워크입니다. 이 페이지에서는 사용할 수 있습니다.

학습 데이터

소프트맥스 학습 데이터는 쿼리 특성 \(x\) 및 사용자가 상호작용한 항목으로 구성된 벡터( 확률 분포 \(p\)). 이러한 테스트는 다음 그림 모델의 변수는 모델이 학습한 서로 다른 레이어에 있습니다 다음에서 주황색으로 표시되어 있습니다. 있습니다. 모델은 일반적으로 확률적 경사하강법입니다.

소프트맥스 심층신경망 학습을 보여주는 이미지

네거티브 샘플링

손실 함수가 두 확률 벡터를 비교하므로 \(p, \hat p(x) \in \mathbb R^n\) (정답과 각각 모델의 출력을 계산하여 손실의 기울기 (단일 쿼리의 경우 \(x\))는 코퍼스 크기가 너무 크면 \(n\) 엄청나게 많은 비용이 듭니다.

양수 항목에 대해서만 경사를 계산하도록 시스템을 설정할 수 있습니다. (정답 벡터에서 활성 상태인 항목) 그러나 시스템에서 양성 쌍에서만 학습하므로 모델은 접히는 문제를 겪을 수 있습니다. 확인하시기 바랍니다.

접이식
반으로 접은 평면의 이미지에는 쿼리를 나타내는 3개의 서로 다른 정사각형 그룹과 항목을 나타내는 원이 있습니다. 각 그룹은 색상이 다르며 쿼리는 동일한 그룹의 항목에만 상호작용합니다. 다음 그림에서 각 색상이 검색어 및 항목 카테고리를 보여줍니다. 각 쿼리 (정사각형으로 표시)만 대부분 같은 색상의 항목 (원으로 표시됨)과 상호작용합니다. 예를 들어 YouTube에서는 카테고리마다 각기 다른 언어를 사용합니다. 일반적인 사용자는 대부분 특정 언어로 된 동영상과 상호작용합니다.

모델은 주어진 데이터의 쿼리/항목 임베딩을 배치하는 방법을 색깔이 서로 비교하여 색깔이 서로 어떻게 변하고 있는지를 색상)이지만 다른 색상의 임베딩이 동일한 영역에 위치할 수 있습니다. 큰 영향을 줄 수 있습니다. 이 현상은 광섬유에서 폴딩으로 표시하는 경우, 쿼리 시점에 잘못된 추천으로 이어질 수 있습니다. 모델이 한 항목의 최고 점수를 잘못 예측했을 때 확인할 수 있습니다

제외 예는 '관련성 없음' 라벨이 지정된 항목입니다. 할 수 있습니다. 학습 중에 모델 음성 예시를 보여주면 서로 다른 그룹의 임베딩은 서로 푸시되어야 합니다.

모든 항목을 사용하여 경사를 계산하는 대신 긍정적인 항목만 사용하기 때문에 (모델이 특정 예측을 할 가능성이 낮기 때문에) 네거티브 샘플링을 사용할 수 있습니다. 더 정확히 말하면 여러분은 다음 항목을 사용한 근사치 경사

  • 모든 포함 항목 (타겟 라벨에 표시되는 항목)
  • 제외 항목 샘플 ( \({1, …, n}\)의\(j\) )

제외 항목을 샘플링하는 방법에는 여러 가지가 있습니다.

  • 균일하게 샘플링할 수 있습니다.
  • 이 값이 높은 항목 j에 더 높은 확률을 부여할 수 있습니다. \(\psi(x) . V_j\)점 직관적으로 이러한 예는 경사에 가장 많이 기여하는 부분) 이러한 예는 하드 네거티브라고 합니다

행렬 분해와 소프트맥스 비교

DNN 모델은 행렬 분해의 많은 제한사항을 해결하지만 일반적으로 학습과 쿼리에 더 많은 비용이 듭니다 아래 표에는 중요한 차이점에 대해 알아보겠습니다.

행렬 분해 소프트맥스 DNN
쿼리 특성 포함하기 쉽지 않습니다. 포함될 수 있습니다.
콜드 스타트 어휘가 없는 상황을 쉽게 처리하지 못함 쿼리 또는 항목을 만들 수 있습니다 일부 휴리스틱을 사용할 수 있습니다 (예: 새 쿼리, 유사한 쿼리의 평균 임베딩). 새로운 쿼리를 손쉽게 처리합니다.
접이식 손쉽게 접기 이를 사용하여 WALS에서 관찰되지 않은 가중치를 조정할 수 있습니다. 접히기 쉽습니다. 사용해야 함 네거티브 샘플링 또는 중력과 같은 기법이 필요합니다.
학습 확장성 대규모로 쉽게 확장 가능 수억 개 이상의 항목을 포함할 수 있지만 희소 행렬입니다. 대규모로 확장하기 어려움 확인할 수 있습니다 해싱, 네거티브 샘플링 등
확장성 제공 임베딩 U, V는 정적이고 후보 세트를 미리 계산하여 저장할 수 있습니다. 항목 임베딩 V는 정적임 저장할 수 있습니다

쿼리 임베딩은 일반적으로 계산해야 하므로 모델을 학습하는 데 있습니다.

요약:

  • 일반적으로 대규모 코퍼스에는 행렬 분해가 더 나은 선택입니다. 확장이 더 쉽고, 쿼리 비용이 저렴하며, 접히는 빈도가 낮습니다.
  • DNN 모델은 맞춤설정된 선호도를 더 잘 캡처할 수 있지만 쿼리하기가 더 어렵고 쿼리 비용이 더 많이 듭니다 DNN 모델이 권장됨 스코어링을 위한 행렬 분해까지, DNN 모델은 관련성을 더 잘 포착할 수 있습니다 또한 일반적으로 접히는 것에 대한 허용이 되는 경우도 있습니다. 관련이 있다고 가정하는 사전 필터링된 후보 세트의 순위를 매깁니다.