ਸੈਮੈਂਟਿਕ ਐਮਬੈਡਿੰਗਜ਼, ਜਿਵੇਂ ਕਿ Word2Vec ਅਤੇ GloVe, ਅਸਲ ਵਿੱਚ ਭਾਸ਼ਾ ਮਾਡਲਿੰਗ ਵੱਲ ਪਹਿਲਾ ਕਦਮ ਹਨ - ਅਜਿਹੇ ਮਾਡਲ ਬਣਾਉਣਾ ਜੋ ਕਿਸੇ ਤਰੀਕੇ ਨਾਲ ਭਾਸ਼ਾ ਦੀ ਕੁਦਰਤ ਨੂੰ ਸਮਝਦੇ (ਜਾਂ ਪ੍ਰਸਤੁਤ ਕਰਦੇ) ਹਨ।
ਭਾਸ਼ਾ ਮਾਡਲਿੰਗ ਦੇ ਪਿੱਛੇ ਮੁੱਖ ਵਿਚਾਰ ਇਹ ਹੈ ਕਿ ਉਨ੍ਹਾਂ ਨੂੰ ਅਨਸੁਪਰਵਾਈਜ਼ਡ ਢੰਗ ਨਾਲ ਅਨਲੇਬਲਡ ਡਾਟਾਸੈਟਸ 'ਤੇ ਟ੍ਰੇਨ ਕੀਤਾ ਜਾਵੇ। ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਸਾਡੇ ਕੋਲ ਬਹੁਤ ਵੱਡੀ ਮਾਤਰਾ ਵਿੱਚ ਅਨਲੇਬਲਡ ਟੈਕਸਟ ਉਪਲਬਧ ਹੈ, ਜਦਕਿ ਲੇਬਲਡ ਟੈਕਸਟ ਦੀ ਮਾਤਰਾ ਹਮੇਸ਼ਾ ਉਸ ਯਤਨ ਨਾਲ ਸੀਮਿਤ ਰਹੇਗੀ ਜੋ ਅਸੀਂ ਲੇਬਲਿੰਗ 'ਤੇ ਖਰਚ ਸਕਦੇ ਹਾਂ। ਅਕਸਰ, ਅਸੀਂ ਅਜਿਹੇ ਭਾਸ਼ਾ ਮਾਡਲ ਬਣਾਉਣ ਦੇ ਯੋਗ ਹੁੰਦੇ ਹਾਂ ਜੋ ਗੁੰਮ ਸ਼ਬਦਾਂ ਦੀ ਪੇਸ਼ਗੂਈ ਕਰ ਸਕਦੇ ਹਨ, ਕਿਉਂਕਿ ਟੈਕਸਟ ਵਿੱਚ ਕਿਸੇ ਰੈਂਡਮ ਸ਼ਬਦ ਨੂੰ ਮਾਸਕ ਕਰਨਾ ਅਤੇ ਇਸਨੂੰ ਟ੍ਰੇਨਿੰਗ ਸੈਂਪਲ ਵਜੋਂ ਵਰਤਣਾ ਆਸਾਨ ਹੈ।
ਸਾਡੇ ਪਿਛਲੇ ਉਦਾਹਰਣਾਂ ਵਿੱਚ, ਅਸੀਂ ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਸੈਮੈਂਟਿਕ ਐਮਬੈਡਿੰਗਜ਼ ਵਰਤੀਆਂ, ਪਰ ਇਹ ਦੇਖਣਾ ਦਿਲਚਸਪ ਹੈ ਕਿ ਇਹ ਐਮਬੈਡਿੰਗਜ਼ ਕਿਵੇਂ ਟ੍ਰੇਨ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਕੁਝ ਸੰਭਾਵਿਤ ਵਿਚਾਰ ਹਨ ਜੋ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ:
- N-Gram ਭਾਸ਼ਾ ਮਾਡਲਿੰਗ, ਜਦੋਂ ਅਸੀਂ N ਪਿਛਲੇ ਟੋਕਨਜ਼ (N-gram) ਦੇਖ ਕੇ ਇੱਕ ਟੋਕਨ ਦੀ ਪੇਸ਼ਗੂਈ ਕਰਦੇ ਹਾਂ।
-
ਕੰਟਿਨਿਊਅਸ ਬੈਗ-ਆਫ-ਵਰਡਸ (CBoW), ਜਦੋਂ ਅਸੀਂ ਟੋਕਨ ਸੀਕਵੈਂਸ
$W_{-N}$ , ...,$W_N$ ਵਿੱਚ ਮੱਧਲੇ ਟੋਕਨ$W_0$ ਦੀ ਪੇਸ਼ਗੂਈ ਕਰਦੇ ਹਾਂ। -
ਸਕਿਪ-ਗ੍ਰਾਮ, ਜਿੱਥੇ ਅਸੀਂ ਮੱਧਲੇ ਟੋਕਨ
$W_0$ ਤੋਂ ਨੇੜਲੇ ਟੋਕਨਜ਼ {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} ਦੀ ਪੇਸ਼ਗੂਈ ਕਰਦੇ ਹਾਂ।
ਚਿੱਤਰ ਇਸ ਪੇਪਰ ਤੋਂ
ਹੇਠਾਂ ਦਿੱਤੇ ਨੋਟਬੁੱਕਸ ਵਿੱਚ ਆਪਣੀ ਸਿੱਖਿਆ ਜਾਰੀ ਰੱਖੋ:
ਪਿਛਲੇ ਪਾਠ ਵਿੱਚ ਅਸੀਂ ਦੇਖਿਆ ਕਿ ਸ਼ਬਦ ਐਮਬੈਡਿੰਗਜ਼ ਜਾਦੂ ਵਾਂਗ ਕੰਮ ਕਰਦੇ ਹਨ! ਹੁਣ ਅਸੀਂ ਜਾਣਦੇ ਹਾਂ ਕਿ ਸ਼ਬਦ ਐਮਬੈਡਿੰਗਜ਼ ਦੀ ਟ੍ਰੇਨਿੰਗ ਕੋਈ ਬਹੁਤ ਜਟਿਲ ਕੰਮ ਨਹੀਂ ਹੈ, ਅਤੇ ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ ਅਸੀਂ ਖਾਸ ਡੋਮੇਨ ਟੈਕਸਟ ਲਈ ਆਪਣੇ ਸ਼ਬਦ ਐਮਬੈਡਿੰਗਜ਼ ਟ੍ਰੇਨ ਕਰ ਸਕਦੇ ਹਾਂ।
- ਭਾਸ਼ਾ ਮਾਡਲਿੰਗ 'ਤੇ PyTorch ਦਾ ਅਧਿਕਾਰਕ ਟਿਊਟੋਰਿਅਲ।
- Word2Vec ਮਾਡਲ ਦੀ ਟ੍ਰੇਨਿੰਗ 'ਤੇ TensorFlow ਦਾ ਅਧਿਕਾਰਕ ਟਿਊਟੋਰਿਅਲ।
- gensim ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੁਝ ਲਾਈਨਾਂ ਦੇ ਕੋਡ ਵਿੱਚ ਸਭ ਤੋਂ ਆਮ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਐਮਬੈਡਿੰਗਜ਼ ਦੀ ਟ੍ਰੇਨਿੰਗ ਇਸ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ।
ਲੈਬ ਵਿੱਚ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਇਸ ਪਾਠ ਦੇ ਕੋਡ ਨੂੰ ਸੋਧ ਕੇ CBoW ਦੀ ਬਜਾਏ ਸਕਿਪ-ਗ੍ਰਾਮ ਮਾਡਲ ਟ੍ਰੇਨ ਕਰਨ ਦੀ ਚੁਣੌਤੀ ਦਿੰਦੇ ਹਾਂ। ਵੇਰਵੇ ਪੜ੍ਹੋ
