사용자가 아이템에 대한 선호를 직접 표현한 신호다. 별점, 좋아요/싫어요, 리뷰 점수가 여기 해당한다.

반대는 implicit feedback 으로, 선호를 말한 적은 없지만 행동에서 추론하는 신호다. 클릭, 시청 시간, 구매, 장바구니 담기 등이다.

두 신호의 성격 차이

explicitimplicit
신호의 뜻선호를 직접 말한 것행동에서 추론한 것
적다많다
부정 신호낮은 별점으로 표현된다관측되지 않음과 구분이 안 된다
잡음적은 편많다

explicit 의 강점은 신호가 분명하다는 것이다. 별점 1점은 싫다는 뜻이 확실하다. implicit 에서는 클릭하지 않은 것이 싫어서인지 못 봐서인지 구분되지 않는다.

약점은 양이다. 사용자 대부분은 평가를 남기지 않으므로 데이터가 희소하고, 평가를 남기는 사람과 남기지 않는 사람이 다른 집단이라 표본 자체가 치우친다. 게다가 평가를 남길지 말지는 이미 선호와 상관돼 있어서, 아주 좋았거나 아주 나빴던 경우에 몰린다. 이것이 평점 데이터가 MNAR 인 대표적인 이유다.

함께 쓰기

실무에서는 두 신호를 함께 다룬다. 종류가 다른 피드백 사이에 correlation 이 있으면, 한쪽이 다른 쪽 학습의 제약으로 작용해 도움이 된다. 별점을 남긴 아이템은 대체로 시청도 오래 했을 것이므로, 시청 시간이 별점 예측을 거들고 그 반대도 성립한다.

이 성질이 특히 유용한 이유는 explicit 이 희소하기 때문이다. 평가가 거의 없는 사용자라도 행동 로그는 쌓이므로, 풍부한 implicit 신호 위에서 학습한 표현에 적은 explicit 신호를 얹는 구조가 자연스럽다.