Deep Natural Language Processing for LinkedIn Search Systems

SUNGYOON LEE·2024년 1월 14일
0

Abstract

  • 본 논문에서는 검색 시스템의 대표적인 5개의 태스크에 대해서 설명한다.
  • 대표적인 5개의 task를 살펴봄으로써, 독자는 3가지 질문에 대한 정답을 찾을 수 있다.
    • NLP 기술은 언제 검색 시스템에 도움이 되고, 언제 도움이 되지 않을까?
    • 검색 시스템 상의 대기 시간 문제를 어떻게 해결할 수 있을까?
    • 모델을 어떻게 강건하게 만들것인가?

Search Systems at LinkedIn

  • 링크드인은 기본적으로 여러 vertical search를 수행하고 있다. 이러한 vertical search의 예시로는 people, job, company등 특정 도메인에 맞춘 검색이다.
  • 또한 federated search도 수행하고 있다. federated search란 vetrical search를 혼합한 검색이다.
  • 다음은 검색 파이프라인에 대한 그림이다.
  • 위의 파이프라인에서 각각의 컴포넌트가 어떠한 역할을 하고 있는지 먼저 알아보자.
  • Language Understanding: 2개의 컴포넌트(Language Generation, Doc Retrieval & Ranking)에서 중요한 feature들을 전달해주기 위한 역할을 수행하고 있다.
    • Raw Query를 입력으로 받게 되면, Language Understanding의 목적에 맞게 쿼리를 이해해야 한다.
    • Query Intention: 유저가 쿼리를 통해 무엇을 하고자 하는지 파악해야 한다.
    • NER: 유저의 쿼리 내에 각각의 엔티티에 대한 속성을 파악하여 쿼리가 무엇을 검색하고자 하였는지 파악한다.
    • Entity Disambiguation: 유저가 예를 들어, '애플'이라는 검색어를 검색하였을 때, 이 엔티티의 속성이 회사인지, 아니면 과일인지 등에 대한 모호함이 발생할 수 있기 때문에 고려해야할 부분이다.
  • Language Generation: 입력으로 받은 쿼리는 오타나 모호한 표현이 포함되어 있을 수 있다. 따라서 3가지 부분(Auto Completion, Spell Check, Query Suggestion)을 통해 오타 또는 모호한 표현을 바꿔 새로운 쿼리로 다시 생성된다. 이후 다시 Language Understanding과정을 거친다.
  • Document retrieval & ranking: 주어진 쿼리에 적절한 검색 결과를 최종 결과로 도출해내는 컴포넌트이다.

  • 다음은 이러한 검색 파이프라인을 구축하기 위한 5가지 대표적인 task이다.

Search Tasks

그럼 지금부터 task 및 컴포넌트들을 하나씩 알아보자.

Query Intent Prediction

  • Introduction

    • 이 task는 링크드인에서는 federated search로 사용된다.
    • Query intent predition을 통해 7개(people, job, feed, company, group, school, event)의 vertical search를 수행한다.
    • 예측된 의도는 downstream task에 중요한 feature가 된다. 이러한 feature를 통해 어떠한 연관있는 도메인의 정보(document)를 추출해올지 결정한다.
  • Approach

    • CNN을 통해 해결.
    • semantic 정보를 가지고 있는 text 임베딩과 수작업으로 만든 feature들(직접 정의한 feature 같음.)을 합쳐서을 가지고 비선형적으로 분류하기 위해 hidden layer를 활용하여 의도 예측.
  • Experiments

    • 학습 방식은 라벨이 있는 걸로 보아서 supervised learning 방식으로 학습한 것으로 보임.
    • 라벨은 유저의 클릭 행동 로그에 따라 라벨링됨.
    • 유저가 특정 쿼리를 입력하고 특정 문서를 클릭을 하게 된다. -> 특정 문서에 대한 라벨은 입력한 유저의 쿼리이다.
    • 2400만개의 쿼리를 학습에 활용. 5만개의 dev와 test 데이터셋 구축
    • 양방향 LSTM 모델도 테스트 함.
    • vocab 사이즈 10만개, 임베딩 차원은 64 등등으로 학습 세팅
  • Results

    • 베이스라인은 logistic regression 모델을 활용했지만, CNN과 LSTM을 활용한 모델이 쿼리의 의도를 더 잘 파악함.
    • feature의 의미를 더 잘 포착한 것으로 보임.

Query Tagging

  • Introduction
    • 쿼리 태깅의 목표는 쿼리 내의 개체들의 속성을 파악하기 위한 것이다.
    • 링크드인에서는 쿼리 내의 개체들 중 다음과 같은 속성에 대해 주목했다.
      • first name
      • last name
      • company name
      • school name
      • geolocation
      • title
      • skill
    • 이러한 feature들이 구성된 후, downstream task(query intent prediction, search ranking)를 위해 활용됐다.
  • Approach
    • 쿼리 태깅은 쿼리 데이터에 대한 NER문제이다.
    • 실제 모델은 세 가지(character based, word based, lexicon based) 카테고리에 대한 feature들을 활용한다. ※ lexicon은 특정 어휘를 뜻하는 것이다.
    • 유저가 만든 lexicon feature들을 활용함. 예를들어, 링크드인에는 유저 프로필에 '김철수(이름)'과 같이 다양한 데이터가 존재하는데 이를 사전으로 구성을 잘 해놓는 것이다. 그리고 이후에 활용하는 것이다.
    • CRF보다 더 나은 SCRF(Semi-markov conditional random field)를 활용함.
    • 또한 LSTM-CRF, LSTM-SCRF등도 활용함.
      -> 아무래도 2021년 논문이다 보니, 지금은 생성 모델과 같은 사전학습이 되어있는 모델을 통해 CRF의 단점을 더 개선했을 것으로 생각됨.
  • Experiments
    • federated search 부분에서 수집된 쿼리를 활용. 직접 라벨링.
    • 10만개의 쿼리 train set, 5천개의 dev, test set.
  • Results
    • LSTM구조보다는 lexicon feature가 성능 향상에 중요한 영향을 미침.

Document Ranking

  • Introduction
    • 쿼리, 검색자의 프로필, retrieved된 문서가 주어지면, 이 task의 목표는 각각의 document의 연관 score를 계산해서, 랭킹을 메기는 것이다.
    • Latency에 대해 많이 고려해야 하는 부분이다. 왜냐하면 document 랭킹을 메길 때, 수천 개의 document에 대해 계산을 해야하기 때문이다.
  • Approach
    • NLP based 모델 아키텍처는 위의 그림과 같이 구성함.
  • Results
    • 위의 모델을 people search와 help center의 score 차이는 데이터의 장르 차이로 보임.
      -> help center에서는 쿼리 자체가 문맥을 통해 길게 구성되어 들어오고, people search에는 단어와 같은 방식으로 들어오므로 이에 따라 사용해야할 모델이 다를 수도 있다고 생각함.
      -> 이를 통해 우리가 하려는 task의 데이터 구성이 어떻게 되어 있고, 어떤 데이터가 적합하며, 입력으로 들어오는 것은 통상적으로 어떻게 구성되어 있는지에 대한 고민을 해야함. 따라서 추가적인 feature가 필요한지에 대한 여부도 결정할 수 있을 듯함.
profile
매일 매일 한 걸음씩 나아가고자 합니다.

0개의 댓글

관련 채용 정보