본문 바로가기
공부/인공지능

Job Skills extraction with LSTM and Word Embeddings

by 혼밥맨 2021. 1. 14.
반응형

Job Skills extraction with LSTM and Word Embeddings


1. Abstract
 - 본 논문에서 직업 기술 (Jobs Skills) 추출 문제를 해결하기 위해 몇 가지 비지도 (Unsupervised) 및 지도 기계 학습 기법 (Supervised machine learning technique)을 비교했다.
 - 이 논문은 텍스트 문서에서 관련 기술을 추출하기 위해 워드 임베딩과 결합된 LSTM(Long Short Term Memory) 딥러닝 네트워크의 적용을 제안한다. 논문에서 제안된 접근 방식은 또한 아직 확인되지 않은 새로운 기술과 새로운 기술을 식별하는 것을 목표로 한다.

2. Introduction
 - 직무 기술 추출 (Job Skills extraction)은 구직 웹사이트와 소셜 커리어 네트워킹 사이트에 대해 도전적인 과제입니다. 사용자 프로필에서 텍스트로 특정 부분을 식별하는 데 초점을 둡니다.
 - 직무 기술 (Job Skills)은 구직 이력서 및 회사별 구인 게시물 간의 연결고리입니다.
 - 새로운 구인 게시물과 이력서에서 기술을 식별하는 것은 이러한 격차를 해소하고 구직자와 채용 기관에 길을 제공할 수 있는 중요한 문제이다.
 - 직무 기술 추출 (Job skills extraction) 은 종종 정적인 기술 사전 (a static dictionary of skills)에 대한 매칭과 같은 전통적인 기술에 의해 해결되지만, 이 접근 방식은 새로운 기술로 확장되지 않는다. 직무 기술 사전을 업데이트하는 것은 수동적이고, 특정 도메인에 매핑되는 올바른 기술을 식별하기 위해 도메인 전문가가 많은 시간을 필요로 한다.
 - 본 논문에서 텍스트 사전 (text corpus)에서 관련 기술을 추출하기 위해 비지도 및 지도 기계 학습 기법(unsupervised and supervised machine learning)의 조합을 시험해 보았다. LSTM과 Word Embedding를 결합하여 모델 성능이 크게 향상되는 것을 관찰했습니다.

3. Getting Data

 - 가장 일반적인 데이터 세트는 사용자 프로필/이력 및 구인 게시물 (job posting)입니다. 이 문제를 해결하기 위해 학습 데이터 세트를 데이터 과학 범주에 속하는 구인 게시물 (job posting)으로 제한했습니다.
 - 데이터 과학 카테고리에 게시된 온라인 구직 웹 사이트에서 8개의 채용 게시물을 가져왔습니다. 데이터 집합이 매우 작습니다. 이를 부트스트랩 및 교육 데이터 세트로 사용했습니다. 구인 게시물 (Job post) 내용에 특별한 주의를 기울이지 않고 임의로 선택하였습니다.


4. Unsupervised and self-supervised approach
 - 초기 접근 방식(Initial approaches)은 비지도 학습(Unsupervised learning)과 자체 감독 학습(Self-supervised learning)을 적용하여 텍스트 그룹을 형성하고, 문서에서 흥미로운 키워드와 주제를 식별하기 위해 데이터 세트에서 패턴을 찾는 것이었다.

4.1 Topic Modelling
 - 토픽 모델링(Topic modeling)은 텍스트 문서에서 추상적인 토픽을 추출하기 위한 비지도 접근법 (Unsupervised approach)입니다. 본인이 수집한 8개의 구인 게시물 (Job posting)에서 생성된 텍스트 말뭉치(text corpus)에서 5개의 토픽을 식별했습니다.
 - 각 주제별로 주제에 가장 빈도가 높은 키워드 5개를 추가로 추출했습니다.
 - 추출하기 위해 unigrams와 bigrams를 모두 추가했습니다.


 - 토픽 모델링(Topic modeling)은 데이터, 과학, 기계, 학습, 분석 등과 같은 관련 키워드와 함께 문맥을 잘 식별했습니다.
 - 한편, 토픽 모델링은 관심이 있는 관련 기술들의 전체 세트를 제공하지 않았습니다.

