In-batch negative sampling

HanJu Han·2025년 1월 19일
0

추천 시스템

목록 보기
42/49

Q: u1가 i2나 i3와 상호작용이 있는 경우는 없는지?

In-batch negative sampling에서 ( u1 )가 ( i2 )나 ( i3 )와 상호작용이 있는 경우는 포지티브 샘플로 간주되지 않습니다.

In-batch negative sampling은 미니배치 내에서 네거티브 샘플을 추출하는 방법이기 때문에, 미니배치에 포함된 (유저, 아이템) 쌍만을 고려합니다. 따라서 ( u1 )가 ( i2 )나 ( i3 )와 상호작용이 있는 경우는 해당 미니배치에서는 고려되지 않습니다.


상호작용이 있는 경우의 처리

만약 ( u1 )가 ( i2 )나 ( i3 )와 상호작용이 있는 경우, 이는 전체 데이터셋에서는 포지티브 샘플로 간주됩니다. 하지만 특정 미니배치에서는 다음과 같이 처리됩니다:

  1. 미니배치 구성:

    • 미니배치는 전체 데이터셋에서 무작위로 샘플링된 (유저, 아이템) 쌍으로 구성됩니다.
    • 예를 들어, 미니배치에 ( (u1, i1) ), ( (u2, i2) ), ( (u3, i3) )가 포함되었다고 가정합니다.
  2. 포지티브 샘플:

    • 미니배치 내에서 각 유저는 하나의 포지티브 아이템만 가집니다.
    • 예를 들어, ( u1 )의 포지티브 아이템은 ( i1 )입니다.
  3. 네거티브 샘플:

    • 네거티브 샘플은 미니배치 내의 다른 아이템으로 구성됩니다.
    • 예를 들어, ( u1 )의 네거티브 샘플은 ( i2 )와 ( i3 )입니다.

예시: 상호작용이 있는 경우

전체 데이터셋에서 ( u1 )가 ( i2 )와 상호작용이 있는 경우를 가정해보겠습니다.

1. 전체 데이터셋

i1i2i3
u1110
u2010
u3001
  • ( u1 )는 ( i1 )과 ( i2 )와 상호작용이 있습니다.
  • ( u2 )는 ( i2 )와 상호작용이 있습니다.
  • ( u3 )는 ( i3 )와 상호작용이 있습니다.

2. 미니배치 구성

미니배치에 ( (u1, i1) ), ( (u2, i2) ), ( (u3, i3) )가 포함되었다고 가정합니다.

3. 포지티브 샘플 행렬

미니배치 내에서 포지티브 샘플은 대각선 요소가 1인 행렬로 표현됩니다.

i1i2i3
u1100
u2010
u3001
  • ( u1 )의 포지티브 아이템은 ( i1 )입니다.
  • ( u2 )의 포지티브 아이템은 ( i2 )입니다.
  • ( u3 )의 포지티브 아이템은 ( i3 )입니다.

4. 네거티브 샘플 행렬

네거티브 샘플은 포지티브 샘플을 제외한 나머지 아이템으로 구성됩니다.

i1i2i3
u1011
u2101
u3110
  • ( u1 )의 네거티브 샘플은 ( i2 )와 ( i3 )입니다.
  • ( u2 )의 네거티브 샘플은 ( i1 )과 ( i3 )입니다.
  • ( u3 )의 네거티브 샘플은 ( i1 )과 ( i2 )입니다.

주의사항

  • 미니배치 내에서만 고려: In-batch negative sampling은 미니배치 내의 데이터만을 고려합니다. 따라서 ( u1 )가 ( i2 )와 상호작용이 있더라도, 미니배치에 ( (u1, i2) )가 포함되지 않았다면 ( i2 )는 ( u1 )의 네거티브 샘플로 간주됩니다.
  • 편향 문제: 이 방법은 인기 있는 아이템이 더 자주 네거티브 샘플로 추출되는 문제를 일으킬 수 있습니다. 이를 해결하기 위해 Sampling-Bias-Corrected 방법이 사용됩니다.

결론

In-batch negative sampling에서 ( u1 )가 ( i2 )나 ( i3 )와 상호작용이 있는 경우는 미니배치 내에서 포지티브 샘플로 간주되지 않습니다. 이는 미니배치 내에서만 네거티브 샘플을 추출하기 때문입니다. 이러한 문제를 해결하기 위해 Sampling-Bias-Corrected 방법을 사용하여 편향을 보정할 수 있습니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글