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가 필요한지에 대한 여부도 결정할 수 있을 듯함.