නෙප්චූන් ML භාවිතයෙන් සබැඳි අනාවැකිය පිළිබඳ අපගේ මාලාවේ මෙම පස්වන සහ අවසාන සටහනේදී, අපි අනුමාන ක්රියාවලියට කිමිදෙමු: සබැඳි අනාවැකි සඳහා අපගේ පුහුණු GNN ආකෘතිය භාවිතා කිරීම සඳහා අනුමාන අන්ත ලක්ෂ්යයක් සැකසීම. අන්ත ලක්ෂ්යය ස්ථාපිත කිරීම සඳහා, අපි නෙප්චූන් පොකුරේ API සහ S3 හි ගබඩා කර ඇති ආකෘති කෞතුක වස්තු භාවිතා කරන්නෙමු. අන්ත ලක්ෂ්යය සජීවීව තිබියදී, අපගේ ප්රස්ථාරයේ ඉහළ විශ්වාසනීය විභව සම්බන්ධතා හඳුනා ගැනීමට ග්රෙම්ලින් විමසුමක් භාවිතා කරමින් සබැඳි අනාවැකිය සඳහා අපි එය විමසන්නෙමු.
මේ වන විට, අපි දැනටමත් Twitch සමාජ ජාලකරණ දත්ත නෙප්චූන් පොකුරට පටවා ඇත (මෙම මාලාවේ 1 වන කොටසේ විස්තර කර ඇති පරිදි), ML පැතිකඩ භාවිතයෙන් දත්ත අපනයනය කර ඇත (විස්තර සඳහා 2 වන කොටස බලන්න), දත්ත පූර්ව සැකසුම් කර ඇත (3 වන කොටසේ පැහැදිලි කර ඇති පරිදි), ආකෘතිය පුහුණු කර ඇත (4 වන කොටස බලන්න), දැන් අපි පුරෝකථන ජනනය කිරීම සඳහා පුහුණු කළ ආකෘතිය භාවිතා කිරීමට සූදානම්.
1 කොටස මෙතනින් කියවන්න; 2 කොටස මෙතනින් ; 3 කොටස මෙතනින්; සහ 4 කොටස මෙතනින් .
පොකුරේ API සහ S3 හි අප සතුව ඇති ආකෘති කෞතුක වස්තු භාවිතා කර අනුමාන අන්ත ලක්ෂ්යය නිර්මාණය කරමු. සුපුරුදු පරිදි, අපට මුලින්ම S3 සහ SageMaker වෙත ප්රවේශය ඇති IAM භූමිකාවක් අවශ්ය වේ. භූමිකාවට එය නෙප්චූන් පොකුරට එක් කිරීමට ඉඩ සලසන විශ්වාස ප්රතිපත්තියක් ද තිබිය යුතුය (විශ්වාස ප්රතිපත්තිය මෙම මාර්ගෝපදේශයේ 3 වන කොටසින් සොයාගත හැකිය). VPC ඇතුළත සිට SageMaker සහ CloudWatch API වෙත ප්රවේශය ලබා දීමටද අපට අවශ්ය වේ, එබැවින් මෙම මාලාවේ 1 වන කොටසේ පැහැදිලි කර ඇති පරිදි අපට VPC අන්ත ලක්ෂ්ය අවශ්ය වේ.
මෙම curl විධානය සමඟ අනුමාන අන්ත ලක්ෂ්යයක් නිර්මාණය කිරීමට අපි ක්ලස්ටර් API භාවිතා කරමු:
curl -XPOST https://(YOUR_NEPTUNE_ENDPOINT):8182/ml/endpoints \ -H 'Content-Type: application/json' \ -d '{ "mlModelTrainingJobId": YOUR_MODEL_TRAINING_JOB_ID, "neptuneIamRoleArn": "arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole" }'
සබැඳි පුරෝකථනය සඳහා භාවිතා කරන EC2 නිදසුන් වර්ගය තෝරා ගැනීමට සහ එක් අවස්ථාවකට වඩා වැඩි ගණනක් යෙදවීමට අපට ' instanceType ' සහ ' instanceCount ' පරාමිතීන් භාවිතා කළ හැකිය. පරාමිතිවල සම්පූර්ණ ලැයිස්තුව මෙතැනින් සොයාගත හැකිය. අපගේ කුඩා ප්රස්ථාරය සඳහා ප්රමාණවත් CPU සහ RAM ඇති බැවින් අපි පෙරනිමි ' ml.m5(d).xlarge ' නිදසුන භාවිතා කරන්නෙමු, තවද මෙම නිදසුන් වර්ගය අපගේ පෙර අදියරේදී ආකෘති පුහුණුවෙන් පසුව ජනනය කරන ලද infer_instance_recommendation.json හි නිර්දේශ කරන ලදී:
{ "disk_size": 12023356, "instance": "ml.m5d.xlarge", "mem_size": 13847612 }
API එක අනුමාන අන්ත ලක්ෂ්ය හැඳුනුම්පත සමඟ ප්රතිචාර දක්වයි:
{"id":"b217165b-7780-4e73-9d8a-5b6f7cfef9f6"}
එවිට අපට මෙම විධානය සමඟ අනුමාන අන්ත ලක්ෂ්යයේ තත්ත්වය පරීක්ෂා කළ හැකිය:
curl https://YOUR_NEPTUNE_ENDPOINT:8182/ml/endpoints/INFERENCE_ENDPOINT_ID?neptuneIamRole='arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole'
සහ එය ' status: InService ' ලෙස ප්රතිචාර දැක්වූ පසු,
{ "endpoint": { "name": "YOUR_INFERENCE_ENDPOINT_NAME-endpoint", "arn": "...", "status": "InService" }, "endpointConfig": {...}, "id": "YOUR_INFERENCE_ENDPOINT_ID", "status": "InService" }
එයින් අදහස් වන්නේ අපි දත්ත සමුදා විමසුම් සමඟ එය භාවිතා කිරීම ආරම්භ කිරීමට සූදානම් බවයි.
SageMaker -> Inference -> Endpoints යටතේ AWS කොන්සෝලයෙන් ද අන්ත ලක්ෂ්යය බැලීමට සහ කළමනාකරණය කිරීමට හැකිය.
ප්රස්ථාරයේ නව 'අනුගමනය' සබැඳි පුරෝකථනය කිරීමට අන්ත ලක්ෂ්යය භාවිතා කරමු. එය සිදු කිරීම සඳහා, අපට හැකි නව සබැඳිවල මූලාශ්ර ශීර්ෂය තෝරා ගැනීමට අවශ්ය වේ.
මූලාශ්ර ශීර්ෂයට දැනටමත් සබැඳි තිබේ නම් එය උපකාරී වේ, එබැවින් පවතින වැඩිම සබැඳි සංඛ්යාවක් (outE සහ inE සම්බන්ධතා) සහිත ශීර්ෂය ලබා ගැනීමට අපි මෙම විමසුම භාවිතා කරමු:
gV() .group() .by() .by(bothE().count()) .order(local) .by(values, Order.desc) .limit(local, 1) .next()
ප්රතිඵලය වන්නේ
{v[1773]: 1440}
ඒ කියන්නේ ID = 1773 සහිත ශීර්ෂයට සම්බන්ධතා 1440ක් (720 inE සහ 720 outE) ඇති බවයි.
1773 නෝඩයෙන් ආරම්භ වන දාර ගණන සහ එම නෝඩයෙන් අවසන් වන දාර ගණන ලබා ගැනීමට අපට මෙම විමසුම් භාවිතා කළ හැකිය:
gV('1773').outE().count() gV('1773').inE().count()
ආරම්භක දත්ත කට්ටලයේ අන්යෝන්ය මිත්රත්වයන් අඩංගු වන අතර, නෙප්චූන් අධ්යක්ෂණය කරන ලද ප්රස්ථාරය සමඟ ක්රියා කිරීමට අපි ප්රතිලෝම දාර සහිත දත්ත වැඩි දියුණු කළ නිසා, inE සහ outE සම්බන්ධතා එකම සංඛ්යාවක් අපේක්ෂා කෙරේ.
දැන් අපි පුරෝකථනය කළ සම්බන්ධතා ලබා ගනිමු. ඒ සඳහා, අපි නෙප්චූන් ML පුරෝකථනයන් සමඟ ග්රෙම්ලින් විමසුමක් ක්රියාත්මක කරන්නෙමු. පරිශීලකයා 1773 අනුගමනය කළ හැකි පරිශීලකයින් අවම වශයෙන් 0.1 (10%) විශ්වාසනීය සීමාවක් (ආකෘතියට අනුව සබැඳි පැවැත්මේ අවම සම්භාවිතාව) සමඟ ලබා ගැනීම සඳහා අපි DB පොකුරට එකතු කරන ලද අනුමාන අන්ත ලක්ෂ්යය සහ SageMaker භූමිකාව භාවිතා කරන්නෙමු , පරිශීලකයා 1773 දැනටමත් අනුගමනය කරන පරිශීලකයින් බැහැර කරමින්:
%%gremlin g.with('Neptune#ml.endpoint', 'YOUR_INFERENCE_ENDPOINT_NAME') .with('Neptune#ml.iamRoleArn', 'arn:aws:iam::123456789012:role/NeptuneMLSagemakerRole') .with('Neptune#ml.limit', 10000) .with('Neptune#ml.threshold', 0.1D) .V('1773') .out('follows') .with('Neptune#ml.prediction') .hasLabel('user') .not( __.in('follows').hasId('1773') )
එය ප්රතිඵල 4ක් ලබා දෙයි:
"Result" "v[755]" "v[6086]" "v[6382]" "v[7005]"
අපගේ ආකෘතියට අනුව, පරිශීලක 1773 මෙම පරිශීලකයින් 4 දෙනාගෙන් එක් එක් අය අනුගමනය කිරීමට අවම වශයෙන් 10% ක අවස්ථාවක් තිබේ. සමහර විට අපට AWS විසින් නිර්දේශ කර ඇති පරිදි පුහුණු රැකියා ගණන අවම වශයෙන් 10 දක්වා වැඩි කිරීමෙන් ආකෘතිය වැඩිදියුණු කළ හැකි අතර, පසුව ප්රතිඵලයක් ලෙස ලැබෙන ආකෘතියේ කාර්ය සාධනය සහ පුරෝකථනය කරන ලද සබැඳි සංසන්දනය කළ හැකිය. සැබෑ යෙදුම් වලදී, පරිශීලක පැතිකඩ සහ ක්රියාකාරකම් දත්ත ප්රස්ථාරයට එකතු කිරීම පුරෝකථන නිරවද්යතාවය වැඩි දියුණු කරයි.
සමාජ ජාලකරණ දත්ත කට්ටලවල පුරෝකථනය කරන ලද සම්බන්ධතා, මිතුරු සහ අන්තර්ගත යෝජනා වැනි පුද්ගලාරෝපිත නිර්දේශ සැපයීමට, පරිශීලක සහභාගීත්වය සහ ප්රජා වර්ධනය වැඩි දියුණු කිරීමට, චලනය අඩු කිරීමට සහ ඉලක්කගත වෙළඳ දැන්වීම් සඳහා අමතර දත්ත සැපයීමට භාවිතා කළ හැකිය.
අපි සමාජ ජාලකරණ දත්ත කට්ටලයකට සබැඳි පුරෝකථනය යෙදුවද, එය මෙම තාක්ෂණයේ බොහෝ විය හැකි යෙදුම් වලින් එකක් පමණි. නිර්දේශ එන්ජින්වල සිට ජාල ප්රශස්තිකරණය දක්වා, සබැඳි පුරෝකථනය යනු දත්ත තුළ සැඟවුණු සම්බන්ධතා අනාවරණය කර ගැනීමෙන් වටිනාකමක් ගෙන දෙන බහුකාර්ය මෙවලමකි. ප්රස්ථාර පාදක යෙදුම් අඛණ්ඩව පුළුල් වන විට, කර්මාන්ත හරහා සබැඳි පුරෝකථනයේ විභවය නව තීක්ෂ්ණ බුද්ධිය, කාර්යක්ෂමතාව සහ වැඩිදියුණු කළ පරිශීලක අත්දැකීම් පොරොන්දු වේ.