4.2 Word Representations - Word2Vec
 - Word2Vec는 유사한 맥락에서 사용되는 키워드를 식별할 수 있는 자체 지도 신경망 (Self-supervised neural network)이며 제공된 키워드 집합에 대한 관련 기술과 키워드를 추출하는 데 사용할 수 있다. 이 아이디어는 토픽 모델링을 기반으로 확장되는 것입니다.
 - 기본 키워드는 토픽 모델링에서 추출할 수 있으며, 동일한 맥락에서 사용된 모든 직무 능력 (Job skills)과 키워드는 Word2Vec에서 추출할 수 있습니다. 
 - Word2Vec을 앞서 소개된 8개의 구인 게시물에서 생성한 데이터 세트로 학습시켰습니다. 직무 능력 (Job skills)과 키워드 목록을 새로 얻기 위해 섹션 4.1에서 추출한 일련의 고유한 키워드를 전달했습니다.


 - Word2Vec은 다음과 같은 몇 가지 기술을 식별하는데 좋은 성과를 거두었습니다.
 - 'Python', 'Pxpective', 'A.I', 'Analysis', 'SQL', 'R', 'M.L' 등 몇 가지 유용한 기술을 식별하는 데 사용할 수 있었습니다.
 - 반대로 Word2Vec는 유용한 기술을 추출하는 것 보다 더 많은 노이즈를 추출하여 결과를 이상적으로 만드는 데에는 거리가 있었습니다.
 - 추출된 키워드는 유용했고 데이터 과학 영역을 대표하기도 했지만 결과에 노이즈가 많았으며 유용한 기술을 노이즈에서 분리하는 것은 어려운 작업이었습니다.
 - Tip: Word2Vec 정확도는 더 많은 텍스트 말뭉치와 구인 게시물 데이터를 제공함으로써 향상시킬 수 있습니다.

5. Supervised Modelling Approach
 - 나는 텍스트 말뭉치(text  corpus)가 학습 데이터 셋(train data set)에 표시될 수 있는 다양한 방법을 연구했습니다.
 - 이 기술은 알려진 기술/레이블링에만 적용되며 아직 알려지지 않은 새로운 기술/새로운 기술로는 확장되지 않기 때문에 데이터셋에서 단순한 스킬 분류기(Simple skill classifier)를 사용하고 싶지는 않았습니다.
 - 한 가지 훌륭한 접근법이 훈련 데이터로 언어와 문법의 사용을 제안한 연구에서 언급되었습니다.

5.1 Understanding grammar
 - 모든 텍스트 말뭉치 (text corpus)는 언어 스타일과 관련된 문법을 가지고 있다. 문법은 문장에서 패턴을 찾기 위해 조사될 수 있고, 그 다음에 우리의 기술을 정의하는 문구를 정의하는데 사용될 수 있다. 본 논문에서는 Spacy와 NLTK 라이브러리 기술을 사용하여 텍스트 코퍼스 (text corpus)를 분석했습니다.


5.2 Preparing training data
 - 텍스트 말뭉치 (text corpus)에서 모든 명사구를 추출하기 위해 Spcay 라이브러리를 사용했습니다. 이 모든 추출된 구문에서 데이터 세트를 만들었습니다.


 - 데이터 세트에서 skill 또는 not_skill로 레이블을 지정하여 트레인 세트 (train set)를 생성했습니다.
 - 논문의 동기는 어떤 형태의 기술을 나타내는 관련 문구를 식별하고 관련 없는 명사 구절에서 분리하는 것이다.
 - 이것이 스킬 추출기 (skill extraction) 의 중심을 구성합니다. 레이블이 지정된 데이터 집합은 아래 표에 표시된 대로 생성됩니다.
 - skill/not_skill 분류에 이 데이터 집합을 사용합니다.


 - 학습 데이터 (train data)는 수동(manually)으로 라벨링되었습니다. 그렇게 명사구의 학습 데이터 세트를 천 개 만들었습니다. 레이블된 어구들은 전문지식이 아닌 단순한 직관으로 표시되었다.
 - '기술 리더에게 영향을 미치는 검증된 능력 (proven ability to influence technical leaders)'과 같은 문구는 거의 없없지만, 해당 문구에는 데이터 과학 관련 도구/토큰이 없기 때문에 non-skill으로 분류되었다.


5.3 Word Embeddings + Convolution
 -  간단한 워드 임베딩 분류기는 5.2에서부터 준비된 데이터 세트를 기반으로  교육되었습니다.
 - 새로운 명사 구절 (new noun phrases)은 우리가 추출하기를 원하는 직무 기술 (Job skills)을 가진 구인 게시물 (Job postings)에서 생성되었습니다.
 - 새로운 명사구절들은 우리의 모델과 대조된다.
 - 스킬로 분류된 모든 명사 구절들은 명사 키워드 추출에 선택되었습니다.
 - 이것들은 우리가 추출한 직무 기술(job skills)입니다.


 - 워드 임베딩은 많은 유용한 기술들을 구인 게시물에서 뽑아낼 수 있었다.


