CHƯƠNG 3 PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG MƠ HÌNH
3.5. Xây dựng tập dữ liệu huấn luyện
Sau khi loại bỏ các hồ sơ dư thừa, các thơng tin cịn lại sẽ được trích xuất và biến đổi để phù hợp với mục đích của bài tốn. Để xây dựng tập dữ liệu huấn luyện (training dataset), các kinh nghiệm hiện tại của nhân viên sẽ được sử dụng để làm nhãn
(label), các kỹ năng và kinh nghiệm trước đó của nhân viên sẽ được xem là thông tin huấn luyện (feature).
Các tính năng được trích xuất từ dữ liệu thơ được mô tả như sau:
Experience: Tập chức danh công việc của nhân viên trong quá khứ theo thứ tự từ trái sang phải
Skill: Các kỹ năng mà nhân viên có
Job_title_label: Chức danh cơng việc hiện tại của nhân viên
Event: Đánh dấu kinh nghiệm làm việc của nhân viên đã kết thúc chưa, True nghĩa là nhân viên đã nghỉ việc, False nghĩa là nhân viên vẫn còn làm việc ở chức danh đó.
Duration: Thời gian làm việc ở mỗi chức danh trong quá khứ theo thứ tự từ trái sang phải
Duration_label: Thời gian làm việc của nhân viên đến thời điểm hiện tại Category_id: Đánh số thứ tự cho mỗi chức danh công việc
Hình 3.8: Dữ liệu sau khi trích xuất để phục vụ việc huấn luyện
3.6. Xây dựng mơ hình
3.6.1. Xây dựng vấn đề
Trong phần này, chúng tôi sẽ giới thiệu cách xây dựng vấn đề (problem formulation) bằng cách sử dụng phương trình tốn học và trình bày các ký hiệu được sử dụng trong luận văn.
Bảng 3.2: Các ký hiệu được sử dụng trong đề tài.
Ký hiệu Định nghĩa
𝕁𝑢
⃗⃗⃗ = {(𝐽1𝑢, 𝐽2𝑢, … , 𝐽𝑖𝑢) | 𝑢 ∈ 𝑈} Kinh nghiệm làm việc của nhân viên u theo thời gian
𝐽𝑖𝑢 = (𝑄𝑖𝑢, 𝑡𝑖𝑢) Nhân viên u làm việc với chức danh 𝑄𝑖𝑢 trong khoảng thời gian 𝑡𝑖𝑢
𝑄𝑖𝑢 Chức danh công việc thứ i của nhân viên u
𝑡𝑖𝑢 Thời gian làm việc thứ i của nhân viên u
𝕊𝑢 = {(𝑆1𝑢, 𝑆2𝑢, … , 𝑆𝑘𝑢) | 𝑢 ∈ 𝑈} Tập kỹ năng của nhân viên u
𝑆𝑘𝑢 Kỹ năng thứ k của nhân viên u
Cho 𝑢 ∈ 𝑈 biểu thị một nhân viên, 𝐽𝑖𝑢 biểu thị kinh nghiệm làm việc thứ i của
nhân viên 𝑢 . Với mỗi kinh nghiệm làm việc, ta có tập 𝐽𝑖𝑢 = (𝑄𝑖𝑢, 𝑡𝑖𝑢) gồm kinh
nghiệm làm việc tại vị trí 𝑄 trong thời gian 𝑡 của nhân viên 𝑢. Kinh nghiệm làm việc của nhân viên 𝑢 theo thời gian được biểu diễn như sau:
𝕁𝑢
⃗⃗⃗ = {(𝐽1𝑢, 𝐽2𝑢, … , 𝐽𝑖𝑢) | 𝑢 ∈ 𝑈} (6)
Tương ứng với kinh nghiệm làm việc, nhân viên 𝑢 sẽ có một danh sách các kỹ năng 𝑆𝑘𝑢 trong hồ sợ của mình. Chúng tơi biểu diễn tập kỹ năng của nhân viên 𝑢 như sau:
𝕊𝑢 = {(𝑆1𝑢, 𝑆2𝑢, … , 𝑆𝑘𝑢) | 𝑢 ∈ 𝑈} (7)
Vấn đề được đặt ra như sau
Đầu vào: Kinh nghiệm làm việc của nhân viên 𝑢 theo thời gian 𝕁⃗⃗⃗ 𝑢 và tập kỹ
năng của nhân viên 𝑢 trong hồ sơ 𝕊𝑢. Chúng tơi có dữ liệu đầu vào là:
𝕝𝑢 = (𝕁⃗⃗⃗ , 𝕊𝑢 𝑢) (8)
Đầu ra: Dự đốn chức danh cơng việc 𝑄𝑖+1𝑢 của nhân viên 𝑢 tại thời điểm tiếp theo, thời gian làm việc 𝑡𝑖+1𝑢 với chức danh 𝑄𝑖+1𝑢 và phương trình sống sót 𝑆(𝑡).
Chúng tơi có kết quả đầu ra là:
𝕆𝑢 = (𝑄𝑖+1𝑢 , 𝑡𝑖+1𝑢 , 𝑆(𝑡)) (9)
3.6.2. Thiết kế hệ thống
Ở mục này, chúng tơi trình bày mơ hình tổng qt được sử dụng trong dự án, sau đó mơ hình sẽ được giải thích chi tiết hơn ở các phần tiếp theo.
Từ bài toán ở trên, hệ thống của chúng tôi nhận dữ liệu đầu vào là tập kinh nghiệm làm việc 𝕁⃗⃗⃗ 𝑢 gồm chức danh của công việc và thời gian làm việc của ứng viên
theo.
Như đã nhắc đến ở phần lý thuyết về LSTM và cơ chế chú ý, chúng tôi đề xuất một mơ hình như sau để giải quyết vấn đề được nêu ra.
Hình 3.9: Biểu diễn đồ họa của mơ hình đề xuất bằng cách sử dụng cơ chế chú ý trong việc xác định trọng số các trạng thái ẩn từ lớp LSTM để có được thơng tin tiềm ẩn
giữa các trải nghiệm công việc
3.6.3. Nhúng từ
Để xử lý các dạng dữ liệu phong phú (văn bản tự do, tính năng số và phân loại), dữ liệu được xử lý trước bằng các phương pháp sau. Đối với tính năng văn bản tự do, chẳng hạn như chức danh và kỹ năng, chúng tôi đã sử dụng phương pháp nhúng từ để chuyển một từ thành vectơ. Sau đó, chúng tơi tính tốn giá trị trung bình của các lần nhúng cho mọi chiều tương ứng, theo cách này, chúng tôi nhận được độ dài cố định của vectơ cho văn bản tự do có độ dài khác nhau.
Để thực hiện nhúng từ, các phương thức mã hóa thường gặp gồm Word2vec [11], Skill2vec [12], Job2vec [13]. Trong mơ hình của mình, chúng tôi muốn bộ mã
hóa được thiết lập đúng với mục đích cụ thể và được tồn quyền huấn luyện nên mơ hình FastText được sử dụng để làm bộ mã hóa. Bộ mã hóa FastText đảm bảo mọi từ vựng trong tập dữ liệu đều được học và trình bày thơng tin ngữ cảnh. Hai mơ hình mã hóa (encoder model) đã được tạo ra, mơ hình mã hóa chức danh cơng việc và mơ hình mã hóa kỹ năng.
Cụ thể hơn, nhiệm vụ của bộ mã hóa giúp chuyển đổi các chức danh có độ dài khác nhau thành các vec-tơ có cùng số chiều. Máy tính khơng thể hiểu được các chức danh như “Java developer” mà chỉ hiểu được các con số.
Từ (1), (2) ta đã có tập {𝑠1𝑢, 𝑠2𝑢, … , 𝑠𝑘𝑢} là tập kỹ năng của nhân viên u và tập {𝑞1𝑢, 𝑞2𝑢, … , 𝑞𝑖𝑢} là tập các chức danh của nhân viên u. Nhúng từ của các kỹ năng và
chức danh của nhân viên được biểu diễn như sau:
𝑠𝑘 = 𝑠𝑘𝑖𝑙𝑙_𝑒𝑛𝑐𝑜𝑑𝑒𝑟(𝑆𝑘) (10)
𝑞𝑖 = 𝑗𝑜𝑏_𝑒𝑛𝑐𝑜𝑑𝑒𝑟(𝑄𝑖) (11)
Với 𝑠𝑘𝑖𝑙𝑙_𝑒𝑛𝑐𝑜𝑑𝑒𝑟 là bộ mã hóa kỹ năng, 𝑗𝑜𝑏_𝑒𝑛𝑐𝑜𝑑𝑒𝑟 là bộ mã hóa chức danh.
Hình 3.11: Biểu diễn nhúng từ của một số chức danh trong khơng gian hai chiều
Từ hình 3.11 và 3.12 chúng ta có thể nhận thấy các từ có nghĩa tương tự nhau có vị trí gần nhau trong khơng gian hai chiều. Điều này cho thấy mơ hình mã hóa kỹ năng và mơ hình mã hóa chức danh đã học được những thơng tin ẩn trong các từ. Từ đó xây dựng nên một không gian vec-tơ mà trong khơng gian đó các từ có ý nghĩa tương tự nhau sẽ được đặt vị trí gần nhau hoặc các từ có ý nghĩa tương phản nhau sẽ được đặt vị trí cách xa nhau.
Trong hình 3.9, từ sơ đồ tổng qt của mơ hình. Chúng tơi đã xử lý nhúng từ của chức danh bằng cách đưa chúng trực tiếp đến bộ nhớ dài-ngắn hạn để học các thông tin ẩn mà khơng cần một xử lý nào khác bởi vì thơng tin chức danh có tính tuần tự, từ cơng việc 1 đến công việc 2, … Mạng nhớ dài-ngắn hạn được sử dụng để trích xuất thơng tin từ dữ liệu tuần tự này.
Trong khi đó với nhúng từ của kỹ năng, chúng tôi sử dụng một lớp gộp (pooling) để trích xuất thơng tin. Nhân viên có thể có nhiều kỹ năng khác nhau, từ ít nhất một kỹ năng đến hơn 20 loại kỹ năng. Để đảm bảo rằng nhúng từ của mỗi nhân viên đều có cùng số chiều, chúng tơi sử dụng phương pháp gộp các vec-tơ nhúng kỹ năng. Cụ thể hơn là phương pháp gộp trung bình (average pooling) để có một vec-tơ kỹ năng duy nhất cho mỗi nhân viên. Lớp gộp trung bình của kỹ năng được biểu diễn như sau:
𝑥𝑠𝑘𝑖𝑙𝑙𝑢 = 𝑎𝑣𝑔(𝑠1𝑢, 𝑠2𝑢, … , 𝑠𝑘𝑢) (12)
3.6.4. Cơ chế chú ý
Sau khi nhúng từ, các chức danh công việc cùng với kỹ năng của nhân viên được đưa vào bộ nhớ dài-ngắn hạn để học cách biểu diễn các thông tin ẩn của các kinh nghiệm làm việc theo thứ tự. Chúng tôi gọi kết quả đầu ra của bộ nhớ dài-ngắn hạn là
ℎ1 ,ℎ2, ℎ𝑔. Tiếp theo cơ chế chú ý được áp dụng để thêm các trọng số cho kết quả đầu ra, cụ thể hơn cơ chế chú ý đánh trọng số khác nhau cho các thông tin khác nhau. Thông tin nào quan trọng sẽ có trọng số cao hơn, thông tin nào ít quan trọng sẽ có trọng số thấp hơn.
Cơ chế chú ý Bahdanau [8] đã được áp dụng để cải thiện hiệu suất của mơ hình mã hóa- mơ hình giải mã. Ý tưởng đằng sau cơ chế chú ý là cho phép bộ giải mã sử dụng các phần có liên quan nhất của chuỗi kinh nghiệm đầu vào một cách linh hoạt, đồng thời kết hợp các trọng số khác nhau để cung cấp thêm thơng tin cho mơ hình dự đốn.
Cơ chế chú ý Bahdanau được xây dựng như sau:
𝑒𝑡 = tanh(𝑊𝑎ℎ𝑖+ 𝑏𝑎) (13) 𝑎𝑡 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑒𝑡) (14) 𝑥𝑔 = ∑ 𝑎𝑡(ℎ𝑖) 𝑔 𝑖=1 (15)
Trong đó 𝑊𝑎, 𝑏𝑎 là các tham số huấn luyện của mơ hình, ℎ𝑖 là các thông tin ẩn đầu ra từ bộ nhớ dài-ngắn hạn, 𝑥𝑔 là vec-tơ đại diện cho kinh nghiệm thứ g sau khi đã được áp dụng cơ chế chú ý.
Các kết quả đầu ra từ cơ chế chú ý đại diện cho kinh nghiệm làm việc sẽ được cộng (concatenate) với vec-tơ nhúng từ 𝑥𝑠𝑘𝑖𝑙𝑙𝑢 đại diện cho kỹ năng của nhân viên.
3.6.5. Mơ-đun dự đốn
Trong phần này, chúng tôi sử dụng các thơng tin ẩn lấy được từ mơ hình trên và xây dựng ra 3 mơ-đun dự đốn khác nhau. Bao gồm: mơ-đun dự đốn chức danh cơng việc tiếp theo, mơ-đun dự đốn thời gian làm việc ở chức danh tiếp theo, mơ-đun dự đốn tỉ lệ nghỉ việc tại thời điểm hiện tại.
3.6.5.1 Mơ-đun dự đốn chức danh cơng việc tiếp theo
Chúng tôi xây dựng mơ-đun dự đốn chức danh của công việc tiếp theo như một bài toán phân loại đa lớp (multiclass classification). Nhiệm vụ của bài toán phân lớp là tìm một mơ hình phân lớp phù hợp để khi có dữ liệu mới thì có thể xác định được dữ liệu đó thuộc phân lớp nào. Tương tự, khi có một nhân viên mới với các kinh nghiệm làm việc trong quá khứ, chúng ta sẽ xác định nhân viên sẽ thuộc phân lớp chức danh công việc nào.
Mục đích của mơ hình huấn luyện là tìm ra hàm f(x) và thơng qua hàm f tìm được để chúng ta gán nhãn cho dữ liệu thơng qua mơ hình dự đốn phân lớp. Mơ hình được xây dựng như sau:
Hình 3.14: Quy trình dự đốn cơng việc tiếp theo
Mơ-đun dự đốn chức danh công việc tiếp theo sẽ tối ưu hàm mất mát (loss function) để tăng tỉ lệ chính xác sau mỗi bước huấn luyện (epoch). Hàm mất mát của mô-đun dự đốn chức danh cơng việc tiếp theo được định nghĩa như sau:
𝐿𝑗𝑜𝑏 𝑡𝑖𝑡𝑙𝑒𝑢 = − ∑ 𝛼𝑢∙
𝑁
𝑖=1
𝑙𝑜𝑔(𝛼̂𝑢) (16)
Với 𝛼𝑢 là chức danh thực sự của nhân viên u ở thời điểm hiện tại, 𝛼̂𝑢 là chức danh của nhân viên ở thời điểm hiện tại mà mơ-đun dự đốn được.
Hình 3.15: Một kết quả của mơ-đun dự đoán chức danh tiếp theo 3.6.5.2 Mơ-đun dự đốn thời gian làm việc ở chức danh tiếp theo
Chúng tôi xây dựng mơ-đun dự đốn thời gian làm việc ở chức danh tiếp theo như một bài tốn hồi quy tuyến tính (linear regression). Hồi quy tuyến tính là một phương pháp phân tích quan hệ giữa biến phụ thuộc Y với một hay nhiều biến độc lập X. Trong mơ hình của chúng tơi, Y là thời gian làm việc ở chức danh tiếp theo và X là các thông tin về kinh nghiệm làm việc và kỹ năng của nhân viên đã được trích xuất bởi bộ nhớ dài-ngắn hạn và cơ chế chú ý.
Mục đích của mơ hình huấn luyện là tìm ra hàm f(x) và thông qua hàm f tìm được một hàm đại diện cho thời gian làm việc dựa vào các thơng tin đầu vào. Mơ hình được xây dựng như sau
Mơ-đun dự đốn thời gian làm việc ở chức danh tiếp theo sẽ tối ưu hàm mất mát để tăng tỉ lệ chính xác sau mỗi bước huấn luyện. Hàm mất mát của mơ-đun dự đốn thời gian làm việc ở chức danh tiếp theo được định nghĩa như sau:
𝐿𝑢𝑑𝑢𝑟𝑎𝑡𝑖𝑜𝑛 = (𝛽𝑢 − 𝛽̂𝑢)2 (17)
Với 𝛽𝑢 là thời gian làm việc thực sự của nhân viên tại thời điểm hiện tại, 𝛽̂𝑢 là thời gian làm việc của nhân viên tại thời điểm hiện tại mà mơ-đun dự đốn được.
Hình 3.17: Một số kết quả của mơ-đun dự đốn thời gian làm việc 3.6.5.3 Mơ-đun dự đốn tỉ lệ nghỉ việc tại thời điểm hiện tại
Mô-đun này sử dụng phương pháp phân tích sự sống, là một mơ hình học khơng có giám sát (unsupervised learning).
Trong q trình phân tích kinh nghiệm làm việc của nhân viên, chúng tơi nhận ra rằng nếu sử dụng thời gian làm việc trong thời điểm hiện tại của nhân viên là kết quả dự đốn thì mơ hình sẽ bị thiên vị (bias). Mơ-đun dự đoán thời gian sẽ xem các cơng việc ở thời điểm hiện tại có thời gian kết thúc sớm hơn. Cụ thể hơn chúng tơi đang đối mặt với bài tốn với dữ liệu bị che bên phải (right censored data) bởi vì thời gian làm việc của nhân viên ở thời điểm hiện tại là không thể biết trước được.
Do đó, chúng tơi xây dựng một mơ hình dự đốn tỉ lệ rủi ro nghỉ việc thơng qua mơ hình rủi ro Cox. Ứng với mỗi nhân viên, dựa vào kinh nghiệm làm việc của họ mà mô-đun sẽ đưa ra một hệ số rủi ro (risk scored). Từ hệ số này chúng tôi sẽ xây dựng một hàm phân tích sự sống cho nhân viên đó.
Hình 3.18: Quy trình dự đốn tỉ lệ nghỉ việc của nhân viên
Cách tính tốn hàm mất mát trong mơ hình dự đốn rủi ro Cox. Phần khó khăn nhất là tính tốn tổng bên trong của tập rủi ro ∑𝑗 ∈ 𝑅𝑖exp (𝑥𝑗𝑇θ). Nhắc lại rằng θ ∈ Rlà các hệ số liên quan đến mỗi thông tin đầu vào của mơ hình.
Mơ hình sẽ cố gắng tìm các hệ số θ phù hợp để tối ưu hóa biểu thức sau: θ̂ = 𝑎𝑟𝑔𝑚𝑎𝑥
θ
log 𝑃𝐿(θ) = ∑𝑛𝑖=1𝛿𝑖[𝑥𝑖𝑇θ − log(∑𝑗 ∈ 𝑅𝑖exp (𝑥𝑗𝑇θ)] (18) Từ hệ số rủi ro (risk scored). Để ước lượng phương trình sống sót của mỗi nhân viên, chúng ta sử dụng phương pháp ước tính Breslow (Breslow’s estimator) [15]
Hình 3.19: Phương trình sống sót của một nhân viên
3.7. Đánh giá mơ hình
Tương ứng với mỗi mơ-đun ở trên, chúng tơi đặt ra các phương thức đánh giá khác nhau để so sánh mơ hình của mình với các mơ hình cơ sở khác.
3.7.1. Các mơ hình cơ sở
Mơ hình cơ sở (baseline model) về cơ bản là một mơ hình đơn giản hoạt động như một tham chiếu trong dự án học máy với chức năng chính là ngữ cảnh hóa các kết quả của các mơ hình được đào tạo.
Mơ hình của chúng tôi được so sánh với các mơ hình cơ sở mạnh (strong baseline model) được sử dụng rộng rãi trong nhiều nghiên cứu khác nhau. Bao gồm các mơ hình tính tốn đơn giản và các mơ hình học sâu. Các mơ hình cơ sở được sử dụng trong dự án này gồm:
• Mơ hình xuất hiện nhiều nhất (TOP): Chọn 20 chức danh cơng việc xuất hiện nhiều nhất
• Mơ hình thời gian trung bình (Average duration): Dự đốn thời gian chuyển việc là trung bình cộng của tất cả nhân viên.
• Rừng ngẫu nhiên (Random forest)
• Mơ hình hồi quy tuyến tính (Linear regression)
• Bộ nhớ dài-ngắn hạn (LSTM)
• Mơ hình dự đốn chuyển động nghề nghiệp tiếp theo với tính năng nhúng theo ngữ cảnh (Next Career Move Prediction with Contextual Embedding hay NEMO) [14]
• Bộ nhớ dài ngắn hạn kết hợp cơ chế chú ý (LSTM-Attention)
• NEMO kết hợp cơ chế chú ý (NEMO-Attention)
• Rừng sự sống ngẫu nhiên (Random survival forest) [15]
• Vec-tơ hỗ trợ sự sống (Survival support vector) [16]
• Mơ hình phân tích rủi ro Cox (Cox proporational hazard model) Kết quả của các mơ hình sẽ được trình bày kỹ hơn ở phần tiếp theo.
3.7.2. Đánh giá mơ-đun dự đốn chức danh cơng việc tiếp theo
Mơ-đun dự đốn chức danh cơng việc là một bài toán phân loại nhiều lớp nên có phương thức đánh giá thường thấy là độ chính xác (accuracy).
Độ chính xác được tính bằng số lượng chức danh mà mơ hình dự đốn chính xác chia cho tổng số lượng dự đốn.