ನನ್ನ ಹೆಸರು ಪಾವೆಲ್ ಪಾರ್ಕ್ಹೋಮೆಂಕೊ, ನಾನು ಎಂಎಲ್ ಡೆವಲಪರ್. ಈ ಲೇಖನದಲ್ಲಿ, ನಾನು Yandex.Zen ಸೇವೆಯ ರಚನೆಯ ಬಗ್ಗೆ ಮಾತನಾಡಲು ಮತ್ತು ತಾಂತ್ರಿಕ ಸುಧಾರಣೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತೇನೆ, ಅದರ ಅನುಷ್ಠಾನವು ಶಿಫಾರಸುಗಳ ಗುಣಮಟ್ಟವನ್ನು ಹೆಚ್ಚಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿದೆ. ಈ ಪೋಸ್ಟ್ನಿಂದ ನೀವು ಕೆಲವೇ ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಲಕ್ಷಾಂತರ ಡಾಕ್ಯುಮೆಂಟ್ಗಳಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಸೂಕ್ತವಾದವುಗಳನ್ನು ಹೇಗೆ ಕಂಡುಹಿಡಿಯುವುದು ಎಂಬುದನ್ನು ಕಲಿಯುವಿರಿ; ದೊಡ್ಡ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನ ನಿರಂತರ ವಿಭಜನೆಯನ್ನು ಹೇಗೆ ಮಾಡುವುದು (ಮಿಲಿಯನ್ಗಟ್ಟಲೆ ಕಾಲಮ್ಗಳು ಮತ್ತು ಹತ್ತಾರು ಮಿಲಿಯನ್ ಸಾಲುಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ) ಇದರಿಂದ ಹೊಸ ದಾಖಲೆಗಳು ತಮ್ಮ ವೆಕ್ಟರ್ ಅನ್ನು ಹತ್ತಾರು ನಿಮಿಷಗಳಲ್ಲಿ ಸ್ವೀಕರಿಸುತ್ತವೆ; ವೀಡಿಯೊಗಾಗಿ ಉತ್ತಮ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಪಡೆಯಲು ಬಳಕೆದಾರ-ಲೇಖನ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ವಿಭಜನೆಯನ್ನು ಮರುಬಳಕೆ ಮಾಡುವುದು ಹೇಗೆ.