5.4 LSTM + Word Embeddings
 - LSTM은 텍스트 데이터 분야에 있어서 매우 인기 있는 딥러닝 기법입니다.
 - LSTM과 함께 워드 임베딩 (Word Embedding)을 사용하면 직무 능력 분류(Job skills classification)의 정확도가 향상되고 섹션 5.3에 사용된 동일한 게시물에서 훨씬 더 많은 키워드를 추출할 수 있습니다.

 

6. Comparing Results
 - LSTM과 워드 임베딩 (Word Embedding)이 결합된 LSTM은 동일한 테스트 구인 게시물에서 최상의 결과를 보였습니다.
 - 또한 학습 데이터 (train data)는 매우 작은 데이터 세트였고 여전히 직무 능력 추출 (Job skills extraction)에 매우 적절한 결과를 보였습니다.
 - 데이터가 많을수록 모형의 정확도가 향상됩니다.



7. Extending to different job category
 - 이 모델은 데이터 과학 범주 대해 학습되었고, 데이터 과학 이외의 범주에 대해 동일한 모델을 테스트하고 싶었습니다.
 - 동일한 모델이 "토목 기사 범주"에 적용되었고 결과는 매우 만족스러웠다.
 - 모형의 정확도가 일관된 이유는 구인 게시물(job postings)의 문법구조가 같기 때문이다.
 - 모든 구인 게시물들 (Job postings)은 직무 능력 (Job skills)이 명사구로 표현되는 유사한 언어 구조로 작성되었습니다.

Skills extracted via word embeddings network:

Skills extracted via LSTM + Word embeddings network:



8. limitations of model
 - 모델의 핵심 교육 데이터 세트가 명사구이기 때문에, 만약 구인 게시물 (job posting)이 동일한 언어 구조를 따르지 않는다면, 모델 성능은 더 나빠질 것입니다.
 - 많은 직업 게시물들이 동사 구문으로 나타나는데, 이 경우 동사 구문과 함께 새로운 훈련 데이터 세트를 만들고 새로운 모델을 만들어야 할 것이다.
 - 이 LSTM 기반 모델은 구인 게시물 (job posting)에서 자격요건 (requirements), empty quote 등과 같이 매우 적은 양의 노이즈가 추출되어 있습니다.
 - 일부 텍스트 정리 또는 키워드 정리를 추가하여 이러한 문제를 방지할 수 있습니다.

9. future work
 - 미래에 할 수 있는 연구는 동사 구문에 의해 정의된 잡 프로필에서 다양한 모델들을 시험해 보는 것입니다.
 - 또 워드 임베딩 대신 문장 임베딩을 시도하여 여러 개의 교차 작업 범주에 대해 일반화할 수 있는지 확인할 수 있습니다.

10. conclusion
 - LSTM과 Word Embedding (워드 임베딩)은 텍스트 코퍼스 (자료집, 문집)에서 유용한 정보를 추출하는 강력하고 간단한 방법입니다.
 - 네트워크는 매우 작은 데이터 세트을 교육함으로써 적절한 결과를 제공할 수 있었으며 다른 직업 범주 (job category)로 확장될 수 있었습니다.
- 또한 모델에서는 작업 스킬의 정적 목록이나 정적 스킬 분류자도 사용하지 않습니다. 이를 통해 모델은 알려진 스킬 집합 (known skills)으로 제한되지 않고 새로운 스킬 (new skills)을 습득할 수 있습니다.

11. Acknowledgement
 - 미리 출판된 논문들과 블로그를 보고 공부함으로써 논문을 작성할 수 있었습니다. 논문 작성을 위해 참조한 모든 블로그와 논문은 참조란에 적어두었습니다. 모델 훈련/학습을 위해 구인공고 데이터를 얻은 구인구직사이트를 방문했습니다. 그리고 모델 훈련/학습을 위해 다양한 Python libararies를 이용했습니다. 예를 들어, Keras, Pandas, NLTK, Spacy, Sklearn 등등. 이 모든 툴들이 있었기에 연구가 가능했습니다.


12. References
Author Information
Nikita Sharma, Student, Master of Data Science and
Innovation, University of Technology Sydney - UTS,
Sydney, Australia. Sept 2019.
============================

 

코드 설명이 없는게 조금 아쉽다.

반응형

댓글