Positive, Negative and Neutral: Modeling Implicit Feedback in Session-based News Recommendation

Positive, Negative and Neutral: Modeling Implicit Feedback in Session-based News Recommendation paper review, 논문 리뷰
김호진's avatar
Sep 10, 2024
Positive, Negative and Neutral: Modeling Implicit Feedback in Session-based News Recommendation
이런 recommendation 관련 논문을 읽는건 처음이라 어떻게 읽어야 할지 헷갈릴 수 있다. 주의하기
 
소감
하나의 세션 안에서 내가 어떤 데이터를 활용할지 정의하는 것만으로 유의미한 차이를 만들어낼 수 있다는 점을 알게된 것이 가장 큰 성과
 
 
뉴스 추천에서 이전의 연구들은 next item prediction task로만 봤다. 유저의 행동에서 얻는 implicit feedback은 소홀히했음 - 무슨 뉴스를 읽었는지만 고려했다는 뜻 같다. 여기서는 positive feedback(더 오래 읽은 뉴스), negative feedback(클릭하지 않은 뉴스제목)들을 다 잘 활용하는 통합된 프레임워크를 제안한다.
 
뉴스 플랫폼에는 데이터를 쌓는걸 허락하지 않는 유저나 로그인하지 않고 읽는 게스트 유저들도 많다. 특히 한번에 그렇게 뉴스를 많이 보지 않는 사람들도 많다.
즉, 제한된 interaction만으로 좋은 추천을 해줘야한다.
일반적으로는 추천 태스크를 CTR prediction task로만 봐서 collaborative filtering이나 factorization machine만을 주로 사용한다 - 이건 유저의 히스토리 데이터가 필요한데 위의 유저군에는 데이터가 없다.(요즘도 이렇진 않겠지?)
근데 유저와의 interaction이 적을수록 가능한 모든 세세한 행동들을 활용하는게 좋다.
→ session-based recommendation : 짧은 시간 동안의 유저의 일련의 행동들에 기반한 추천
본 논문에서는 ‘특정 아티클을 클릭’하는 것 이외의 데이터들도 사용한다. 이걸 implicit feedback이라고 부른다.
notion image
이런 의문들을 가지고
  • 유저가 아티클을 클릭했으면, 그걸 진짜 좋아한건가?
    • 이전에는 그렇다고 봤다. 근데 제목에 낚여서 들어갔을 수도 있음. 그럴 때 만약 누르자마자 빠르게 다시 뒤로 나온 데이터라면 - 어떻게 해석할까
  • 유저가 아티클을 클릭 안했으면, 그걸 안좋아한다는건가?
    • 유저의 화면에 보였지만 클릭 안한 것만 그렇게 해석할 수 있다. 화면 아래에 보이지 않은건 안좋아한다고 해석할 수 없다
  • 어떻게 일시적으로 안에 유저의 특성을 만들어낼 수 있을까?
    • 같은 요일, 같은 시간에 접속하는 패턴을 가진 유저들은 비슷한 관심사와 백그라운드를 가졌을 것이라고 추측해본다
    • 아티클의 내용 뿐만 아니라 publishing time도 영향을 끼치는 요소로 해석한다.
    • -implicit neutral feedback
 
Task Definition
추천시스템이 유저 피드백 sequence를 다음 아티클의 벡터와의 유사도를 최대화하는 벡터로 모델링한다.
 
high-level overview
notion image
 
Session-based recommendation basics
In a typical session-based setting, given the prefix sequence of the session, denoted as 𝑆𝑢 = (𝑛1, 𝑛2, ..., 𝑛𝑇 ), our goal is to predict 𝑛𝑇 +1 article that the target user 𝑢 is most likely to click next.
여기서 Su를 사용해서 session representation을 만든다. 아티클 j와 inner product해서 해당 아티클이 클릭될 확률을 계산한다. 그 값으로 loss를 계산. cross entropy
notion image
 
아티클 내용도 중요하니까 word2vec 써서 아티클의 내용일 임베딩으로 만든 벡터도 사용한다.
그리고 Su sequence에서 시퀀스안의 각 데이터를 얼마나 반영할지 attention으로 계산.
따라서 최종적으로 Su의 벡터는
 
notion image
 
여기까지는 기존의 방식대로 한 것.
 
modeling time as neutral feedback
  1. Start time - 아침에 financial news읽고 저녁에 재밌는 뉴스 보는 사람들은 비슷한 임베딩일 것.
클릭마다 요일과 시간을 기록해서 (w, h)로 타임 임베딩으로 만들어서 트랜스포머 아키텍쳐에서 쿼리(Q)처럼 사용. 그리고 이 쿼리와 아티클 임베딩(V)의 연관성을 계산해서, 이 아티클에는 시간이라는 정보가 얼마나 중요한지(K) 계산해서 반영.
notion image
  1. Publish time
이것도 뭐 좀 다르지만 비슷하게 반영된다.
 
Modeling Positive Feedback
여기서 postivie implicit feedback은 그 아티클을 몇 분/초 동안 읽었는지를 의미한다.
또 위와 비슷하게 어텐션 계산해서 해당 아티클의 임베딩을 만든다.
 
Modeling Negative Feedback
이 데이터는 애매하긴하다. 클릭을 안했다고해서 안좋아하는건가? 그냥 주의깊게 못보고 지나쳤을 수도
근데 여기서는 유저에게 보였는지 안보였는지 애매하니까 클릭한 아티클의 앞뒤에 있는걸 negative sample로 사용했다(재밌네,,). 이건 특히 클릭할 확률이 낮도록 학습함.
 
사용한 데이터셋. session 같은 데이터만 남기기위해 클릭이 너무 적은건 제외하고, 30분 범위 안의 데이터들만 단위로 썼다.
notion image
 
결과. 확실히 negative는 큰 효과 없었고, neutral이 제일 효과 있는걸로 나오는게 신기했다.
notion image
 
 
 
 
Share article
Subscribe to our newsletter
RSSPowered by inblog