ನಮ್ಮ ಶಿಫಾರಸು ಡೇಟಾಬೇಸ್ ವಿವಿಧ ಸ್ವರೂಪಗಳ ಲಕ್ಷಾಂತರ ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: ನಮ್ಮ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನಲ್ಲಿ ರಚಿಸಲಾದ ಪಠ್ಯ ಲೇಖನಗಳು ಮತ್ತು ಬಾಹ್ಯ ಸೈಟ್ಗಳು, ವೀಡಿಯೊಗಳು, ನಿರೂಪಣೆಗಳು ಮತ್ತು ಕಿರು ಪೋಸ್ಟ್ಗಳಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ. ಅಂತಹ ಸೇವೆಯ ಅಭಿವೃದ್ಧಿಯು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ತಾಂತ್ರಿಕ ಸವಾಲುಗಳೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ. ಅವುಗಳಲ್ಲಿ ಕೆಲವು ಇಲ್ಲಿವೆ:
- ಕಂಪ್ಯೂಟಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ವಿಭಜಿಸಿ: ಎಲ್ಲಾ ಭಾರೀ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಆಫ್ಲೈನ್ನಲ್ಲಿ ಮಾಡಿ ಮತ್ತು ನೈಜ ಸಮಯದಲ್ಲಿ 100-200 ms ಗೆ ಜವಾಬ್ದಾರರಾಗಲು ಮಾದರಿಗಳ ತ್ವರಿತ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮಾತ್ರ ನಿರ್ವಹಿಸಿ.
- ಬಳಕೆದಾರರ ಕ್ರಮಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಿ. ಇದನ್ನು ಮಾಡಲು, ಎಲ್ಲಾ ಈವೆಂಟ್ಗಳನ್ನು ತಕ್ಷಣ ಶಿಫಾರಸುದಾರರಿಗೆ ತಲುಪಿಸುವುದು ಮತ್ತು ಮಾದರಿಗಳ ಫಲಿತಾಂಶಗಳ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರುವುದು ಅವಶ್ಯಕ.
- ಫೀಡ್ ಅನ್ನು ಮಾಡಿ ಇದರಿಂದ ಹೊಸ ಬಳಕೆದಾರರಿಗೆ ಅದು ಅವರ ನಡವಳಿಕೆಗೆ ತ್ವರಿತವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ. ಸಿಸ್ಟಂಗೆ ಹೊಸದಾಗಿ ಸೇರ್ಪಡೆಗೊಂಡ ಜನರು ತಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆ ಶಿಫಾರಸುಗಳನ್ನು ಪ್ರಭಾವಿಸುತ್ತದೆ ಎಂದು ಭಾವಿಸಬೇಕು.
- ಹೊಸ ಲೇಖನವನ್ನು ಯಾರಿಗೆ ಶಿಫಾರಸು ಮಾಡಬೇಕೆಂದು ತ್ವರಿತವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ.
- ಹೊಸ ವಿಷಯದ ನಿರಂತರ ಹೊರಹೊಮ್ಮುವಿಕೆಗೆ ತ್ವರಿತವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸಿ. ಪ್ರತಿದಿನ ಹತ್ತು ಸಾವಿರ ಲೇಖನಗಳು ಪ್ರಕಟವಾಗುತ್ತವೆ ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಹಲವು ಸೀಮಿತ ಜೀವಿತಾವಧಿಯನ್ನು ಹೊಂದಿವೆ (ಹೇಳಿ, ಸುದ್ದಿ). ಇದು ಚಲನಚಿತ್ರಗಳು, ಸಂಗೀತ ಮತ್ತು ಇತರ ದೀರ್ಘಾವಧಿಯ ಮತ್ತು ದುಬಾರಿ ವಿಷಯದಿಂದ ಅವರನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ.
- ಜ್ಞಾನವನ್ನು ಒಂದು ಡೊಮೇನ್ ಪ್ರದೇಶದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ವರ್ಗಾಯಿಸಿ. ಶಿಫಾರಸ್ಸು ವ್ಯವಸ್ಥೆಯು ಪಠ್ಯ ಲೇಖನಗಳಿಗಾಗಿ ಮಾದರಿಗಳನ್ನು ತರಬೇತುಗೊಳಿಸಿದ್ದರೆ ಮತ್ತು ನಾವು ಅದಕ್ಕೆ ವೀಡಿಯೊವನ್ನು ಸೇರಿಸಿದರೆ, ನಾವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಾದರಿಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದು ಇದರಿಂದ ಹೊಸ ಪ್ರಕಾರದ ವಿಷಯವು ಉತ್ತಮ ಶ್ರೇಣಿಯನ್ನು ಪಡೆಯುತ್ತದೆ.
ನಾವು ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದ್ದೇವೆ ಎಂದು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ.
ಅಭ್ಯರ್ಥಿಗಳ ಆಯ್ಕೆ
ಶ್ರೇಯಾಂಕದ ಗುಣಮಟ್ಟದಲ್ಲಿ ವಾಸ್ತವಿಕವಾಗಿ ಯಾವುದೇ ಕ್ಷೀಣಿಸದೆ, ಕೆಲವು ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಪರಿಗಣನೆಯಲ್ಲಿರುವ ದಾಖಲೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸಾವಿರಾರು ಬಾರಿ ಕಡಿಮೆ ಮಾಡುವುದು ಹೇಗೆ?
ನಾವು ಅನೇಕ ML ಮಾದರಿಗಳಿಗೆ ತರಬೇತಿ ನೀಡಿದ್ದೇವೆ, ಅವುಗಳ ಆಧಾರದ ಮೇಲೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ರಚಿಸಿದ್ದೇವೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಶ್ರೇಣೀಕರಿಸುವ ಮತ್ತೊಂದು ಮಾದರಿಯನ್ನು ತರಬೇತಿ ನೀಡಿದ್ದೇವೆ ಎಂದು ಭಾವಿಸೋಣ. ಎಲ್ಲವೂ ಚೆನ್ನಾಗಿರುತ್ತದೆ, ಆದರೆ ಲಕ್ಷಾಂತರ ಡಾಕ್ಯುಮೆಂಟ್ಗಳಿದ್ದರೆ ಮತ್ತು 100-200 ಎಂಎಸ್ಗಳಲ್ಲಿ ಶಿಫಾರಸುಗಳನ್ನು ನಿರ್ಮಿಸಬೇಕಾದರೆ ನೀವು ಎಲ್ಲಾ ಡಾಕ್ಯುಮೆಂಟ್ಗಳಿಗೆ ನೈಜ ಸಮಯದಲ್ಲಿ ಎಲ್ಲಾ ಚಿಹ್ನೆಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಮತ್ತು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಮಿಲಿಯನ್ಗಳಿಂದ ನಿರ್ದಿಷ್ಟ ಉಪವಿಭಾಗವನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು ಕಾರ್ಯವಾಗಿದೆ, ಅದನ್ನು ಬಳಕೆದಾರರಿಗೆ ಶ್ರೇಣೀಕರಿಸಲಾಗುತ್ತದೆ. ಈ ಹಂತವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಅಭ್ಯರ್ಥಿ ಆಯ್ಕೆ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಅದಕ್ಕೆ ಹಲವಾರು ಅವಶ್ಯಕತೆಗಳಿವೆ. ಮೊದಲನೆಯದಾಗಿ, ಆಯ್ಕೆಯು ಬೇಗನೆ ಆಗಬೇಕು, ಆದ್ದರಿಂದ ಶ್ರೇಯಾಂಕಕ್ಕೆ ಸಾಧ್ಯವಾದಷ್ಟು ಸಮಯವನ್ನು ಬಿಡಲಾಗುತ್ತದೆ. ಎರಡನೆಯದಾಗಿ, ಶ್ರೇಯಾಂಕಕ್ಕಾಗಿ ದಾಖಲೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಬಹಳವಾಗಿ ಕಡಿಮೆ ಮಾಡಿದ ನಂತರ, ನಾವು ಬಳಕೆದಾರರಿಗೆ ಸಂಬಂಧಿಸಿದ ದಾಖಲೆಗಳನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಸಂಪೂರ್ಣವಾಗಿ ಸಂರಕ್ಷಿಸಬೇಕು.
ಅಭ್ಯರ್ಥಿ ಆಯ್ಕೆಯ ನಮ್ಮ ತತ್ವವು ವಿಕಸನಗೊಂಡಿದೆ ಮತ್ತು ಈ ಸಮಯದಲ್ಲಿ ನಾವು ಬಹು-ಹಂತದ ಯೋಜನೆಗೆ ಬಂದಿದ್ದೇವೆ:

