{"id":37364,"date":"2020-06-23T11:44:22","date_gmt":"2020-06-23T02:44:22","guid":{"rendered":"https:\/\/jirak.net\/wp\/amazon-sagemaker%ec%99%80-deep-graph-library%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%9d%b4%ec%a2%85-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac%ec%97%90%ec%84%9c-%ec%82%ac%ea%b8%b0-%ed%83%90%ec%a7%80\/"},"modified":"2020-06-23T12:34:11","modified_gmt":"2020-06-23T03:34:11","slug":"amazon-sagemaker%ec%99%80-deep-graph-library%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%9d%b4%ec%a2%85-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac%ec%97%90%ec%84%9c-%ec%82%ac%ea%b8%b0-%ed%83%90%ec%a7%80","status":"publish","type":"post","link":"https:\/\/jirak.net\/wp\/amazon-sagemaker%ec%99%80-deep-graph-library%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%9d%b4%ec%a2%85-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac%ec%97%90%ec%84%9c-%ec%82%ac%ea%b8%b0-%ed%83%90%ec%a7%80\/","title":{"rendered":"Amazon SageMaker\uc640 Deep Graph Library\ub97c \uc774\uc6a9\ud55c \uc774\uc885 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc0ac\uae30 \ud0d0\uc9c0\ud558\uae30"},"content":{"rendered":"<p>Amazon SageMaker\uc640 Deep Graph Library\ub97c \uc774\uc6a9\ud55c \uc774\uc885 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc0ac\uae30 \ud0d0\uc9c0\ud558\uae30<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jirak.net\/wp\/wp-content\/uploads\/2020\/06\/heterogeneous-networks-sagemaker-1.gif\" width=\"500\" height=\"377\"><\/p>\n<p>\uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc758\uc2ec\uc2a4\ub7ec\uc6b4 \uacc4\uc815\uc73c\ub85c \uc778\ud574\uc11c \ub9e4\ub144 \uc218 \uc2ed\uc870 \uc6d0\uc758 \uc190\uc2e4\uc774 \ubc1c\uc0dd\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc545\uc758\uc801\uc778 \ud589\ub3d9\ub4e4\uc774 \uc77c\uc5b4\ub098\ub294 \uac83\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c \ub9ce\uc740 \uae30\uc5c5\ub4e4\uc740 \uaddc\uce59 \uae30\ubc18 \ud544\ud130\ub97c \uc801\uc6a9\ud558\uace0 \uc788\uc9c0\ub9cc, \uc774 \ud544\ud130\ub4e4\uc740 \ub2e4\ub8e8\uae30 \ud798\ub4e4\uae30\ub3c4 \ud558\uace0 \uc545\uc758\uc801\uc778 \ud589\ub3d9 \uc804\uccb4\ub97c \uc7a1\uc544\ub0b4\uc9c0 \ubabb\ud569\ub2c8\ub2e4.<\/p>\n<p>\ud558\uc9c0\ub9cc \uadf8\ub798\ud504 \uae30\uc220\uacfc \uac19\uc740 \uc194\ub8e8\uc158\ub4e4\uc740 \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc545\uc758\uc801\uc778 \uc0ac\uc6a9\uc790\ub97c \ud0d0\uc9c0\ud558\ub294\ub370 \uc544\uc8fc \uc801\ud569\ud569\ub2c8\ub2e4. \uc774\uc0c1 \ud589\uc704\uc790\ub294 \uaddc\uce59 \uae30\ubc18\uc758 \uc2dc\uc2a4\ud15c\uc774\ub098 \ub2e8\uc21c\ud55c \ud2b9\uc9d5 \uae30\ubc18\uc758 \ubaa8\ub378\uc744 \uc18d\uc774\uae30 \uc704\ud574\uc11c \uadf8\ub4e4\uc774 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \uc9c4\ud654\uc2dc\ud0a4\uc9c0\ub9cc, \uadf8\ub798\ud504 \uad6c\uc870\ub098 \uc0ac\uc6a9\uc790\uc640 \ub2e4\ub978 \ucc38\uc5ec\uc790\ub4e4 \uc0ac\uc774\uc758 \uac70\ub798\ub098 \uc0c1\ud638 \ud65c\ub3d9 \ub85c\uadf8\uc5d0 \ub2f4\uae34 \uad00\uacc4\ub97c \uc18d\uc774\ub294 \uac83\uc740 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \uadf8\ub798\ud504 \ub274\ub7f4 \ub124\ud2b8\uc6cc\ud06c(GNN)\uc740 \uc0ac\uc6a9\uc790\ub098 \uac70\ub798\uc758 \uc18d\uc131\uacfc \ud568\uaed8 \uadf8\ub798\ud504 \uad6c\uc870\ub85c\ubd80\ud130 \uc815\ubcf4\ub97c \uc870\ud569\ud574\uc11c \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc774\ubca4\ud2b8\ub97c \uc801\ubc95\ud55c \ud589\uc704\ub098 \uc774\ubca4\ud2b8\ub85c\ubd80\ud130 \uad6c\ubcc4\ud560 \uc218 \uc788\ub294 \ud45c\ud604\uc744 \ubc30\uc6c1\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae00\uc5d0\uc11c <a href=\"https:\/\/aws.amazon.com\/sagemaker\/\">Amazon SageMaker<\/a>\uc640 <a href=\"https:\/\/www.dgl.ai\/\">Deep Graph Library (DGL)<\/a>\ub97c \uc0ac\uc6a9\ud574\uc11c GNN \ubaa8\ub378\uc744 \ud559\uc2b5\uc2dc\ud0a4\uace0 \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc774\uc0c1 \uac70\ub798\ub97c \ud0d0\uc9c0\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. \uc774\uc0c1 \ud0d0\uc9c0\ub97c \uc644\uc804 \uad00\ub9ac\ud615 AWS AI \uc11c\ube44\uc2a4\ub85c \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc740 \uae30\uc5c5\ub4e4\uc740 <a href=\"https:\/\/aws.amazon.com\/fraud-detector\/\">Amazon Fraud Detector<\/a>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uac00\uc9dc \uacc4\uc815 \uc0dd\uc131 \ub610\ub294 \ubd80\uc815\uc801\uc778 \uc628\ub77c\uc778 \uacb0\uc7ac\uc640 \uac19\uc740 \uc7a0\uc7ac\uc801 \ubd80\uc815 \uc628\ub77c\uc778 \ud589\ub3d9\uc744 \uc27d\uac8c \uc2dd\ubcc4\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc90d\ub2c8\ub2e4.<\/p>\n<p>\uc6b0\ub9ac\ub294 Amazon SageMaker\ub97c \uc774\uc6a9\ud55c \ub370\uc774\ud130 \uc804\ucc98\ub9ac\uc640 \ubaa8\ub378 \ud559\uc2b5\uc744 \ub2e4\ub8e8\uaca0\uc2b5\ub2c8\ub2e4. GNN \ubaa8\ub378\uc744 \ud559\uc2b5\ud558\uae30 \uc704\ud574\uc11c, \uc6b0\uc120 \uac70\ub798 \ud14c\uc774\ube14 \ub610\ub294 \uc811\uadfc \ub85c\uadf8\ub85c\ubd80\ud130 \uc774\uc885 \uadf8\ub798\ud504(heterogeneous graph)\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774\uc885 \uadf8\ub798\ud504\ub294 \uc11c\ub85c \ub2e4\ub978 \uc885\ub958\uc758 \ub178\ub4dc\uc640 \uc5d0\uc9c0\ub97c \uac16\ub294 \uadf8\ub798\ud504\uc785\ub2c8\ub2e4. \ub178\ub4dc\uac00 \uc0ac\uc6a9\uc790\ub098 \uac70\ub798\ub97c \ub300\ud45c\ud558\ub294 \uacbd\uc6b0, \ub178\ub4dc\ub294 \ub2e4\ub978 \uc0ac\uc6a9\uc790\uc640 \ubcc4\uac1c\uc758 \uad00\uacc4\ub97c \uc5ec\ub7ec \uac1c \uac00\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uba74, \ub514\ubc14\uc774\uc2a4 \uad6c\ubcc4\uc790, \uae30\uad00, \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158, IP \uc8fc\uc18c\uc640 \uac19\uc740 \uac83\ub4e4\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uadf8\ub798\ud504 \ucf00\uc774\uc2a4\uc5d0 \uc54c\ub9de\uc740 \uc608\ub4e4\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc0ac\uc6a9\uc790\uac00 \ub2e4\ub978 \uc0ac\uc6a9\uc790\ub098 \ud2b9\uc815 \uae08\uc735\uae30\uad00 \ub610\ub294 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\ub4e4\uacfc \uac70\ub798\ud558\ub294 \uae08\uc735 \ub124\ud2b8\uc6cc\ud06c<\/li>\n<li>\uc0ac\uc6a9\uc790\uac00 \ub2e4\ub978 \uc0ac\uc6a9\uc790\uc640 \uc11c\ub85c \uc791\uc6a9\ud558\uba74\uc11c \ub2e4\ub978 \uac8c\uc784 \ub610\ub294 \ub514\ubc14\uc774\uc2a4\ub4e4\uacfc\ub3c4 \uc791\uc6a9\ud558\ub294 \uac8c\uc784 \ub124\ud2b8\uc6cc\ud06c<\/li>\n<li>\uc0ac\uc6a9\uc790\uac00 \ub2e4\ub978 \uc0ac\uc6a9\uc790\uc640 \uc5ec\ub7ec \uc885\ub958\uc758 \uc5f0\uacb0\uc744 \uac16\ub294 \uc18c\uc15c \ub124\ud2b8\uc6cc\ud06c<\/li>\n<\/ul>\n<p>\uc544\ub798 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc740 \uc774\uc885 \uae08\uc735 \uac70\ub798 \ub124\ud2b8\uc6cc\ud06c\uc758 \uc608\uc2dc\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59\/2020\/06\/16\/heterogeneous-networks-sagemaker-1.gif\" \/><\/p>\n<p>GNN\uc740 \uc778\uad6c \ud1b5\uacc4 \uc815\ubcf4\uc640 \uac19\uc740 \uc0ac\uc6a9\uc790 \ud2b9\uc131\uc774\ub098 \ud65c\ub3d9 \ube48\ub3c4\uc640 \uac19\uc740 \uac70\ub798 \ud2b9\uc131\uc744 \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc989, \ub178\ub4dc\uc640 \uc5d0\uc9c0\uc758 \uba54\ud0c0\ub370\uc774\ud130\uc5d0 \ub300\ud55c \ud2b9\uc131\ub97c \uc0ac\uc6a9\ud574\uc11c \uc774\uc885 \uadf8\ub798\ud504\ub97c \ub354 \ud48d\ubd80\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uad00\ub828\ub41c \ud2b9\uc9d5\uacfc \ud568\uaed8 \uc774\uc885 \uadf8\ub798\ud504\uc758 \ub178\ub4dc\uc640 \uad00\uacc4\ub97c \uad6c\uc131\ud55c \ud6c4, \uadf8\ub798\ud504 \uad6c\uc870\uc640 \ud568\uaed8 \ub178\ub4dc \ub610\ub294 \uc5d0\uc9c0\uc758 \ud2b9\uc131\uc744 \uc0ac\uc6a9\ud574\uc11c \ub178\ub4dc\ub97c \uc774\uc0c1 \ub610\ub294 \uc815\uc0c1\uc73c\ub85c \uad6c\ubd84\ud558\ub294 \ubaa8\ub378\uc744 \ud559\uc2b5\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub378 \ud559\uc2b5\uc740 \uc900\uc9c0\ub3c4 \ud559\uc2b5(semi-supervised learning)\uc73c\ub85c \uad6c\uc131\ud560 \uc218 \uc788\ub294\ub370, \uadf8\ub798\ud504\uc758 \uc77c\ubd80 \ub178\ub4dc\ub9cc \uc774\uc0c1\uc778\uc9c0 \uc815\uc0c1\uc778\uc9c0 \ub808\uc774\ube14\uc774 \uc788\ub294 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud55c \ud559\uc2b5\uc744 \ub9d0\ud569\ub2c8\ub2e4. \uc774 \ub808\uc774\ube14\uc774 \uc788\ub294 \uadf8\ub798\ud504\uc758 \uc77c\ubd80\ub97c GNN\uc758 \ud30c\ub77c\ubbf8\ud130\ub4e4\uc744 \ud559\uc2b5\uc2dc\ud0a4\ub294 \ud559\uc2b5 \uc2dc\uadf8\ub110\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud559\uc2b5\ub41c GNN \ubaa8\ub378\uc740 \uadf8\ub798\ud504\uc758 \ub098\uba38\uc9c0 \ub808\uc774\ube14\uc774 \ub418\uc9c0 \uc54a\uc740 \ub178\ub4dc\ub4e4\uc758 \ub808\uc774\ube14\uc744 \uc608\uce21\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<h3><strong>\uc544\ud0a4\ud14d\ucc98 \uc18c\uac1c<br \/> <\/strong><\/h3>\n<p>\uc804\uccb4 \uc194\ub8e8\uc158 \uc544\ud0a4\ud14d\ucc98\ub294 Amazon SageMaker\ub97c \uc0ac\uc6a9\ud574\uc11c \ub370\uc774\ud130 \ucc98\ub9ac \ubc0f \ud559\uc2b5\uc744 \uc218\ud589\ud558\ub3c4\ub85d \uad6c\uc131\ud569\ub2c8\ub2e4. <a href=\"http:\/\/aws.amazon.com\/s3\">Amazon Simple Storage Service<\/a> (Amazon S3)\uc758 put \uc774\ubca4\ud2b8\uac00 \ubc1c\uc0dd\ud558\uba74 <a href=\"http:\/\/aws.amazon.com\/lambda\">AWS Lambda<\/a> \ud568\uc218\ub97c \ud1b5\ud574\uc11c Amazon SageMaker \uc791\uc5c5\uc744 \uc790\ub3d9\uc73c\ub85c \uc218\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \uad6c\uc131\ud569\ub2c8\ub2e4. \ub610\ub294 Amazon SageMaker \uc608\uc81c \ub178\ud2b8\ubd81\uc758 \uc140\uc744 \ud558\ub098\uc529 \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc758 \uc544\ud0a4\ud14d\ucc98\ub97c \uc2dc\uac01\ud654\ud55c \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59\/2020\/06\/16\/heterogeneous-networks-sagemaker-2.gif\" \/><\/p>\n<p>\uc804\uccb4 \uad6c\ud604\uc740 <a href=\"https:\/\/github.com\/awslabs\/sagemaker-graph-fraud-detection\">GitHub repo<\/a>\uc5d0 <a href=\"http:\/\/aws.amazon.com\/cloudformation\">AWS CloudFormation<\/a> \ud15c\ud50c\ub9bf \ud615\ud0dc\ub85c \uc81c\uacf5\ud558\uace0 \uc788\uc5b4, \uc5ec\ub7ec\ubd84\uc758 AWS \uacc4\uc815\uc5d0 \ubc14\ub85c \uc774 \uc544\ud0a4\ud14d\ucc98\ub97c \ubc30\ud3ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3><strong>GNN\uc744 \uc774\uc6a9\ud55c \uc774\uc0c1 \ud0d0\uc9c0\ub97c \uc704\ud55c \ub370\uc774\ud130 \uc804\ucc98\ub9ac<\/strong><\/h3>\n<p>\uc5ec\uae30\uc11c \uc6b0\ub9ac\ub294 \uc608\uc81c \ub370\uc774\ud130\uc14b\uc744 \uc5b4\ub5bb\uac8c \uc804\ucc98\ub9ac\ud558\ub294\uc9c0, \uadf8\ub9ac\uace0 \uc774\uc885 \uadf8\ub798\ud504\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c \uad00\uacc4\ub97c \uc5b4\ub5bb\uac8c \uc2dd\ubcc4\ud574\uc57c \ud558\ub294\uc9c0 \uc0b4\ud3b4\ubd05\ub2c8\ub2e4.<\/p>\n<p><strong>\ub370\uc774\ud130\uc14b<\/strong><\/p>\n<p>\uc774 \uc608\uc81c\uc5d0\uc11c \uc6b0\ub9ac\ub294 <a href=\"https:\/\/www.kaggle.com\/c\/ieee-fraud-detection\/data\">IEEE-CIS fraud dataset<\/a> \ub97c \uc0ac\uc6a9\ud574\uc11c \ubaa8\ub378\ub9c1 \uc811\uadfc\ubc95\uc5d0 \ub300\ud55c \ubca4\uce58\ub9c8\ud0b9\uc744 \uc218\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \ub370\uc774\ud130\uc14b\uc740 \uc775\uba85\ud654 \ucc98\ub9ac\ub41c \uac83\uc73c\ub85c \uc0ac\uc6a9\uc790\uac04\uc758 50\ub9cc\uac74\uc758 \uac70\ub798\ub97c \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub370\uc774\ud130\uc14b\uc740 \ub450 \uac00\uc9c0 \uc8fc\uc694 \ud14c\uc774\ube14\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uac70\ub798 \ud14c\uc774\ube14 \u2013 \uac70\ub798\uc5d0 \ub300\ud55c \uc815\ubcf4\uc640 \uc0ac\uc6a9\uc790 \uc0ac\uc774\uc758 \uc0c1\ud638 \ud65c\ub3d9\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uc2dd\ubcc4 \ud14c\uc774\ube14 \u2013 \uac70\ub798\ub97c \uc218\ud589\ud55c \uc0ac\uc6a9\uc790\uc5d0 \ub300\ud55c \uc811\uadfc \ub85c\uadf8, \ub514\ubc14\uc774\uc2a4, \ub124\ud2b8\uc6cc\ud06c \uc815\ubcf4\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc744 \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>\uc774 \uac70\ub798\ub4e4 \uc911\uc5d0\uc11c \ub808\uc774\ube14\uc774 \uc788\ub294 \uc77c\ubd80\ub97c \uc9c0\ub3c4\ud559\uc2b5 \uc2dc\uadf8\ub110\ub85c \uc0ac\uc6a9\ud574\uc11c \ubaa8\ub378\uc744 \ud559\uc2b5\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\uc14b\uc758 \uac70\ub798\ub294 \ud559\uc2b5 \uacfc\uc815\uc5d0\uc11c \ubaa8\ub450 \ub9c8\uc2a4\ud0b9 \ucc98\ub9ac\ub97c \ud558\uace0, \ub9c8\uc2a4\ud06c \ucc98\ub9ac\ub41c \uac70\ub798\uac00 \uc774\uc0c1 \uac70\ub798\uc778\uc9c0 \uc815\uc0c1 \uac70\ub798\uc778\uc9c0\ub97c \uc608\uce21\ud558\ub294 \uac83\uc774 \uacfc\uc81c\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \ucf54\ub4dc\ub294 \ub370\uc774\ud130\ub97c \uad6c\ud55c \ud6c4, \uc774\ub97c Amazon SageMaker\uac00 \uc804\ucc98\ub9ac\uc640 \ud559\uc2b5\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d S3 \ubc84\ud0b7\uc5d0 \uc62c\ub9ac\ub294 \uc77c\uc744 \ud569\ub2c8\ub2e4. (\uc804\ucc98\ub9ac\uc640 \ud559\uc2b5\uc740 Jupyter \ub178\ud2b8\ubd81 \uc140\uc5d0\uc11c \uc218\ud589)<\/p>\n<div class=\"hide-language\">\n<pre class=\"unlimited-height-code\"><code class=\"lang-python\"># Replace with an S3 location or local path to point to your own dataset\nraw_data_location = 's3:\/\/sagemaker-solutions-us-west-2\/Fraud-detection-in-financial-networks\/data'\n\nbucket = 'SAGEMAKER_S3_BUCKET'\nprefix = 'dgl'\ninput_data = 's3:\/\/{}\/{}\/raw-data'.format(bucket, prefix)\n\n!aws s3 cp --recursive $raw_data_location $input_data\n# Set S3 locations to store processed data for training and post-training results and artifacts respectively\ntrain_data = 's3:\/\/{}\/{}\/processed-data'.format(bucket, prefix)\ntrain_output = 's3:\/\/{}\/{}\/output'.format(bucket, prefix)<\/code><\/pre>\n<\/div>\n<p>\uc774\uc0c1 \uac70\ub798\uc790\ub4e4\uc758 \ud589\ub3d9\uc744 \uac00\ub9ac\uae30 \uc704\ud55c \ub178\ub825\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0, \uc774\uc0c1 \ub610\ub294 \uc545\uc758\uc801\uc778 \ud589\ub3d9\ub4e4\uc740 \uadf8\ub798\ud504 \uad6c\uc870\uc5d0\uc11c \ub192\uc740 \uc544\uc6c3-\ub514\uadf8\ub9ac(out-degree) \ub610\ub294 \ud589\ub3d9 \uc9d1\uacc4(activity aggregation)\uacfc \uac19\uc740 \uc99d\uac70\ub85c \uc885\uc885 \ub0a8\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \uc808\ub4e4\uc5d0\uc11c\ub294 \uc774\ub7f0 \ud328\ud134\ub4e4\uc744 \ud65c\uc6a9\ud55c \uc774\uc0c1 \uc608\uce21 GNN \ubaa8\ub378\uc744 \ub9cc\ub4e4\uae30 \uc704\ud55c, \ud2b9\uc131 \ucd94\ucd9c\uacfc \uadf8\ub798\ud504 \uc0dd\uc131\uc744 \uc5b4\ub5bb\uac8c \ud574\uc57c\ud558\ub294\uc9c0 \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\ud2b9\uc131 \ucd94\ucd9c(Feature Extraction)<br \/> <\/strong><\/p>\n<p>\ud2b9\uc131 \ucd94\ucd9c\uc740 \uce74\ud14c\uace0\ub9ac \ud2b9\uc131\ub4e4\uc5d0 \ub300\ud55c \uc218\uce58\ud654\uc640 \uc218\uce58 \uceec\ub7fc\ub4e4\uc5d0 \ub300\ud55c \uba87 \uac00\uc9c0 \ubcc0\ud658\uc73c\ub85c \uc774\ub904\uc9d1\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc0c1\ub300\uc801\uc778 \uac70\ub798\uc758 \ud06c\uae30\ub97c \uad6c\ubd84\ud558\uae30 \uc704\ud574\uc11c \uac70\ub798\ub7c9\uc5d0 \ub85c\uadf8\ub97c \uc801\uc6a9\ud55c \ubcc0\ud654\ub97c \ud558\uac70\ub098, \uce74\ud14c\uace0\ub9ac \uc18d\uc131\ub4e4\uc740 \uc6d0-\ud56b-\ubca1\ud130\ub97c \uc0ac\uc6a9\ud55c \uc218\uce58 \ud615\ud0dc\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac01 \uac70\ub798\ub294 \uc774\uc804 \uac70\ub798\uc640 \uc2dc\uac04 \ucc28\uc774, \uc774\ub984 \ubc0f \uc8fc\uc18c \uc77c\uce58, \uadf8\ub9ac\uace0 \uc218\ub7c9\uc5d0 \ub300\ud55c \uc77c\uce58 \ub4f1\uc758 \uc815\ubcf4\ub97c \ub2f4\uace0 \uc788\ub294 \uac70\ub798 \ud14c\uc774\ube14\ub85c\ubd80\ud130 \uc5bb\uc740 \uc18d\uc131\uc744 \ud2b9\uc131 \ubca1\ud130\uc5d0 \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\uadf8\ub798\ud504 \uad6c\uc131\ud558\uae30<\/strong><\/p>\n<p>\uc804\uccb4 \uc0c1\ud638\uc791\uc6a9 \uadf8\ub798\ud504\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c, \ub370\uc774\ud130\uc758 \uad00\uacc4 \uc815\ubcf4\ub97c \uac01 \uad00\uacc4 \uc885\ub958\ubcc4 \uc5d0\uc9c0 \ub9ac\uc2a4\ud2b8\ub85c \ub098\ub215\ub2c8\ub2e4. \uac01 \uc5d0\uc9c0 \ub9ac\uc2a4\ud2b8\ub294 \uac70\ub798 \ub178\ub4dc\uc640 \ub2e4\ub978 \uc5d4\ud130\ud2f0 \uc885\ub958\ub4e4 \uc0ac\uc774\uc758 \uc774\ubd84 \uadf8\ub798\ud504(bipartite graph)\uac00 \ub429\ub2c8\ub2e4. \uc5d4\ud130\ud2f0 \uc885\ub958\ub4e4\uc740 \uac70\ub798\uc5d0 \ub300\ud55c \uc18d\uc131\uc744 \uad6c\ubd84\ud558\ub294 \uc815\ubcf4\ub4e4\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uac70\ub798\uc5d0 \uc0ac\uc6a9\ub41c \uce74\ub4dc\uc758 \uc885\ub958(\uc2e0\uc6a9\uce74\ub4dc \ub610\ub294 \uc9c1\ubd88\uce74\ub4dc), \uac70\ub798\uc5d0 \uc0ac\uc6a9\ub41c \ub514\ubc14\uc774\uc2a4\uc758 IP \uc8fc\uc18c \ub610\ub294 \uc0ac\uc6a9\ub41c \ub514\ubc14\uc774\uc2a4\uc758 ID\ub098 \uc6b4\uc601\uccb4\uacc4\uc640 \uac19\uc740 \uac83\uc774 \uc5d4\ud130\ud2f0\uc758 \uc885\ub958\ub4e4\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub798\ud504 \uad6c\uc131\uc5d0 \uc0ac\uc6a9\ub418\ub294 \uc5d4\ud130\ud2f0 \uc885\ub958\ub294 \uc2dd\ubcc4 \ud14c\uc774\ube14\uacfc \uac70\ub798 \ud14c\uc774\ube14\uc758 \uc77c\ubd80 \uc18d\uc131(\uc2e0\uc6a9 \uce74\ub4dc \uc815\ubcf4 \ub610\ub294 \uc774\uba54\uc77c \ub3c4\uba54\uc778)\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \uc18d\uc131\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \uc774\uc885 \uadf8\ub798\ud504\ub294 \uac01 \uad00\uacc4 \ud0c0\uc785\uc5d0 \ub300\ud55c \uc5d0\uc9c0 \ubaa9\ub85d\uacfc \ub178\ub4dc\ub4e4\uc758 \ud2b9\uc131 \ud589\ub82c\uc744 \uc0ac\uc6a9\ud574\uc11c \ub9cc\ub4e4\uc5b4\uc9d1\ub2c8\ub2e4.<\/p>\n<p><strong>Amazon SageMaker Processing \uc0ac\uc6a9\ud558\uae30<\/strong><\/p>\n<p>Amazon SageMaker Processing\uc744 \uc0ac\uc6a9\ud574\uc11c \ub370\uc774\ud130 \uc804\ucc98\ub9ac \ubc0f \ud2b9\uc131 \ucd94\ucd9c \ub2e8\uacc4\ub97c \uc218\ud589\ud569\ub2c8\ub2e4. Amazon SageMaker Processing\uc740 Amazon SageMaker\uc758 \uae30\ub2a5\uc73c\ub85c \uc644\uc804 \uad00\ub9ac\ud615 \uc778\ud504\ub77c\ub97c \ud65c\uc6a9\ud574\uc11c \uc804\ucc98\ub9ac \ubc0f \ud6c4\ucc98\ub9ac \uc6cc\ud06c\ub85c\ub4dc\ub97c \uc218\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc0c1\uc138\ud55c \ub0b4\uc6a9\uc740 <a href=\"https:\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/processing-job.html\">Process Data and Evaluate Models<\/a>\ub97c \ucc38\uc870\ud574\uc8fc\uc138\uc694.<\/p>\n<p>\uc6b0\uc120 Amazon SageMaker Processing \uc791\uc5c5\uc774 \uc0ac\uc6a9\ud560 \ucee8\ud14c\uc774\ub108\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. \uc774 \ucee8\ud14c\uc774\ub108\ub294 \ub370\uc774\ud130 \uc804\ucc98\ub9ac \uc2a4\ud06c\ub9bd\ud2b8\uac00 \ud544\uc694\ud55c \ubaa8\ub4e0 \uad00\ub828 \ud328\ud0a4\uc9c0\ub97c \ub2f4\uace0 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774 \uc608\uc81c\ub294 pandas \ub77c\uc774\ube0c\ub7ec\ub9ac\ub9cc \uc0ac\uc6a9\ud574\uc11c \ub370\uc774\ud130\ub97c \uc804\ucc98\ub9ac\ub97c \ud558\uae30 \ub54c\ubb38\uc5d0, \ucd5c\uc18c\ud55c\uc758 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ud3ec\ud568\ub41c Dockerfile\uc744 \uc0ac\uc6a9\ud574\uc11c \ucee8\ud14c\uc774\ub108\ub97c \uc544\ub798 \ucf54\ub4dc\uc640 \uac19\uc774 \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"hide-language\">\n<pre class=\"unlimited-height-code\"><code class=\"lang-python\">FROM python:3.7-slim-buster\n\nRUN pip3 install pandas==0.24.2\nENV PYTHONUNBUFFERED=TRUE\n\nENTRYPOINT [&quot;python3&quot;]<\/code><\/pre>\n<\/div>\n<p>\ub2e4\uc74c \ucf54\ub4dc\ub294 \ucee8\ud14c\uc774\ub108\ub97c \ube4c\ub4dc\ud558\uace0 \uc774\ub97c <a href=\"http:\/\/aws.amazon.com\/ecr\/\">Amazon Elastic Container Registry<\/a> (Amazon ECR) \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ud478\uc2dc\ub97c \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"hide-language\">\n<pre class=\"unlimited-height-code\"><code class=\"lang-python\">import boto3\n\nregion = boto3.session.Session().region_name\naccount_id = boto3.client('sts').get_caller_identity().get('Account')\necr_repository = 'sagemaker-preprocessing-container'\necr_repository_uri = '{}.dkr.ecr.{}.amazonaws.com\/{}:latest'.format(account_id, region, ecr_repository)\n\n!bash data-preprocessing\/container\/build_and_push.sh $ecr_repository docker<\/code><\/pre>\n<\/div>\n<p>\ub370\uc774\ud130 \uc804\ucc98\ub9ac \ucee8\ud14c\uc774\ub108\uac00 \uc900\ube44\ub41c \ud6c4, \uadf8 \uc804\ucc98\ub9ac \ucee8\ud14c\uc774\ub108\ub97c \uc774\uc6a9\ud558\ub294 Processing \uc791\uc5c5\uc744 \uad6c\uc131\ud560 Amazon SageMaker ScriptProcessor \ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc774 ScriptProcessor \ub97c \ud1b5\ud574\uc11c <a href=\"https:\/\/github.com\/awslabs\/sagemaker-graph-fraud-detection\/blob\/master\/source\/sagemaker\/data-preprocessing\/graph_data_preprocessor.py\">Python script<\/a>\uac00 \uc218\ud589\ub418\ub294\ub370, \uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ucee8\ud14c\uc774\ub108\ub85c \uc815\uc758\ub41c \ud658\uacbd\uc5d0\uc11c \uc218\ud589\ub420 \ub370\uc774\ud130 \uc804\ucc98\ub9ac\uac00 \uad6c\ud604\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. Python \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\uc774 \uc644\ub8cc\ub418\uba74 Processing \uc791\uc5c5\ub3c4 \uc885\ub8cc\ub418\uba70, \uc804\ucc98\ub9ac\uac00 \uc644\ub8cc\ub41c \ub370\uc774\ud130\ub294 \ub2e4\uc2dc Amazon S3\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4. \uc774 \uacfc\uc815\ub4e4\uc740 \uc644\uc804\ud788 Amazon SageMaker\uc5d0 \uc758\ud574\uc11c \uad00\ub9ac\ub429\ub2c8\ub2e4. ScriptProcessor \ub97c \uc218\ud589\ud560 \ub54c, \ub370\uc774\ud130 \uc804\ucc98\ub9ac \uc2a4\ud06c\ub9bd\ud2b8\uc5d0 \uba85\ub839 \ubcc0\uc218\ub4e4\uc744 \uc804\ub2ec \ud560 \uc218 \uc788\ub294 \uc635\uc158\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uac70\ub798 \ud14c\uc774\ube14\uc5d0\uc11c \uc5b4\ub5a4 \uceec\ub7fc\uc774 \uc2dd\ubcc4 \uceec\ub7fc\uc778\uc9c0, \uc5b4\ub5a4 \uceec\ub7fc\ub4e4\uc774 \uce74\ud14c\uace0\ub9ac \ud2b9\uc131\ub4e4\uc778\uc9c0\ub97c \uc124\uc815\ud569\ub2c8\ub2e4. \ubaa8\ub4e0 \uceec\ub7fc\ub4e4\uc740 \uc218\uce58 \ud2b9\uc131\uc73c\ub85c \uac04\uc8fc\ub429\ub2c8\ub2e4. \uc544\ub798 \ucf54\ub4dc\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<div class=\"hide-language\">\n<pre class=\"unlimited-height-code\"><code class=\"lang-python\">from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput\n\nscript_processor = ScriptProcessor(command=['python3'],\n                                   image_uri=ecr_repository_uri,\n                                   role=role,\n                                   instance_count=1,\n                                   instance_type='ml.r5.24xlarge')\n\nscript_processor.run(code='data-preprocessing\/graph_data_preprocessor.py',\n                     inputs=[ProcessingInput(source=input_data,\n                                             destination='\/opt\/ml\/processing\/input')],\n                     outputs=[ProcessingOutput(destination=train_data,\n                                               source='\/opt\/ml\/processing\/output')],\n                     arguments=['--id-cols', 'card1,card2,card3,card4,card5,card6,ProductCD,addr1,addr2,P_emaildomain,R_emaildomain',\n                                '--cat-cols',' M1,M2,M3,M4,M5,M6,M7,M8,M9'])<\/code><\/pre>\n<\/div>\n<p>\uc544\ub798 \ucf54\ub4dc \uc608\ub294 Amazon S3\uc5d0 \uc800\uc7a5\ub41c Amazon SageMaker Processing \uc791\uc5c5\uc758 \uacb0\uacfc\ub4e4\uc785\ub2c8\ub2e4.<\/p>\n<div class=\"hide-language\">\n<pre><code class=\"lang-python\">from os import path\nfrom sagemaker.s3 import S3Downloader\nprocessed_files = S3Downloader.list(train_data)\nprint(&quot;===== Processed Files =====&quot;)\nprint('n'.join(processed_files))\n\nOutput:\n===== Processed Files =====\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/features.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_DeviceInfo_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_DeviceType_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_P_emaildomain_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_ProductCD_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_R_emaildomain_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_TransactionID_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_addr1_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_addr2_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_card1_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_card2_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_card3_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_card4_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_card5_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_card6_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_01_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_02_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_03_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_04_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_05_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_06_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_07_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_08_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_09_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_10_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_11_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_12_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_13_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_14_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_15_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_16_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_17_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_18_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_19_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_20_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_21_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_22_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_23_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_24_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_25_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_26_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_27_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_28_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_29_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_30_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_31_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_32_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_33_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_34_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_35_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_36_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_37_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/relation_id_38_edgelist.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/tags.csv\ns3:\/\/graph-fraud-detection\/dgl\/processed-data\/test.csv<\/code><\/pre>\n<\/div>\n<p>\uad00\uacc4 \uc5d0\uc9c0\ub9ac\uc2a4\ud2b8 \ud30c\uc77c\ub4e4\uc740 \ud559\uc2b5\uc5d0 \ud544\uc694\ud55c \uc774\uc885 \uadf8\ub798\ud504\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc11c\ub85c \ub2e4\ub978 \uc5d0\uc9c0 \uc885\ub958\ub4e4\uc744 \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4. features.csv \ud30c\uc77c\uc740 \uac70\ub798 \ub178\ub4dc\uc758 \ubcc0\uacbd\uc774 \uc644\ub8cc\ub41c \ud2b9\uc131\ub4e4\uc744 \uac00\uc9c0\uace0 \uc788\uace0, tags.csv \ud30c\uc77c\uc740 \uc9c0\ub3c4 \ud559\uc2b5\uc758 \uc2dc\uadf8\ub110\ub85c \uc0ac\uc6a9\ud560 \ub178\ub4dc\uc5d0 \ub300\ud55c \ub808\uc774\ube14\uc744 \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4. test.csv \ud30c\uc77c\uc740 \ubaa8\ub378\uc758 \uc131\ub2a5\uc744 \ud3c9\uac00\ud558\uae30 \uc704\ud55c \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\uc14b\uc73c\ub85c \uc0ac\uc6a9\ud560 TransactionID \ub370\uc774\ud130\ub97c \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub178\ub4dc\ub4e4\uc5d0 \ub300\ud55c \ub808\uc774\ube14\uc740 \ud559\uc2b5 \uacfc\uc815\uc5d0\uc11c \uac00\ub824\uc9d1\ub2c8\ub2e4.<\/p>\n<h3><strong>GNN \ubaa8\ub378 \ud559\uc2b5\ud558\uae30<br \/> <\/strong><\/h3>\n<p>\uc790, \uc774\uc81c Deep Graph Library(DGL)\ub97c \uc0ac\uc6a9\ud574\uc11c \uadf8\ub798\ud504\uc640 GNN \ubaa8\ub378\uc744 \uc815\uc758\ud560 \uc218 \uc788\uace0, Amazon SageMaker\ub97c \uc0ac\uc6a9\ud574\uc11c GNN \ud559\uc2b5\uc744 \uc704\ud55c \uc778\ud504\ub77c\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubb38\uc81c\ub294 <a href=\"https:\/\/arxiv.org\/abs\/1703.06103\">Relational Graph Convolutional<\/a> \ub274\ub7f4 \ub124\ud2b8\uc6cc\ud06c \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud574\uc11c \uc774\uc885 \uadf8\ub798\ud504\uc758 \uac01 \ub178\ub4dc\uc758 \uc784\ubca0\ub529\uc744 \ud559\uc2b5\ud558\uace0, \uc644\uc804 \uc5f0\uacb0 \ub808\uc774\uc5b4\ub97c \uc0ac\uc6a9\ud574\uc11c \ucd5c\uc885 \ub178\ub4dc \ubd84\ub958 \ubaa8\ub378\uc744 \ud559\uc2b5\ud569\ub2c8\ub2e4.<\/p>\n<p><strong>\ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130\ub4e4<\/strong><\/p>\n<p>GNN\uc744 \ud559\uc2b5\ud558\uae30 \uc704\ud574\uc11c \uba87 \uac00\uc9c0 \ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130\ub4e4\uc744 \uc815\uc758\ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130\uc5d0\ub294 \ub9cc\ub4e4 \uadf8\ub798\ud504 \uc885\ub958, \uc0ac\uc6a9\ud560 \ubaa8\ub378\uc758 \ud074\ub798\uc2a4, \ub124\ud2b8\uc6cc\ud06c \uad6c\uc870, \ucd5c\uc801\ud654 \uc54c\uace0\ub9ac\uc998\uacfc \ucd5c\uc801\ud654 \ud30c\ub77c\ubbf8\ud130\ub4e4\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \ucf54\ub4dc\ub97c \ucc38\uace0\ud558\uc138\uc694.<\/p>\n<div class=\"hide-language\">\n<pre class=\"unlimited-height-code\"><code class=\"lang-python\">edges = &quot;,&quot;.join(map(lambda x: x.split(&quot;\/&quot;)[-1], [file for file in processed_files if &quot;relation&quot; in file]))\nparams = {'nodes' : 'features.csv',\n          'edges': 'relation*.csv',\n          'labels': 'tags.csv',\n          'model': 'rgcn',\n          'num-gpus': 1,\n          'batch-size': 10000,\n          'embedding-size': 64,\n          'n-neighbors': 1000,\n          'n-layers': 2,\n          'n-epochs': 10,\n          'optimizer': 'adam',\n          'lr': 1e-2\n         }<\/code><\/pre>\n<\/div>\n<p>\uc704 \ucf54\ub4dc\uc5d0\uc11c \uba87 \uac00\uc9c0 \ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130\ub4e4\uc744 \uc124\uc815\ud558\uace0 \uc788\ub294\ub370, \ubaa8\ub4e0 \ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130\uc640 \uae30\ubcf8 \uac12\ub4e4\uc740 Github \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 <a href=\"https:\/\/github.com\/awslabs\/sagemaker-graph-fraud-detection\/blob\/master\/source\/sagemaker\/dgl-fraud-detection\/estimator_fns.py\">estimator_fns.py<\/a> \ub97c \ucc38\uace0\ud788\uc138\uc694.<\/p>\n<p><strong>Amazon SageMaker\ub97c \uc774\uc6a9\ud55c \ubaa8\ub378 \ud559\uc2b5<\/strong><\/p>\n<p>\ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130\ub4e4\uc744 \uc815\uc758\ud558\uba74, \ud559\uc2b5 \uc791\uc5c5\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud559\uc2b5 \uc791\uc5c5\uc740 GNN\uc744 \uc815\uc758\ud558\uace0 \ud559\uc2b5\ud558\uae30 \uc704\ud574\uc11c MXNet\uc744 \ubc31\uc564\ub4dc\ub85c DGL\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. Amazon SageMaker\ub294 \ub525\ub7ec\ub2dd \ud504\ub808\uc784\uc6cc\ud06c \ud658\uacbd\uc774 \ubbf8\ub9ac \uc124\uc815\ub418\uc5b4 \uc788\ub294 \ud504\ub808\uc784\uc6cc\ud06c estimator\ub4e4\uc744 \uc0ac\uc6a9\ud574\uc11c GNN \ubaa8\ub378\uc744 \uc27d\uac8c \ud559\uc2b5\ud560 \uc218 \uc788\ub3c4\ub85d \ub9cc\ub4e4\uc5b4 \uc90d\ub2c8\ub2e4. Amazon SageMaker\uc5d0\uc11c DGL\uc744 \uc0ac\uc6a9\ud55c GNN \ud559\uc2b5\uc5d0 \ub300\ud55c \ub354 \ub9ce\uc740 \uc815\ubcf4\ub294 <a href=\"https:\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/deep-graph-library.html\">Train a Deep Graph Network<\/a>\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<p>\uc774\uc81c Amazon SageMaker MXNet estimator\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774 \ub54c, \ubaa8\ub378 \ud559\uc2b5 \uc2a4\ud06c\ub9bd\ud2b8, \ud558\uc774\ud37c\ud30c\ub77c\ubbf8\ud130, \ud559\uc2b5\uc5d0 \uc0ac\uc6a9\ud560 \uc778\uc2a4\ud134\uc2a4 \uac1c\uc218\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. estimator \uac1d\uccb4\uc5d0 fit \uc744 \ud638\ucd9c\ud558\uba74\uc11c, Amazon S3\uc5d0 \uc800\uc7a5\ub418\uc5b4 \uc788\ub294 \ud559\uc2b5 \ub370\uc774\ud130 \uc704\uce58\ub97c \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"hide-language\">\n<pre class=\"unlimited-height-code\"><code class=\"lang-python\">from sagemaker.mxnet import MXNet\n\nestimator = MXNet(entry_point='train_dgl_mxnet_entry_point.py',\n                  source_dir='dgl-fraud-detection',\n                  role=role,\n                  train_instance_count=1,\n                  train_instance_type='ml.p2.xlarge',\n                  framework_version=&quot;1.6.0&quot;,\n                  py_version='py3',\n                  hyperparameters=params,\n                  output_path=train_output,\n                  code_location=train_output,\n                  sagemaker_session=sess)\n\nestimator.fit({'train': train_data})<\/code><\/pre>\n<\/div>\n<p><strong>\ud559\uc2b5 \uacb0\uacfc<\/strong><\/p>\n<p>GNN \ud559\uc2b5\uc774 \uc644\ub8cc\ub418\uba74, \ubaa8\ub378\uc740 \uc801\ubc95\ud55c \uac70\ub798\uc640 \uc774\uc0c1 \uac70\ub798\ub97c \uad6c\ubd84\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. \ud559\uc2b5 \uc791\uc5c5\uc740 pred.csv \ud30c\uc77c\uc744 \uc0dd\uc131\ud558\ub294\ub370, \uc774 \ud30c\uc77c\uc740 test.csv \ud30c\uc77c\uc5d0 \uc788\ub294 \uac70\ub798\uc5d0 \ub300\ud55c \uc608\uce21 \uacb0\uacfc\ub97c \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4. ROC \ucee4\ube0c\ub294 true positive \ube44\uc728\uacfc false positive \ube44\uc728\uc758 \uad00\uacc4\ub97c \uc5ec\ub7ec \uc784\uacc4\uce58\uc5d0 \ub300\ud574\uc11c \ubcf4\uc5ec\uc8fc\uba70, AUC(Area Under the Curve)\ub294 \ud3c9\uac00 \uc9c0\ud45c\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \uadf8\ub798\ud504\ub294 \uc6b0\ub9ac\uac00 \ud559\uc2b5\uc2dc\ud0a8 GNN \ubaa8\ub378\uc774 \uc644\uc804 \uc5f0\uacb0 \ud53c\ub4dc \ud3ec\uc6cc\ub4dc \ub124\ud2b8\uc6cc\ud06c\uc640 gradient boosted tree \ubcf4\ub2e4 \uc131\ub2a5\uc774 \uc6b0\uc218\ud55c \uac83\uc744 \ubcf4\uc5ec\uc8fc\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \ubaa8\ub378\uc740 \uadf8\ub798\ud504 \uad6c\uc870\uc5d0 \ub300\ud55c \uc774\uc810\uc744 \uc0b4\ub9ac\uc9c0 \ubabb\ud558\uace0, \ud2b9\uc131\ub4e4\ub9cc \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59\/2020\/06\/16\/heterogeneous-networks-sagemaker-3.gif\" \/><\/p>\n<h3><strong>\uacb0\ub860<\/strong><\/h3>\n<p>\uc774 \uae00\uc5d0\uc11c \uc6b0\ub9ac\ub294 \uc0ac\uc6a9\uc790 \uac70\ub798 \ubc0f \ud65c\ub3d9 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\uc11c \uc774\uc885 \uadf8\ub798\ud504\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uacfc \uadf8\ub798\ud504\uc640 \uc218\uc9d1\ub41c \ub2e4\ub978 \uc815\ubcf4\ub97c \uc0ac\uc6a9\ud574\uc11c \uac70\ub798\uac00 \uc774\uc0c1 \uac70\ub798\uc778\uc9c0 \uc608\uce21\ud558\ub294 \ubaa8\ub378\uc744 \ud559\uc2b5\ud558\ub294 \ubc95\uc744 \uc0b4\ud3b4\ubd24\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc774 \uacfc\uc81c\uc5d0 \ub300\ud574\uc11c \ub192\uc740 \uc131\ub2a5\uc744 \ubcf4\uc5ec\uc8fc\ub294 GNN\uc744 \uc815\uc758\ud558\uace0 \ud559\uc2b5\ud558\ub294\ub370 \uc788\uc5b4\uc11c DGL\uacfc Amazon SageMaker\ub97c \uc5b4\ub5bb\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uae30\ub3c4 \ud588\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub85c\uc81d\ud2b8\uc640 \ub2e4\ub978 GNN \ubaa8\ub378\ub4e4\uc5d0 \ub300\ud55c \uc804\uccb4 \uad6c\ud604\uc740 GitHub repo\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ucd94\uac00\uc801\uc73c\ub85c \uc6b0\ub9ac\ub294 Amazon SageMaker Processing\uc744 \uc0ac\uc6a9\ud574\uc11c \uc6d0\ubcf8 \uac70\ub798 \ub85c\uadf8\uc5d0\uc11c \uc758\ubbf8 \uc788\ub294 \ud2b9\uc131\uacfc \uad00\uacc4\ub97c \ucd94\ucd9c\ud558\ub294 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc5b4\ub5bb\uac8c \uc218\ud589\ud558\ub294\uc9c0\ub3c4 \uc0b4\ud3b4\ubd24\uc2b5\ub2c8\ub2e4. \uc5ec\ub7ec\ubd84\uc740 \uc81c\uacf5\ub41c CloudFormation \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud574\uc11c \ubc30\ud3ec\ud558\uace0, \uc5ec\ub7ec\ubd84\uc758 \ub370\uc774\ud130\ub97c \uc774\uc6a9\ud558\uba74, \uc545\uc758\uc801\uc778 \uc0ac\uc6a9\uc790\ub098 \uc774\uc0c1 \uac70\ub798\ub97c \ud0d0\uc9c0\ud558\ub294 \ud504\ub85c\uc81d\ud2b8\ub97c \ubc14\ub85c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-13013\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59\/2020\/06\/16\/soji-adeshina-100.jpg\" alt=\"\" width=\"100\" height=\"132\" \/><strong>Soji Adeshina<\/strong>\ub294 AWS \uace0\uac1d\uc744\uc704\ud55c \ub525 \ub7ec\ub2dd \uae30\ubc18 \uc194\ub8e8\uc158 \uac1c\ubc1c\uc744 \ub2f4\ub2f9\ud558\ub294 \uae30\uacc4 \ud559\uc2b5 \uac1c\ubc1c\uc790\uc785\ub2c8\ub2e4. \ud604\uc7ac \uae08\uc735 \uc11c\ube44\uc2a4 \ubc0f \uad11\uace0 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \uc0ac\uc6a9\ud558\uc5ec \uadf8\ub798\ud504 \ud559\uc2b5\uc744\ud558\uace0 \uc788\uc9c0\ub9cc \ucef4\ud4e8\ud130 \ube44\uc804 \ubc0f \ucd94\ucc9c \uc2dc\uc2a4\ud15c\uc5d0 \ub300\ud55c \ubc30\uacbd \uc9c0\uc2dd\ub3c4 \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\u2013 \ubc88\uc5ed: \uae40\ubb34\ud604 \ub370\uc774\ud130 \uc0ac\uc774\uc5b8\ud2f0\uc2a4\ud2b8, Amazon Machine Learning Solutions Lab, AWS<\/p>\n<p><em>\uc774 \uae00\uc740 <a href=\"https:\/\/aws.amazon.com\/blogs\/machine-learning\/\">AWS Machine Learning Blog<\/a>\uc758 <a href=\"https:\/\/aws.amazon.com\/blogs\/machine-learning\/detecting-fraud-in-heterogeneous-networks-using-amazon-sagemaker-and-deep-graph-library\/\">Detecting fraud in heterogeneous networks using Amazon SageMaker and Deep Graph Library<\/a>\uc758 \ud55c\uad6d\uc5b4 \ubc88\uc5ed\uc785\ub2c8\ub2e4.<\/em><\/p>\n<p>Source: <a href=\"https:\/\/aws.amazon.com\/ko\/blogs\/korea\/detecting-fraud-in-heterogeneous-networks-using-amazon-sagemaker-and-deep-graph-library\/\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon SageMaker\uc640 Deep Graph Library\ub97c \uc774\uc6a9\ud55c \uc774\uc885 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc0ac\uae30 \ud0d0\uc9c0\ud558\uae30<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Amazon SageMaker\uc640 Deep Graph Library\ub97c \uc774\uc6a9\ud55c \uc774\uc885 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc0ac\uae30 \ud0d0\uc9c0\ud558\uae30 \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc758\uc2ec\uc2a4\ub7ec\uc6b4 \uacc4\uc815\uc73c\ub85c \uc778\ud574\uc11c \ub9e4\ub144 \uc218 \uc2ed\uc870 \uc6d0\uc758 \uc190\uc2e4\uc774 \ubc1c\uc0dd\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc545\uc758\uc801\uc778 \ud589\ub3d9\ub4e4\uc774 \uc77c\uc5b4\ub098\ub294 \uac83\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c \ub9ce\uc740 \uae30\uc5c5\ub4e4\uc740 \uaddc\uce59 \uae30\ubc18 \ud544\ud130\ub97c \uc801\uc6a9\ud558\uace0 \uc788\uc9c0\ub9cc, \uc774 \ud544\ud130\ub4e4\uc740 \ub2e4\ub8e8\uae30 \ud798\ub4e4\uae30\ub3c4 \ud558\uace0 \uc545\uc758\uc801\uc778 \ud589\ub3d9 \uc804\uccb4\ub97c \uc7a1\uc544\ub0b4\uc9c0 \ubabb\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uadf8\ub798\ud504 \uae30\uc220\uacfc \uac19\uc740 \uc194\ub8e8\uc158\ub4e4\uc740 \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc545\uc758\uc801\uc778 \uc0ac\uc6a9\uc790\ub97c \ud0d0\uc9c0\ud558\ub294\ub370 \uc544\uc8fc \uc801\ud569\ud569\ub2c8\ub2e4. \uc774\uc0c1 \ud589\uc704\uc790\ub294 \uaddc\uce59 \uae30\ubc18\uc758 \uc2dc\uc2a4\ud15c\uc774\ub098 \ub2e8\uc21c\ud55c \ud2b9\uc9d5 \uae30\ubc18\uc758 \ubaa8\ub378\uc744 \uc18d\uc774\uae30 \uc704\ud574\uc11c \uadf8\ub4e4\uc774 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \uc9c4\ud654\uc2dc\ud0a4\uc9c0\ub9cc, \uadf8\ub798\ud504 \uad6c\uc870\ub098 \uc0ac\uc6a9\uc790\uc640 \ub2e4\ub978 \ucc38\uc5ec\uc790\ub4e4 \uc0ac\uc774\uc758 \uac70\ub798\ub098 \uc0c1\ud638 \ud65c\ub3d9 \ub85c\uadf8\uc5d0 \ub2f4\uae34 \uad00\uacc4\ub97c \uc18d\uc774\ub294 \uac83\uc740 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \uadf8\ub798\ud504 \ub274\ub7f4 \ub124\ud2b8\uc6cc\ud06c(GNN)\uc740 \uc0ac\uc6a9\uc790\ub098 \uac70\ub798\uc758 \uc18d\uc131\uacfc \ud568\uaed8 \uadf8\ub798\ud504 \uad6c\uc870\ub85c\ubd80\ud130 \uc815\ubcf4\ub97c \uc870\ud569\ud574\uc11c \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc774\ubca4\ud2b8\ub97c \uc801\ubc95\ud55c \ud589\uc704\ub098 \uc774\ubca4\ud2b8\ub85c\ubd80\ud130 \uad6c\ubcc4\ud560 \uc218 \uc788\ub294 \ud45c\ud604\uc744 \ubc30\uc6c1\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c Amazon SageMaker\uc640 Deep Graph Library (DGL)\ub97c \uc0ac\uc6a9\ud574\uc11c GNN \ubaa8\ub378\uc744 \ud559\uc2b5\uc2dc\ud0a4\uace0 \uc774\uc0c1 \ud589\uc704\uc790\ub098 \uc774\uc0c1 \uac70\ub798\ub97c \ud0d0\uc9c0\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. \uc774\uc0c1 \ud0d0\uc9c0\ub97c \uc644\uc804 \uad00\ub9ac\ud615 AWS AI \uc11c\ube44\uc2a4\ub85c \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc740 \uae30\uc5c5\ub4e4\uc740 Amazon <a class=\"mh-excerpt-more\" href=\"https:\/\/jirak.net\/wp\/amazon-sagemaker%ec%99%80-deep-graph-library%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%9d%b4%ec%a2%85-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac%ec%97%90%ec%84%9c-%ec%82%ac%ea%b8%b0-%ed%83%90%ec%a7%80\/\" title=\"Amazon SageMaker\uc640 Deep Graph Library\ub97c \uc774\uc6a9\ud55c \uc774\uc885 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc0ac\uae30 \ud0d0\uc9c0\ud558\uae30\">[ more&#8230; ]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":37365,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[169],"tags":[656],"class_list":["post-37364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-aws"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts\/37364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/comments?post=37364"}],"version-history":[{"count":1,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts\/37364\/revisions"}],"predecessor-version":[{"id":37366,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts\/37364\/revisions\/37366"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/media\/37365"}],"wp:attachment":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/media?parent=37364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/categories?post=37364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/tags?post=37364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}