ಮೊದಲನೆಯದಾಗಿ, ಎಲ್ಲಾ ದಾಖಲೆಗಳನ್ನು ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ, ಮತ್ತು ಪ್ರತಿ ಗುಂಪಿನಿಂದ ಹೆಚ್ಚು ಜನಪ್ರಿಯ ದಾಖಲೆಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. ಗುಂಪುಗಳು ಸೈಟ್ಗಳು, ವಿಷಯಗಳು, ಕ್ಲಸ್ಟರ್ಗಳಾಗಿರಬಹುದು. ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರಿಗೆ, ಅವರ ಇತಿಹಾಸದ ಆಧಾರದ ಮೇಲೆ, ಅವರಿಗೆ ಹತ್ತಿರವಿರುವ ಗುಂಪುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಅವರಿಂದ ಉತ್ತಮ ದಾಖಲೆಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. ನೈಜ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಹತ್ತಿರವಿರುವ ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಾವು kNN ಸೂಚಿಯನ್ನು ಸಹ ಬಳಸುತ್ತೇವೆ. kNN ಸೂಚಿಯನ್ನು ನಿರ್ಮಿಸಲು ಹಲವಾರು ವಿಧಾನಗಳಿವೆ; ನಮ್ಮದು ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡಿದೆ (ಹೈರಾರ್ಕಿಕಲ್ ನ್ಯಾವಿಗೇಬಲ್ ಸ್ಮಾಲ್ ವರ್ಲ್ಡ್ ಗ್ರಾಫ್ಗಳು). ಇದು ಕೆಲವು ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಮಿಲಿಯನ್ಗಳ ಡೇಟಾಬೇಸ್ನಿಂದ ಬಳಕೆದಾರರಿಗೆ N ಹತ್ತಿರದ ವೆಕ್ಟರ್ಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಕ್ರಮಾನುಗತ ಮಾದರಿಯಾಗಿದೆ. ನಾವು ಮೊದಲು ನಮ್ಮ ಸಂಪೂರ್ಣ ಡಾಕ್ಯುಮೆಂಟ್ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಆಫ್ಲೈನ್ನಲ್ಲಿ ಇಂಡೆಕ್ಸ್ ಮಾಡುತ್ತೇವೆ. ಸೂಚ್ಯಂಕದಲ್ಲಿ ಹುಡುಕಾಟವು ತ್ವರಿತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದರಿಂದ, ಹಲವಾರು ಬಲವಾದ ಎಂಬೆಡಿಂಗ್ಗಳಿದ್ದರೆ, ನೀವು ಹಲವಾರು ಸೂಚಿಕೆಗಳನ್ನು ರಚಿಸಬಹುದು (ಪ್ರತಿ ಎಂಬೆಡಿಂಗ್ಗೆ ಒಂದು ಸೂಚ್ಯಂಕ) ಮತ್ತು ಪ್ರತಿಯೊಂದನ್ನು ನೈಜ ಸಮಯದಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದು.
ಪ್ರತಿ ಬಳಕೆದಾರರಿಗಾಗಿ ನಾವು ಇನ್ನೂ ಹತ್ತು ಸಾವಿರ ದಾಖಲೆಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಎಲ್ಲಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಎಣಿಸಲು ಇದು ಇನ್ನೂ ಬಹಳಷ್ಟು ಆಗಿದೆ, ಆದ್ದರಿಂದ ಈ ಹಂತದಲ್ಲಿ ನಾವು ಲಘು ಶ್ರೇಣಿಯನ್ನು ಬಳಸುತ್ತೇವೆ - ಕಡಿಮೆ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಹಗುರವಾದ ಭಾರೀ ಶ್ರೇಣಿಯ ಮಾದರಿ. ಭಾರೀ ಮಾದರಿಯು ಮೇಲ್ಭಾಗದಲ್ಲಿ ಯಾವ ದಾಖಲೆಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ ಎಂಬುದನ್ನು ಊಹಿಸುವುದು ಕಾರ್ಯವಾಗಿದೆ. ಅತಿ ಹೆಚ್ಚು ಮುನ್ಸೂಚಕವನ್ನು ಹೊಂದಿರುವ ದಾಖಲೆಗಳನ್ನು ಹೆವಿ ಮಾಡೆಲ್ನಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ, ಅಂದರೆ ಶ್ರೇಯಾಂಕದ ಕೊನೆಯ ಹಂತದಲ್ಲಿ. ಈ ವಿಧಾನವು ಬಳಕೆದಾರರಿಗೆ ಪರಿಗಣಿಸಲಾದ ಡಾಕ್ಯುಮೆಂಟ್ಗಳ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಹತ್ತಾರು ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಮಿಲಿಯನ್ಗಳಿಂದ ಸಾವಿರಕ್ಕೆ ಕಡಿಮೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ರನ್ಟೈಮ್ನಲ್ಲಿ ALS ಹೆಜ್ಜೆ
ಕ್ಲಿಕ್ ಮಾಡಿದ ತಕ್ಷಣ ಬಳಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದು ಹೇಗೆ?
ಶಿಫಾರಸುಗಳಲ್ಲಿ ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ ಬಳಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆಗೆ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯ. ಹೊಸ ಬಳಕೆದಾರರಿಗೆ ಇದು ಮುಖ್ಯವಾಗಿದೆ: ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ಶಿಫಾರಸು ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿದಾಗ, ಅವನು ವಿವಿಧ ವಿಷಯಗಳ ದಾಖಲೆಗಳ ವೈಯಕ್ತೀಕರಿಸದ ಫೀಡ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತಾನೆ. ಅವನು ಮೊದಲ ಕ್ಲಿಕ್ ಮಾಡಿದ ತಕ್ಷಣ, ನೀವು ತಕ್ಷಣ ಇದನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕು ಮತ್ತು ಅವನ ಆಸಕ್ತಿಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳಬೇಕು. ನೀವು ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ಆಫ್ಲೈನ್ನಲ್ಲಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿದರೆ, ವಿಳಂಬದಿಂದಾಗಿ ತ್ವರಿತ ಸಿಸ್ಟಮ್ ಪ್ರತಿಕ್ರಿಯೆಯು ಅಸಾಧ್ಯವಾಗುತ್ತದೆ. ಆದ್ದರಿಂದ ನೈಜ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರ ಕ್ರಿಯೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದು ಅವಶ್ಯಕ. ಈ ಉದ್ದೇಶಗಳಿಗಾಗಿ, ಬಳಕೆದಾರರ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ನಿರ್ಮಿಸಲು ನಾವು ರನ್ಟೈಮ್ನಲ್ಲಿ ALS ಹಂತವನ್ನು ಬಳಸುತ್ತೇವೆ.
ನಾವು ಎಲ್ಲಾ ದಾಖಲೆಗಳಿಗೆ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಭಾವಿಸೋಣ. ಉದಾಹರಣೆಗೆ, ELMo, BERT ಅಥವಾ ಇತರ ಯಂತ್ರ ಕಲಿಕೆ ಮಾದರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಲೇಖನದ ಪಠ್ಯವನ್ನು ಆಧರಿಸಿ ನಾವು ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ಆಫ್ಲೈನ್ನಲ್ಲಿ ನಿರ್ಮಿಸಬಹುದು. ಸಿಸ್ಟಂನಲ್ಲಿನ ಅವರ ಪರಸ್ಪರ ಕ್ರಿಯೆಗಳ ಆಧಾರದ ಮೇಲೆ ಅದೇ ಜಾಗದಲ್ಲಿ ಬಳಕೆದಾರರ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ನಾವು ಹೇಗೆ ಪಡೆಯಬಹುದು?
ಬಳಕೆದಾರ-ಡಾಕ್ಯುಮೆಂಟ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನ ರಚನೆ ಮತ್ತು ವಿಭಜನೆಯ ಸಾಮಾನ್ಯ ತತ್ವನಾವು m ಬಳಕೆದಾರರು ಮತ್ತು n ದಾಖಲೆಗಳನ್ನು ಹೊಂದೋಣ. ಕೆಲವು ಬಳಕೆದಾರರಿಗೆ, ಕೆಲವು ದಾಖಲೆಗಳೊಂದಿಗೆ ಅವರ ಸಂಬಂಧವು ತಿಳಿದಿದೆ. ನಂತರ ಈ ಮಾಹಿತಿಯನ್ನು m x n ಮ್ಯಾಟ್ರಿಕ್ಸ್ನಂತೆ ಪ್ರತಿನಿಧಿಸಬಹುದು: ಸಾಲುಗಳು ಬಳಕೆದಾರರಿಗೆ ಸಂಬಂಧಿಸಿವೆ ಮತ್ತು ಕಾಲಮ್ಗಳು ದಾಖಲೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿವೆ. ವ್ಯಕ್ತಿಯು ಹೆಚ್ಚಿನ ದಾಖಲೆಗಳನ್ನು ನೋಡದ ಕಾರಣ, ಹೆಚ್ಚಿನ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಕೋಶಗಳು ಖಾಲಿಯಾಗಿ ಉಳಿಯುತ್ತವೆ, ಆದರೆ ಇತರವುಗಳು ಭರ್ತಿಯಾಗುತ್ತವೆ. ಪ್ರತಿ ಈವೆಂಟ್ಗೆ (ಇಷ್ಟ, ಇಷ್ಟವಿಲ್ಲ, ಕ್ಲಿಕ್ ಮಾಡಿ) ಮ್ಯಾಟ್ರಿಕ್ಸ್ನಲ್ಲಿ ಕೆಲವು ಮೌಲ್ಯವನ್ನು ಒದಗಿಸಲಾಗಿದೆ - ಆದರೆ ಸರಳೀಕೃತ ಮಾದರಿಯನ್ನು ಪರಿಗಣಿಸೋಣ, ಇದರಲ್ಲಿ ಇಷ್ಟವು 1 ಗೆ ಅನುರೂಪವಾಗಿದೆ ಮತ್ತು ಇಷ್ಟವಿಲ್ಲದಿರುವುದು -1 ಗೆ ಅನುರೂಪವಾಗಿದೆ.
ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಎರಡು ಭಾಗಗಳಾಗಿ ವಿಭಜಿಸೋಣ: P (m x d) ಮತ್ತು Q (d x n), ಇಲ್ಲಿ d ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯದ ಆಯಾಮವಾಗಿದೆ (ಸಾಮಾನ್ಯವಾಗಿ ಸಣ್ಣ ಸಂಖ್ಯೆ). ನಂತರ ಪ್ರತಿ ವಸ್ತುವು ಡಿ-ಡೈಮೆನ್ಷನಲ್ ವೆಕ್ಟರ್ಗೆ ಅನುಗುಣವಾಗಿರುತ್ತದೆ (ಬಳಕೆದಾರರಿಗೆ - ಮ್ಯಾಟ್ರಿಕ್ಸ್ P ನಲ್ಲಿ ಒಂದು ಸಾಲು, ಡಾಕ್ಯುಮೆಂಟ್ಗಾಗಿ - ಮ್ಯಾಟ್ರಿಕ್ಸ್ Q ನಲ್ಲಿ ಒಂದು ಕಾಲಮ್). ಈ ವಾಹಕಗಳು ಅನುಗುಣವಾದ ವಸ್ತುಗಳ ಎಂಬೆಡಿಂಗ್ ಆಗಿರುತ್ತವೆ. ಬಳಕೆದಾರರು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಇಷ್ಟಪಡುತ್ತಾರೆಯೇ ಎಂದು ಊಹಿಸಲು, ನೀವು ಅವರ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ಸರಳವಾಗಿ ಗುಣಿಸಬಹುದು.

ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಕೊಳೆಯುವ ಸಂಭವನೀಯ ಮಾರ್ಗವೆಂದರೆ ALS (ಆಲ್ಟರ್ನೇಟಿಂಗ್ ಲೀಸ್ಟ್ ಸ್ಕ್ವೇರ್ಸ್). ನಾವು ಈ ಕೆಳಗಿನ ನಷ್ಟ ಕಾರ್ಯವನ್ನು ಉತ್ತಮಗೊಳಿಸುತ್ತೇವೆ:

ಇಲ್ಲಿ rui ಎಂಬುದು ಡಾಕ್ಯುಮೆಂಟ್ i ನೊಂದಿಗೆ ಬಳಕೆದಾರ u ನ ಪರಸ್ಪರ ಕ್ರಿಯೆಯಾಗಿದೆ, qi ಎಂಬುದು ಡಾಕ್ಯುಮೆಂಟ್ i ನ ವೆಕ್ಟರ್ ಆಗಿದೆ, pu ಎಂಬುದು ಬಳಕೆದಾರರ u ನ ವೆಕ್ಟರ್ ಆಗಿದೆ.
ನಂತರ ಅನುಗುಣವಾದ ರೇಖೀಯ ಹಿಂಜರಿತವನ್ನು ಪರಿಹರಿಸುವ ಮೂಲಕ ವಿಶ್ಲೇಷಣಾತ್ಮಕವಾಗಿ ಸರಾಸರಿ ಚದರ ದೋಷ (ಸ್ಥಿರ ದಾಖಲೆ ವೆಕ್ಟರ್ಗಳಿಗೆ) ದೃಷ್ಟಿಯಿಂದ ಸೂಕ್ತ ಬಳಕೆದಾರ ವೆಕ್ಟರ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗುತ್ತದೆ.
ಇದನ್ನು "ALS ಹಂತ" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮತ್ತು ALS ಅಲ್ಗಾರಿದಮ್ ಸ್ವತಃ ನಾವು ಮ್ಯಾಟ್ರಿಕ್ಸ್ಗಳಲ್ಲಿ ಒಂದನ್ನು (ಬಳಕೆದಾರರು ಮತ್ತು ಲೇಖನಗಳು) ಪರ್ಯಾಯವಾಗಿ ಸರಿಪಡಿಸುತ್ತೇವೆ ಮತ್ತು ಇನ್ನೊಂದನ್ನು ನವೀಕರಿಸುತ್ತೇವೆ, ಸೂಕ್ತವಾದ ಪರಿಹಾರವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೇವೆ.
ಅದೃಷ್ಟವಶಾತ್, ಬಳಕೆದಾರರ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ವೆಕ್ಟರ್ ಸೂಚನೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ರನ್ಟೈಮ್ನಲ್ಲಿ ಮಾಡಬಹುದಾದ ಸಾಕಷ್ಟು ವೇಗದ ಕಾರ್ಯಾಚರಣೆಯಾಗಿದೆ. ಶ್ರೇಯಾಂಕದಲ್ಲಿ ಬಳಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ತಕ್ಷಣವೇ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲು ಈ ಟ್ರಿಕ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಭ್ಯರ್ಥಿ ಆಯ್ಕೆಯನ್ನು ಸುಧಾರಿಸಲು kNN ಸೂಚ್ಯಂಕದಲ್ಲಿ ಅದೇ ಎಂಬೆಡಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು.
ವಿತರಣಾ ಸಹಕಾರಿ ಫಿಲ್ಟರಿಂಗ್
ಹೆಚ್ಚುತ್ತಿರುವ ವಿತರಿಸಿದ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅಪವರ್ತನವನ್ನು ಹೇಗೆ ಮಾಡುವುದು ಮತ್ತು ಹೊಸ ಲೇಖನಗಳ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಕಂಡುಹಿಡಿಯುವುದು ಹೇಗೆ?
ಶಿಫಾರಸು ಸಿಗ್ನಲ್ಗಳ ಏಕೈಕ ಮೂಲ ವಿಷಯವಲ್ಲ. ಮತ್ತೊಂದು ಪ್ರಮುಖ ಮೂಲವೆಂದರೆ ಸಹಕಾರಿ ಮಾಹಿತಿ. ಬಳಕೆದಾರ-ಡಾಕ್ಯುಮೆಂಟ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನ ವಿಭಜನೆಯಿಂದ ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ ಉತ್ತಮ ಶ್ರೇಣಿಯ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪಡೆಯಬಹುದು. ಆದರೆ ಅಂತಹ ವಿಭಜನೆಯನ್ನು ಮಾಡಲು ಪ್ರಯತ್ನಿಸುವಾಗ, ನಾವು ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಿದ್ದೇವೆ:
1. ನಾವು ಲಕ್ಷಾಂತರ ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಮತ್ತು ಹತ್ತಾರು ಮಿಲಿಯನ್ ಬಳಕೆದಾರರನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಒಂದು ಯಂತ್ರದಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ, ಮತ್ತು ವಿಭಜನೆಯು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
2. ಸಿಸ್ಟಂನಲ್ಲಿನ ಹೆಚ್ಚಿನ ವಿಷಯವು ಕಡಿಮೆ ಜೀವಿತಾವಧಿಯನ್ನು ಹೊಂದಿದೆ: ದಾಖಲೆಗಳು ಕೆಲವೇ ಗಂಟೆಗಳವರೆಗೆ ಪ್ರಸ್ತುತವಾಗಿರುತ್ತವೆ. ಆದ್ದರಿಂದ, ಸಾಧ್ಯವಾದಷ್ಟು ಬೇಗ ಅವುಗಳ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ನಿರ್ಮಿಸುವುದು ಅವಶ್ಯಕ.
3. ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಪ್ರಕಟಿಸಿದ ನಂತರ ನೀವು ತಕ್ಷಣವೇ ವಿಘಟನೆಯನ್ನು ನಿರ್ಮಿಸಿದರೆ, ಸಾಕಷ್ಟು ಸಂಖ್ಯೆಯ ಬಳಕೆದಾರರಿಗೆ ಅದನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಸಮಯವಿರುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಅದರ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವು ಹೆಚ್ಚು ಉತ್ತಮವಾಗಿರುವುದಿಲ್ಲ.
4. ಬಳಕೆದಾರರು ಇಷ್ಟಪಟ್ಟರೆ ಅಥವಾ ಇಷ್ಟಪಡದಿದ್ದಲ್ಲಿ, ವಿಭಜನೆಯಲ್ಲಿ ಇದನ್ನು ತಕ್ಷಣವೇ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲು ನಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.
ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು, ನಾವು ಆಗಾಗ್ಗೆ ಹೆಚ್ಚುತ್ತಿರುವ ನವೀಕರಣಗಳೊಂದಿಗೆ ಬಳಕೆದಾರ-ಡಾಕ್ಯುಮೆಂಟ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನ ವಿತರಿಸಿದ ವಿಭಜನೆಯನ್ನು ಜಾರಿಗೊಳಿಸಿದ್ದೇವೆ. ಇದು ನಿಖರವಾಗಿ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?
ನಾವು N ಯಂತ್ರಗಳ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಭಾವಿಸೋಣ (N ನೂರಾರುಗಳಲ್ಲಿದೆ) ಮತ್ತು ಒಂದು ಯಂತ್ರದಲ್ಲಿ ಹೊಂದಿಕೆಯಾಗದ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನ ವಿಭಜಿತ ವಿಭಜನೆಯನ್ನು ನಾವು ಮಾಡಲು ಬಯಸುತ್ತೇವೆ. ಈ ವಿಘಟನೆಯನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂಬುದು ಪ್ರಶ್ನೆಯೆಂದರೆ, ಒಂದೆಡೆ, ಪ್ರತಿ ಯಂತ್ರದಲ್ಲಿ ಸಾಕಷ್ಟು ಡೇಟಾ ಇರುತ್ತದೆ ಮತ್ತು ಮತ್ತೊಂದೆಡೆ, ಲೆಕ್ಕಾಚಾರಗಳು ಸ್ವತಂತ್ರವಾಗಿರುತ್ತವೆ?

ನಾವು ಮೇಲೆ ವಿವರಿಸಿದ ALS ವಿಭಜನೆ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ. ಒಂದು ALS ಹಂತವನ್ನು ವಿತರಿಸಿದ ರೀತಿಯಲ್ಲಿ ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಎಂದು ನೋಡೋಣ - ಉಳಿದ ಹಂತಗಳು ಹೋಲುತ್ತವೆ. ನಾವು ದಾಖಲೆಗಳ ಸ್ಥಿರ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಮತ್ತು ನಾವು ಬಳಕೆದಾರರ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ಹೇಳೋಣ. ಇದನ್ನು ಮಾಡಲು, ನಾವು ಅದನ್ನು N ಭಾಗಗಳಾಗಿ ರೇಖೆಗಳಿಂದ ವಿಭಜಿಸುತ್ತೇವೆ, ಪ್ರತಿ ಭಾಗವು ಸರಿಸುಮಾರು ಒಂದೇ ಸಂಖ್ಯೆಯ ಸಾಲುಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ನಾವು ಪ್ರತಿ ಯಂತ್ರಕ್ಕೆ ಅನುಗುಣವಾದ ಸಾಲುಗಳ ಖಾಲಿಯಲ್ಲದ ಕೋಶಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ, ಹಾಗೆಯೇ ಡಾಕ್ಯುಮೆಂಟ್ ಎಂಬೆಡಿಂಗ್ಗಳ ಮ್ಯಾಟ್ರಿಕ್ಸ್ (ಸಂಪೂರ್ಣವಾಗಿ). ಅದರ ಗಾತ್ರವು ತುಂಬಾ ದೊಡ್ಡದಲ್ಲದ ಕಾರಣ ಮತ್ತು ಬಳಕೆದಾರ-ಡಾಕ್ಯುಮೆಂಟ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಸಾಮಾನ್ಯವಾಗಿ ಬಹಳ ವಿರಳವಾಗಿರುವುದರಿಂದ, ಈ ಡೇಟಾವು ಸಾಮಾನ್ಯ ಯಂತ್ರದಲ್ಲಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ.
ಮಾದರಿಯು ಒಮ್ಮುಖವಾಗುವವರೆಗೆ ಈ ಟ್ರಿಕ್ ಅನ್ನು ಹಲವಾರು ಯುಗಗಳಲ್ಲಿ ಪುನರಾವರ್ತಿಸಬಹುದು, ಸ್ಥಿರ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಒಂದೊಂದಾಗಿ ಪರ್ಯಾಯವಾಗಿ ಬದಲಾಯಿಸಬಹುದು. ಆದರೆ ಆಗಲೂ, ಮ್ಯಾಟ್ರಿಕ್ಸ್ ವಿಭಜನೆಯು ಹಲವಾರು ಗಂಟೆಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಮತ್ತು ನೀವು ಹೊಸ ಡಾಕ್ಯುಮೆಂಟ್ಗಳ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಸ್ವೀಕರಿಸಲು ಮತ್ತು ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸುವಾಗ ಕಡಿಮೆ ಮಾಹಿತಿ ಇದ್ದವುಗಳ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ನವೀಕರಿಸಲು ಅಗತ್ಯವಿರುವ ಸಮಸ್ಯೆಯನ್ನು ಇದು ಪರಿಹರಿಸುವುದಿಲ್ಲ.
ವೇಗದ ಹೆಚ್ಚುತ್ತಿರುವ ಮಾದರಿ ನವೀಕರಣಗಳ ಪರಿಚಯವು ನಮಗೆ ಸಹಾಯ ಮಾಡಿತು. ನಾವು ಪ್ರಸ್ತುತ ತರಬೇತಿ ಪಡೆದ ಮಾದರಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಹೇಳೋಣ. ಅವರ ತರಬೇತಿಯ ನಂತರ, ನಮ್ಮ ಬಳಕೆದಾರರು ಸಂವಹಿಸಿದ ಹೊಸ ಲೇಖನಗಳು ಮತ್ತು ತರಬೇತಿಯ ಸಮಯದಲ್ಲಿ ಕಡಿಮೆ ಸಂವಹನವನ್ನು ಹೊಂದಿರುವ ಲೇಖನಗಳು ಇವೆ. ಅಂತಹ ಲೇಖನಗಳ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಪಡೆಯಲು, ನಾವು ಮಾದರಿಯ ಮೊದಲ ದೊಡ್ಡ ತರಬೇತಿಯ ಸಮಯದಲ್ಲಿ ಪಡೆದ ಬಳಕೆದಾರ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ಬಳಸುತ್ತೇವೆ ಮತ್ತು ಸ್ಥಿರ ಬಳಕೆದಾರ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ನೀಡಿದ ಡಾಕ್ಯುಮೆಂಟ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಒಂದು ALS ಹಂತವನ್ನು ಮಾಡುತ್ತೇವೆ. ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಪ್ರಕಟಿಸಿದ ಕೆಲವೇ ನಿಮಿಷಗಳಲ್ಲಿ - ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಸ್ವೀಕರಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಇತ್ತೀಚಿನ ಡಾಕ್ಯುಮೆಂಟ್ಗಳ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ಆಗಾಗ್ಗೆ ನವೀಕರಿಸಿ.
ಶಿಫಾರಸುಗಳನ್ನು ಮಾಡಲು ತಕ್ಷಣವೇ ಮಾನವ ಕ್ರಿಯೆಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಿ, ರನ್ಟೈಮ್ನಲ್ಲಿ ನಾವು ಆಫ್ಲೈನ್ನಲ್ಲಿ ಪಡೆದ ಬಳಕೆದಾರ ಎಂಬೆಡಿಂಗ್ಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಬದಲಾಗಿ, ನಾವು ALS ಹಂತವನ್ನು ಮಾಡುತ್ತೇವೆ ಮತ್ತು ನಿಜವಾದ ಬಳಕೆದಾರ ವೆಕ್ಟರ್ ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ.
ಮತ್ತೊಂದು ಡೊಮೇನ್ ಪ್ರದೇಶಕ್ಕೆ ವರ್ಗಾಯಿಸಿ
ವೀಡಿಯೊದ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ನಿರ್ಮಿಸಲು ಪಠ್ಯ ಲೇಖನಗಳ ಕುರಿತು ಬಳಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹೇಗೆ ಬಳಸುವುದು?
ಆರಂಭದಲ್ಲಿ, ನಾವು ಪಠ್ಯ ಲೇಖನಗಳನ್ನು ಮಾತ್ರ ಶಿಫಾರಸು ಮಾಡಿದ್ದೇವೆ, ಆದ್ದರಿಂದ ನಮ್ಮ ಹಲವಾರು ಅಲ್ಗಾರಿದಮ್ಗಳು ಈ ರೀತಿಯ ವಿಷಯಕ್ಕೆ ಅನುಗುಣವಾಗಿರುತ್ತವೆ. ಆದರೆ ಇತರ ರೀತಿಯ ವಿಷಯವನ್ನು ಸೇರಿಸುವಾಗ, ಮಾದರಿಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಅಗತ್ಯವನ್ನು ನಾವು ಎದುರಿಸಿದ್ದೇವೆ. ವೀಡಿಯೊ ಉದಾಹರಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಈ ಸಮಸ್ಯೆಯನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದ್ದೇವೆ? ಮೊದಲಿನಿಂದ ಎಲ್ಲಾ ಮಾದರಿಗಳನ್ನು ಮರುತರಬೇತಿ ಮಾಡುವುದು ಒಂದು ಆಯ್ಕೆಯಾಗಿದೆ. ಆದರೆ ಇದು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಕೆಲವು ಅಲ್ಗಾರಿದಮ್ಗಳು ತರಬೇತಿ ಮಾದರಿಯ ಗಾತ್ರದ ಮೇಲೆ ಬೇಡಿಕೆಯಿದೆ, ಇದು ಸೇವೆಯಲ್ಲಿನ ಜೀವನದ ಮೊದಲ ಕ್ಷಣಗಳಲ್ಲಿ ಹೊಸ ರೀತಿಯ ವಿಷಯಕ್ಕೆ ಅಗತ್ಯವಾದ ಪ್ರಮಾಣದಲ್ಲಿ ಇನ್ನೂ ಲಭ್ಯವಿಲ್ಲ.
ನಾವು ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೋಗಿದ್ದೇವೆ ಮತ್ತು ವೀಡಿಯೊಗಾಗಿ ಪಠ್ಯ ಮಾದರಿಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದ್ದೇವೆ. ಅದೇ ALS ಟ್ರಿಕ್ ವೀಡಿಯೊಗಳ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ರಚಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡಿದೆ. ನಾವು ಪಠ್ಯ ಲೇಖನಗಳ ಆಧಾರದ ಮೇಲೆ ಬಳಕೆದಾರರ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ತೆಗೆದುಕೊಂಡಿದ್ದೇವೆ ಮತ್ತು ವೀಡಿಯೊ ವೀಕ್ಷಣೆ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ALS ಹಂತವನ್ನು ಮಾಡಿದ್ದೇವೆ. ಆದ್ದರಿಂದ ನಾವು ಸುಲಭವಾಗಿ ವೀಡಿಯೊದ ವೆಕ್ಟರ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದೇವೆ. ಮತ್ತು ರನ್ಟೈಮ್ನಲ್ಲಿ ನಾವು ಪಠ್ಯ ಲೇಖನಗಳಿಂದ ಪಡೆದ ಬಳಕೆದಾರ ವೆಕ್ಟರ್ ಮತ್ತು ವೀಡಿಯೊ ವೆಕ್ಟರ್ ನಡುವಿನ ಸಾಮೀಪ್ಯವನ್ನು ಸರಳವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತೇವೆ.
ತೀರ್ಮಾನಕ್ಕೆ
ನೈಜ-ಸಮಯದ ಶಿಫಾರಸು ವ್ಯವಸ್ಥೆಯ ತಿರುಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದು ಅನೇಕ ಸವಾಲುಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಈ ಡೇಟಾವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಲು ನೀವು ತ್ವರಿತವಾಗಿ ಡೇಟಾವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬೇಕು ಮತ್ತು ML ವಿಧಾನಗಳನ್ನು ಅನ್ವಯಿಸಬೇಕು; ಕನಿಷ್ಠ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರ ಸಂಕೇತಗಳು ಮತ್ತು ವಿಷಯದ ಹೊಸ ಘಟಕಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಮರ್ಥವಾದ ಸಂಕೀರ್ಣ ವಿತರಣೆ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸಿ; ಮತ್ತು ಅನೇಕ ಇತರ ಕಾರ್ಯಗಳು.
ಪ್ರಸ್ತುತ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ನಾನು ವಿವರಿಸಿದ ವಿನ್ಯಾಸ, ಬಳಕೆದಾರರಿಗೆ ಶಿಫಾರಸುಗಳ ಗುಣಮಟ್ಟವು ಅವರ ಚಟುವಟಿಕೆ ಮತ್ತು ಸೇವೆಯಲ್ಲಿ ಉಳಿಯುವ ಅವಧಿಯೊಂದಿಗೆ ಬೆಳೆಯುತ್ತದೆ. ಆದರೆ ಸಹಜವಾಗಿ, ಇಲ್ಲಿ ಮುಖ್ಯ ತೊಂದರೆ ಇದೆ: ವಿಷಯದೊಂದಿಗೆ ಕಡಿಮೆ ಸಂವಹನವನ್ನು ಹೊಂದಿರುವ ವ್ಯಕ್ತಿಯ ಹಿತಾಸಕ್ತಿಗಳನ್ನು ತಕ್ಷಣವೇ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಿಸ್ಟಮ್ಗೆ ಕಷ್ಟವಾಗುತ್ತದೆ. ಹೊಸ ಬಳಕೆದಾರರಿಗೆ ಶಿಫಾರಸುಗಳನ್ನು ಸುಧಾರಿಸುವುದು ನಮ್ಮ ಪ್ರಮುಖ ಗುರಿಯಾಗಿದೆ. ನಾವು ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ ಇದರಿಂದ ಒಬ್ಬ ವ್ಯಕ್ತಿಗೆ ಸಂಬಂಧಿಸಿದ ವಿಷಯವು ಅವನ ಫೀಡ್ಗೆ ವೇಗವಾಗಿ ಬರುತ್ತದೆ ಮತ್ತು ಅಪ್ರಸ್ತುತ ವಿಷಯವನ್ನು ತೋರಿಸಲಾಗುವುದಿಲ್ಲ.
ಮೂಲ: www.habr.com
