Аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангилал

Аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангилал

Агуулгад үндэслэн өгөгдлийг ангилах нь нээлттэй ажил юм. Уламжлалт өгөгдөл алдагдлаас урьдчилан сэргийлэх (DLP) системүүд нь холбогдох өгөгдлийг хурууны хээгээр авах, хурууны хээ авах төгсгөлийн цэгүүдийг хянах замаар энэ асуудлыг шийддэг. Фэйсбүүк дээр байнга өөрчлөгдөж байдаг олон тооны мэдээллийн нөөцийг харгалзан үзэхэд энэ арга нь цар хүрээгээ тэлэхээс гадна өгөгдөл хаана байгааг тодорхойлоход үр ашиггүй юм. Энэ нийтлэл нь Facebook-ийн мэдрэмтгий семантик төрлүүдийг масштабаар илрүүлж, өгөгдөл хадгалах, хандалтын хяналтыг автоматаар хэрэгжүүлэх зорилгоор бүтээгдсэн төгсгөл хоорондын системийн тухай юм.

Энд тайлбарласан арга бол Facebook дээрх бүх өгөгдлийг харуулах, ангилахын тулд өгөгдлийн дохио, машин сургалт, хурууны хээний уламжлалт арга техникийг нэгтгэх замаар энэ асуудлыг шийдэхийг оролддог бидний анхны төгсгөлөөс төгсгөл хүртэлх нууцлалын систем юм. Тайлбарласан систем нь үйлдвэрлэлийн орчинд ажилладаг бөгөөд нууцлалын янз бүрийн ангиудад дунджаар 2+ F0,9 оноо авч, олон арван хадгалах санд олон тооны мэдээллийн нөөцийг боловсруулдаг. Машины сургалтанд тулгуурлан аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангиллын тухай ArXiv дээрх Facebook нийтлэлийн орчуулгыг танилцуулж байна.

Танилцуулга

Өнөөдөр байгууллагууд их хэмжээний өгөгдлийг янз бүрийн формат, байршилд цуглуулж, хадгалдаг [1], дараа нь өгөгдлийг олон газар хэрэглэж, заримдаа олон удаа хуулж эсвэл кэш хийдэг бөгөөд үүний үр дүнд бизнесийн үнэ цэнэтэй, эмзэг мэдээллийг олон компанийн мэдээллийн санд тараадаг. Байгууллага нь иргэний хэрэг шүүхэд хянан шийдвэрлэх ажиллагааны зохицуулалтыг дагаж мөрдөх гэх мэт хууль эрх зүйн болон зохицуулалтын тодорхой шаардлагыг дагаж мөрдөх шаардлагатай үед шаардлагатай мэдээллийн байршлын талаархи мэдээллийг цуглуулах шаардлагатай болдог. Хувийн мэдээллийг нууцлалыг хамгаалах журамд байгууллага нь хувийн мэдээллийг зөвшөөрөлгүй этгээдэд шилжүүлэхдээ бүх Нийгмийн даатгалын дугаарыг (SSN) далдлах ёстой гэж заасан бол хамгийн эхний алхам бол бүх SSN-ийг байгууллагын хэмжээнд мэдээллийн сангаас хайх явдал юм. Ийм нөхцөлд өгөгдлийн ангилал чухал болдог [1]. Ангиллын систем нь байгууллагуудад хандалтын хяналтын бодлогыг идэвхжүүлэх, өгөгдөл хадгалах зэрэг нууцлал, аюулгүй байдлын бодлогыг автоматаар хэрэгжүүлэх боломжийг олгоно. Facebook нь мэдрэмтгий семантик өгөгдлийн төрлийг илрүүлэхийн тулд олон өгөгдлийн дохио, өргөтгөх боломжтой системийн архитектур, машин сургалтыг ашигладаг Facebook дээр бидний бүтээсэн системийг нэвтрүүлж байна.

Мэдээллийг илрүүлэх, ангилах нь шаардлагатай үед холбогдох мэдээллийг хурдан бөгөөд үр дүнтэй олж авахын тулд өгөгдлийг хайж олох, шошголох явдал юм. Одоогийн үйл явц нь илүү гар ажиллагаатай үйл явц бөгөөд холбогдох хууль тогтоомжийг судалж, ямар төрлийн мэдээллийг мэдрэмтгий гэж үзэх, мэдрэмжийн янз бүрийн түвшнийг тодорхойлох, дараа нь анги, ангиллын бодлогыг бий болгохоос бүрддэг [1]. Мэдээллийн алдагдлаас урьдчилан сэргийлэх (DLP) системийн дараа өгөгдлийг хурууны хээгээр авч, доод урсгалын төгсгөлийн цэгүүдийг хурууны хээгээр хянадаг. Олон тооны хөрөнгө, петабайт өгөгдөл бүхий хадгалалттай харьцахдаа энэ арга нь зүгээр л масштабтай байдаггүй.

Бидний зорилго бол өгөгдлийн төрөл, форматад ямар нэгэн нэмэлт хязгаарлалтгүйгээр, найдвартай болон байнгын бус хэрэглэгчийн мэдээллийн аль алинд нь масштабтай өгөгдөл ангилах системийг бий болгох явдал юм. Энэ бол зоримог зорилго бөгөөд мэдээжийн хэрэг бэрхшээлүүдээр дүүрэн байдаг. Өгөгдлийн оролт нь хэдэн мянган тэмдэгтийн урттай байж болно.

Аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангилал
Зураг 1. Онлайн болон офлайн урьдчилан таамаглах урсгал

Тиймээс бид үүнийг дараа нь нэгтгэж, хялбархан зөөж болох нийтлэг шинж чанаруудыг ашиглан үр дүнтэй илэрхийлэх ёстой. Эдгээр функцууд нь үнэн зөв ангиллыг өгөхөөс гадна ирээдүйд шинэ өгөгдлийн төрлийг хялбархан нэмж, нээх уян хатан байдал, өргөтгөх боломжийг олгох ёстой. Хоёрдугаарт, та том бие даасан ширээтэй ажиллах хэрэгтэй. Тогтмол өгөгдлийг олон петабайт хэмжээтэй хүснэгтэд хадгалах боломжтой. Энэ нь сканнердах хурдыг удаашруулж болзошгүй. Гуравдугаарт, бид тогтворгүй өгөгдөлд зориулсан SLA-ийн хатуу ангилалыг дагаж мөрдөх ёстой. Энэ нь системийг өндөр үр ашигтай, хурдан, үнэн зөв байлгахад хүргэдэг. Эцэст нь бид тогтворгүй өгөгдөл болон вэб хэрэглээний тохиолдлуудад бодит цагийн ангиллыг гүйцэтгэхийн тулд бага хоцролттой өгөгдлийн ангиллыг өгөх хэрэгтэй.

Энэхүү нийтлэл нь дээрх асуудлуудыг хэрхэн шийдвэрлэх талаар тайлбарлаж, бүх төрлийн, формат, эх сурвалжийн өгөгдлийн зүйлийг нийтлэг шинж чанарт үндэслэн ангилах хурдан бөгөөд өргөтгөх боломжтой ангиллын системийг танилцуулж байна. Бид системийн архитектурыг өргөтгөж, офлайн болон онлайн өгөгдлийг хурдан ангилах тусгай машин сургалтын загварыг бий болгосон. Энэ нийтлэлийг дараах байдлаар зохион байгуулав: 2-р хэсэгт системийн ерөнхий дизайныг харуулав. 3-р хэсэгт машин сургалтын системийн хэсгүүдийг авч үзнэ. 4, 5-р хэсэгт холбогдох ажлыг тодорхойлж, ажлын цаашдын чиглэлийг тодорхойлсон.

архитектур

Фэйсбүүкийн хэмжээнд тогтвортой, онлайн өгөгдлийн сорилтыг шийдвэрлэхийн тулд ангиллын систем нь хоёр тусдаа урсгалтай бөгөөд бид үүнийг нарийвчлан авч үзэх болно.

тогтвортой өгөгдөл

Эхлээд систем нь Facebook-ийн мэдээллийн олон хөрөнгийн талаар суралцах ёстой. Дэлгүүр бүрийн хувьд тухайн өгөгдлийг агуулсан дата төв, тухайн өгөгдлийг хадгалдаг систем, тухайн мэдээллийн санд байрлах хөрөнгө зэрэг зарим үндсэн мэдээллийг цуглуулдаг. Энэ нь мета өгөгдлийн каталогийг бүрдүүлдэг бөгөөд энэ нь үйлчлүүлэгчид болон бусад инженерүүдийн ашигладаг нөөцийг хэт ачаалахгүйгээр системийг үр дүнтэйгээр өгөгдлийг олж авах боломжийг олгодог.

Энэхүү мета өгөгдлийн каталог нь сканнердсан бүх хөрөнгийн найдвартай эх сурвалж болж, янз бүрийн хөрөнгийн статусыг хянах боломжийг танд олгоно. Энэ мэдээлэл нь тухайн хөрөнгийг хамгийн сүүлд хэзээ амжилттай сканнердсан, хэзээ үүсгэгдсэн, хэрэв өмнө нь сканнердсан бол тухайн хөрөнгийн өмнөх санах ой болон процессорын шаардлагууд зэрэг системээс цуглуулсан өгөгдөл болон дотоод мэдээлэлд үндэслэн хуваарийг эрэмбэлдэг. Дараа нь өгөгдлийн нөөц бүрийн хувьд (нөөц бэлэн болсон үед) бодит нөөц скан хийх ажил дуудагдана.

Ажил бүр нь хөрөнгө тус бүрийн хамгийн сүүлийн үеийн өгөгдөл дээр Бернулли түүврийг гүйцэтгэдэг эмхэтгэсэн хоёртын файл юм. Хөрөнгийг тус тусад нь багана болгон хувааж, багана бүрийн ангиллын үр дүнг бие даан боловсруулдаг. Нэмж дурдахад систем нь багана доторх аливаа баялаг өгөгдлийг сканнердаж байна. JSON, массив, кодлогдсон бүтэц, URL, үндсэн 64 цуваа өгөгдөл болон бусад зүйлсийг бүгдийг нь сканнердсан. Энэ нь скан хийж дуусгахад шаардагдах хугацааг ихээхэн нэмэгдүүлэх боломжтой, учир нь нэг хүснэгт нь бөөгнөрөл доторх олон мянган үүрлэсэн багана агуулж болно. json.

Өгөгдлийн активт сонгогдсон мөр бүрийн хувьд ангиллын систем нь контентоос хөвөгч болон текстийн шинж чанарыг гаргаж авч, тус бүрийг авсан багана руу холбоно. Онцлог шинж чанарыг задлах алхамын үр дүн нь өгөгдлийн активаас олдсон багана тус бүрийн бүх онцлогуудын газрын зураг юм.

Шинж тэмдгүүд юунд зориулагдсан вэ?

Онцлог байдлын тухай ойлголт нь гол зүйл юм. Хөвөгч ба текстийн шинж чанаруудын оронд бид мэдээллийн нөөц бүрээс шууд татаж авсан түүхий дээжийн мөрүүдийг дамжуулж болно. Түүнчлэн, машин сургалтын загваруудыг зөвхөн дээжийг ойртуулахыг оролддог олон зуун функцын тооцоолол хийхээс илүү түүвэр тус бүр дээр шууд сургаж болно. Үүнд хэд хэдэн шалтгаан бий:

  1. Эхлээд нууцлал: Хамгийн гол нь функцүүдийн тухай ойлголт нь зөвхөн олж авсан загвараа санах ойд хадгалах боломжийг олгодог. Энэ нь бид дээжийг нэг зорилгоор хадгалж, өөрсдийн хүчин чармайлтаар хэзээ ч бүртгэдэггүй. Энэ үйлчилгээ нь урьдчилан таамаглахаасаа өмнө зарим ангиллын төлөвийг хадгалах ёстой тул тогтворгүй өгөгдөлд онцгой чухал юм.
  2. Санах ой: Зарим дээж нь хэдэн мянган тэмдэгттэй байж болно. Ийм өгөгдлийг хадгалах, системийн хэсгүүдэд дамжуулах нь шаардлагагүйгээр маш их хэмжээний нэмэлт байт зарцуулдаг. Олон мянган багана бүхий олон мэдээллийн нөөц байгаа тул хоёр хүчин зүйл нь цаг хугацааны явцад нэгдэж болно.
  3. Онцлогуудыг нэгтгэх: Онцлогууд нь олон тооны функцээр дамжуулан скан бүрийн үр дүнг тодорхой дүрслэн харуулах ба системд ижил мэдээллийн нөөцийн өмнөх сканнерын үр дүнг эвтэйхэн байдлаар нэгтгэх боломжийг олгодог. Энэ нь ижил өгөгдлийн нөөцийн скан үр дүнг олон гүйлтээр нэгтгэхэд хэрэгтэй байж болно.

Дараа нь онцлогуудыг таамаглах үйлчилгээ рүү илгээдэг бөгөөд бид багана бүрийн өгөгдлийн шошгыг урьдчилан таамаглахын тулд дүрэмд суурилсан ангилал, машин сургалтыг ашигладаг. Энэхүү үйлчилгээ нь дүрмийн ангилагч болон машин сургалтын аль алинд нь тулгуурладаг бөгөөд таамаглах объект бүрээс өгөгдсөн хамгийн сайн таамаглалыг сонгодог.

Дүрмийн ангилагч нь гарын авлагын эвристик бөгөөд энэ нь 0-ээс 100 хүртэлх хугацаанд объектыг хэвийн болгохын тулд тооцоолол, коэффициентийг ашигладаг. Нэгэнт ийм анхны оноог өгөгдлийн төрөл тус бүрээр үүсгэсэн бөгөөд энэ өгөгдөлтэй холбоотой баганын нэр нь ямар ч "үгүйсгэдэггүй. жагсаалт" , дүрмийн ангилагч нь бүх өгөгдлийн төрлөөс хамгийн өндөр хэвийн оноог сонгоно.

Ангилалын нарийн төвөгтэй байдлаас шалтгаалан цэвэр гараар эвристик ашиглах нь ангиллын нарийвчлал муу, ялангуяа бүтэцгүй өгөгдлийн хувьд муу үр дүнд хүргэдэг. Ийм учраас бид хэрэглэгчийн агуулга, хаяг гэх мэт бүтэцгүй өгөгдлийн ангилалтай ажиллах машин сургалтын системийг боловсруулсан. Машины сургалт нь бидэнд гарын авлагын эвристикээс татгалзаж, нэмэлт өгөгдлийн дохио (жишээ нь, баганын нэр, өгөгдлийн гарал үүсэл) ашиглах боломжийг олгож, илрүүлэх нарийвчлалыг ихээхэн сайжруулсан. Бид дараа нь машин сургалтын архитектурт гүн гүнзгий орох болно.

Урьдчилан таамаглах үйлчилгээ нь багана бүрийн үр дүнг сканнердсан хугацаа, төлөвийн мета өгөгдлийн хамт хадгалдаг. Энэ өгөгдлөөс хамаарах аливаа хэрэглэгчид болон доод процессууд үүнийг өдөр бүр хэвлэгдсэн мэдээллийн багцаас унших боломжтой. Энэ иж бүрдэл нь эдгээр бүх скан ажлын үр дүн эсвэл өгөгдлийн каталогийн бодит цагийн API-г нэгтгэдэг. Нийтлэгдсэн урьдчилсан мэдээ нь нууцлал, аюулгүй байдлын бодлогыг автоматаар хэрэгжүүлэх үндэс суурь болдог.

Эцэст нь хэлэхэд, таамаглах үйлчилгээ нь бүх өгөгдлийг бүртгэж, бүх таамаглалыг хадгалсны дараа манай мэдээллийн каталогийн API нь нөөцийн бүх өгөгдлийн төрлийн таамаглалыг бодит цаг хугацаанд буцаах боломжтой. Өдөр бүр систем нь хөрөнгө тус бүрийн хамгийн сүүлийн үеийн урьдчилсан мэдээг агуулсан мэдээллийн багцыг нийтэлдэг.

Тогтворгүй өгөгдөл

Дээрх үйл явц нь байнгын хөрөнгөд зориулагдсан боловч байнгын бус урсгал нь байгууллагын мэдээллийн нэг хэсэг бөгөөд чухал ач холбогдолтой байж болно. Энэ шалтгааны улмаас систем нь аливаа тогтворгүй урсгалын бодит цагийн ангиллын таамаглалыг бий болгох онлайн API-г өгдөг. Бодит цагийн урьдчилан таамаглах системийг машин сургалтын загварт гарч буй урсгал, ирж буй урсгал, сурталчлагчийн өгөгдлийг ангилахад өргөн ашигладаг.

Энд API нь хоёр үндсэн аргументыг авдаг: бүлэглэх түлхүүр болон урьдчилан таамаглах түүхий өгөгдөл. Үйлчилгээ нь дээр дурдсантай ижил шинж чанарыг задлах үйлдлийг гүйцэтгэдэг бөгөөд ижил түлхүүрийн хувьд функцуудыг нэгтгэдэг. Эдгээр функцууд нь мөн шилжүүлэн суулгах байнгын кэшэд дэмжигддэг. Бүлэглэх түлхүүр бүрийн хувьд үйлчилгээ нь дээр дурдсан үйл явцын дагуу урьдчилан таамаглах үйлчилгээг дуудахаасаа өмнө хангалттай хэмжээний дээж үзсэн эсэхийг баталгаажуулдаг.

Оновчтой болгох

Зарим санг скан хийхийн тулд бид халуун санах ойн унших оновчлолын сангууд болон аргуудыг [2] ашигладаг бөгөөд бусад хэрэглэгчид ижил санах ойд нэвтэрч буй алдаа гарахгүй байхыг баталгаажуулдаг.

Хэт том хүснэгтүүдийн хувьд (50+ петабайт) бүх оновчлол, санах ойн үр ашгийг үл харгалзан систем нь санах ой дуусахаас өмнө бүх зүйлийг сканнердаж, тооцоолохоор ажиллаж байна. Эцсийн эцэст, скан нь санах ойд бүрэн тооцоологддог бөгөөд скан хийх явцад хадгалагдахгүй. Хэрэв том хүснэгтүүд нь бүтэцгүй бөөгнөрөл бүхий олон мянган багана агуулж байвал хүснэгтийг бүхэлд нь таамаглахад санах ойн нөөц хангалтгүйн улмаас ажил амжилтгүй болж магадгүй юм. Энэ нь хамрах хүрээг багасгахад хүргэнэ. Үүнтэй тэмцэхийн тулд систем нь одоогийн ачааллыг хэр сайн даван туулж байгааг прокси болгон сканнердах хурдыг ашиглахын тулд системийг оновчтой болгосон. Бид хурдыг санах ойн асуудлууд болон урьдчилан таамаглах функцүүдийн газрын зургийн тооцооллыг харахын тулд урьдчилан таамаглах механизм болгон ашигладаг. Ингэхдээ бид ердийнхөөс бага өгөгдөл ашигладаг.

Өгөгдлийн дохио

Ангиллын систем нь өгөгдлөөс ирсэн дохио шиг л сайн байдаг. Энд бид ангиллын системд ашигладаг бүх дохиог авч үзэх болно.

  • Агуулгад суурилсан: Мэдээжийн хэрэг, хамгийн эхний бөгөөд хамгийн чухал дохио бол контент юм. Бернулли түүвэрлэлт нь бидний сканнердсан өгөгдлийн актив бүр дээр хийгддэг бөгөөд өгөгдлийн контентоос онцлог шинж чанаруудыг гаргаж авдаг. Олон шинж чанар нь контентоос ирдэг. Ямар ч тооны хөвөгч объект байж болох бөгөөд энэ нь тодорхой төрлийн хэв маягийг хэдэн удаа үзсэн тухай тооцооллыг илэрхийлдэг. Жишээлбэл, бид дээж дээр харсан имэйлийн тоо эсвэл дээж дээр хичнээн эможи харагдсаныг харуулсан шинж тэмдгүүдтэй байж болно. Эдгээр функцийн тооцооллыг янз бүрийн сканнерын дагуу хэвийн болгож, нэгтгэж болно.
  • Өгөгдлийн гарал үүсэл: Эцэг эхийн хүснэгтээс агуулга өөрчлөгдсөн үед туслах чухал дохио. Нийтлэг жишээ бол хэшлэгдсэн өгөгдөл юм. Хүүхдийн хүснэгтийн өгөгдлийг хэш болгох үед энэ нь ихэвчлэн эх хүснэгтээс ирдэг бөгөөд тэдгээр нь тодорхой хэвээр үлддэг. Удам угсааны өгөгдөл нь тодорхой уншигдаагүй эсвэл дээд талын хүснэгтээс хөрвүүлэгдсэн тохиолдолд тодорхой төрлийн өгөгдлийг ангилахад тусалдаг.
  • Тэмдэглэл: Бүтэцгүй өгөгдлийг тодорхойлоход туслах өөр нэг өндөр чанарын дохио. Үнэн хэрэгтээ тэмдэглэгээ болон удам угсааны өгөгдөл нь өөр өөр өгөгдлийн хөрөнгийн хооронд шинж чанаруудыг түгээхийн тулд хамтран ажиллах боломжтой. Тэмдэглэгээ нь бүтэцгүй өгөгдлийн эх сурвалжийг тодорхойлоход тусалдаг бол гарал үүслийн өгөгдөл нь тухайн өгөгдлийн урсгалыг дэлгүүрийн хэмжээнд хянахад тусалдаг.
  • Өгөгдөл оруулах арга нь тодорхой өгөгдлийн төрлүүдтэй мэдэгдэж буй эх сурвалжид уншигдахгүй тусгай тэмдэгтүүдийг зориудаар оруулах арга юм. Дараа нь бид ижил уншагдахгүй тэмдэгтийн дараалал бүхий контентыг сканнердах болгонд контент нь тухайн мэдэгдэж буй өгөгдлийн төрлөөс гаралтай гэж дүгнэж болно. Энэ нь тэмдэглэгээтэй төстэй өөр нэг чанарын өгөгдлийн дохио юм. Үүнээс гадна агуулгад суурилсан нээлт нь оруулсан өгөгдлийг илрүүлэхэд тусалдаг.

Метрийн хэмжилт

Чухал бүрэлдэхүүн хэсэг нь хэмжигдэхүүнийг хэмжих нарийн аргачлал юм. Ангилалыг сайжруулах давталтын гол хэмжүүр нь шошго тус бүрийн нарийвчлал, санах ой бөгөөд хамгийн чухал нь F2 оноо юм.

Эдгээр хэмжигдэхүүнийг тооцоолоход системээс хамааралгүй бие даасан өгөгдлийн хөрөнгийн шошгололтын аргачлал шаардлагатай боловч түүнтэй шууд харьцуулах боломжтой. Доор бид Facebook-ээс үндсэн үнэнийг хэрхэн цуглуулж, ангиллын системээ сургахад ашигладаг талаар тайлбарласан болно.

Найдвартай мэдээлэл цуглуулах

Бид доор жагсаасан эх сурвалж бүрийн хүчинтэй өгөгдлийг өөрийн хүснэгтэд цуглуулдаг. Хүснэгт бүр нь тухайн эх сурвалжаас хамгийн сүүлд ажиглагдсан утгыг нэгтгэх үүрэгтэй. Эх сурвалж тус бүрийн ажиглагдсан утгууд нь өндөр чанартай, хамгийн сүүлийн үеийн өгөгдлийн төрлийн шошгыг агуулсан эсэхийг баталгаажуулахын тулд эх сурвалж бүр өгөгдлийн чанарын шалгалттай байдаг.

  • Бүртгэлийн платформын тохиргоо: Зөгийн үүрний хүснэгтүүдийн тодорхой талбарууд нь тодорхой төрлийн өгөгдлөөр дүүрсэн байна. Эдгээр өгөгдлийг ашиглах, түгээх нь найдвартай мэдээллийн найдвартай эх сурвалж болдог.
  • Гарын авлагын шошго: Системд засвар үйлчилгээ хийдэг хөгжүүлэгчид болон гадны шошгологчдыг багануудыг шошголоход сургадаг. Энэ нь ихэвчлэн дэлгүүрийн бүх төрлийн өгөгдөлд сайн ажилладаг бөгөөд нийтлэлийн өгөгдөл эсвэл хэрэглэгчийн үүсгэсэн контент зэрэг зарим бүтэцгүй өгөгдөлд итгэх үндсэн эх сурвалж болдог.
  • Эцэг эхийн хүснэгтийн баганыг тодорхой өгөгдөл агуулсан гэж тэмдэглэж эсвэл тэмдэглэж болох бөгөөд бид доорх хүснэгтэд энэ өгөгдлийг хянах боломжтой.
  • Дээж авах утас: Facebook-ийн хэлхээнүүд нь тодорхой төрлийн өгөгдлийг агуулдаг. Манай сканнерыг үйлчилгээний архитектур болгон ашигласнаар бид мэдэгдэж буй өгөгдлийн төрлүүдтэй урсгалуудаас дээж авч системээр дамжуулан илгээх боломжтой. Систем нь энэ өгөгдлийг хадгалахгүй гэж амлаж байна.
  • Жишээ хүснэгтүүд: Өгөгдлийг бүхэлд нь агуулсан том үүрний хүснэгтүүдийг сургалтын өгөгдөл болгон ашиглаж, сканнераар дамжуулан үйлчилгээ болгон дамжуулах боломжтой. Энэ нь бүх төрлийн өгөгдлийн төрлүүдтэй хүснэгтүүдэд маш тохиромжтой тул санамсаргүй байдлаар баганыг сонгох нь тухайн өгөгдлийн төрлийг бүхэлд нь сонгохтой тэнцэнэ.
  • Синтетик өгөгдөл: Бид шууд мэдээлэл үүсгэдэг номын санг ашиглах боломжтой. Энэ нь хаяг эсвэл GPS гэх мэт энгийн, олон нийтийн мэдээллийн төрлүүдэд сайн ажилладаг.
  • Өгөгдлийн даамал: Нууцлалын программууд нь өгөгдлийн удирдамжийг ашиглан өгөгдлийн хэсгүүдэд бодлогыг гараар хавсаргадаг. Энэ нь найдвартай байдлын өндөр нарийвчлалтай эх сурвалж болдог.

Бид хатуу өгөгдлийн гол эх сурвалж бүрийг бүх өгөгдөлтэй нэг корпус болгон нэгтгэдэг. Хүчинтэй байх хамгийн том асуудал бол өгөгдлийн агуулахыг төлөөлөх эсэхийг шалгах явдал юм. Үгүй бол ангиллын хөдөлгүүрүүд хэт их ачаалалтай байж болно. Үүнтэй тэмцэхийн тулд дээрх бүх эх сурвалжийг загваруудыг сургах эсвэл хэмжигдэхүүнийг тооцоолоход тэнцвэрийг хангахад ашигладаг. Нэмж дурдахад, хүний ​​​​жетонууд дэлгүүрийн янз бүрийн баганыг жигд түүвэрлэж, өгөгдлийг зохих ёсоор шошгодог бөгөөд ингэснээр хүчинтэй утгуудын цуглуулга шударга бус хэвээр үлдэнэ.

Тасралтгүй интеграци

Хурдан давталт, сайжруулалтыг хангахын тулд системийн гүйцэтгэлийг бодит цаг хугацаанд хэмжих нь чухал юм. Бид ангиллын сайжруулалт бүрийг өнөөгийн системтэй харьцуулан хэмжиж чадах тул цаашид сайжруулахын тулд өгөгдлийг тактикийн хувьд чиглүүлэх боломжтой. Хүчин төгөлдөр өгөгдлөөр хангагдсан эргэх холбоог систем хэрхэн гүйцээж байгааг эндээс харж болно.

Төлөвлөлтийн систем итгэмжлэгдсэн эх сурвалжаас авсан шошготой хөрөнгөтэй тулгарах үед бид хоёр ажлыг төлөвлөдөг. Эхнийх нь манай үйлдвэрлэлийн сканнер, улмаар бидний үйлдвэрлэлийн чадавхийг ашигладаг. Хоёрдахь даалгавар нь хамгийн сүүлийн үеийн боломжуудтай хамгийн сүүлийн үеийн бүтээх сканнерыг ашигладаг. Даалгавар бүр гаралтыг өөрийн хүснэгтэд бичиж, ангиллын үр дүнгийн хамт хувилбаруудыг тэмдэглэнэ.

Ингэж бид хувилбарын нэр дэвшигчийн ангиллын үр дүн болон үйлдвэрлэлийн загварыг бодит цаг хугацаанд харьцуулж байна.

Өгөгдлийн багцууд нь RC болон PROD функцуудыг харьцуулж байх хооронд таамаглах үйлчилгээний ML ангиллын хөдөлгүүрийн олон хувилбаруудыг бүртгэж байна. Хамгийн сүүлийн үеийн машин сургалтын загвар, одоо үйлдвэрлэж буй загвар болон туршилтын загварууд. Үүнтэй ижил арга нь загварын янз бүрийн хувилбаруудыг (манай дүрмийн ангилагчдад үл хамаарах зүйл) "тайрах" боломжийг олгодог бөгөөд бодит цаг хугацаанд хэмжигдэхүүнүүдийг харьцуулах боломжийг олгодог. ML туршилт хэзээ үйлдвэрлэлд ороход бэлэн болохыг тодорхойлоход маш хялбар байдаг.

Орой бүр тухайн өдөрт тооцсон RC онцлогуудыг ML сургалтын шугам руу илгээдэг бөгөөд загвар нь хамгийн сүүлийн үеийн RC функцууд дээр сургагдаж, хүчин төгөлдөр өгөгдлийн багцтай харьцуулан гүйцэтгэлийг нь үнэлдэг.

Өглөө бүр загвар нь сургалтаа дуусгаж, туршилтын загвар болгон автоматаар хэвлэгддэг. Энэ нь туршилтын жагсаалтад автоматаар орно.

Зарим үр дүн

100 гаруй төрлийн өгөгдлийг өндөр нарийвчлалтайгаар тэмдэглэсэн. Имэйл, утасны дугаар зэрэг сайн бүтэцтэй төрлүүдийг f2 оноо 0,95-аас дээш оноогоор ангилдаг. Захиалгат контент, нэр гэх мэт үнэгүй өгөгдлийн төрлүүд нь маш сайн ажилладаг бөгөөд F2 оноо 0,85-аас дээш байна.

Бат бөх, тогтворгүй өгөгдлийн олон тооны ялгаатай баганыг өдөр бүр бүх хадгалах газарт ангилдаг. Өдөр бүр 500 гаруй мэдээллийн санд 10 гаруй терабайт сканнер хийдэг. Эдгээр сангуудын ихэнх нь 98 гаруй хувийг хамарсан байна.

Тогтвортой оффлайн урсгал дахь ангиллын ажил нь хөрөнгийг сканнердахаас эхлээд багана тус бүрийн тооцоолол хийх хүртэл дунджаар 35 секунд зарцуулдаг тул цаг хугацаа өнгөрөх тусам ангилал маш үр дүнтэй болсон.

Аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангилал
Цагаан будаа. 2. RC объектыг хэрхэн үүсгэж загвар руу илгээж байгааг ойлгохын тулд интеграцийн тасралтгүй урсгалыг дүрсэлсэн диаграмм.

Аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангилал
Зураг 3. Машин сургалтын бүрэлдэхүүн хэсгийн өндөр түвшний диаграмм.

Машин сургалтын системийн бүрэлдэхүүн хэсэг

Өмнөх хэсэгт бид бүхэл бүтэн системийн архитектурт гүн гүнзгий нэвтэрч, масштаб, оновчлол, офлайн болон онлайн мэдээллийн урсгалыг онцолсон. Энэ хэсэгт бид урьдчилан таамаглах үйлчилгээг авч үзэн, урьдчилан таамаглах үйлчилгээг идэвхжүүлдэг машин сургалтын системийг тайлбарлах болно.

100 гаруй өгөгдлийн төрөл, шуудангийн өгөгдөл, хэрэглэгчийн үүсгэсэн контент зэрэг зарим бүтэцгүй контент бүхий гар аргаар эвристикийг ашиглах нь дэд параметрийн ангиллын нарийвчлалыг бий болгодог, ялангуяа бүтэцгүй өгөгдлийн хувьд. Энэ шалтгааны улмаас бид бүтэцгүй өгөгдлийн нарийн төвөгтэй байдлыг шийдвэрлэхийн тулд машин сургалтын системийг боловсруулсан. Машины сургалтыг ашиглах нь танд гарын авлагын эвристикээс татгалзаж, нарийвчлалыг сайжруулахын тулд функцууд болон нэмэлт өгөгдлийн дохио (жишээ нь баганын нэр, өгөгдлийн гарал үүсэл) дээр ажиллах боломжийг олгоно.

Хэрэгжүүлсэн загвар нь нягт ба сийрэг биет дээрх вектор дүрслэлийг [3] тус тусад нь судалдаг. Дараа нь тэдгээрийг нэгтгэж, эцсийн үр дүнг гаргахын тулд багц хэвийн болгох [4] болон шугаман бус үе шатуудыг дамждаг вектор үүсгэдэг. Төгсгөлийн үр дүн нь шошго тус бүрийн хувьд [0-1] хооронд хөвөх цэгийн тоо бөгөөд тухайн жишээ нь тухайн мэдрэмжийн төрөлд хамаарах магадлалыг харуулж байна. Загварт PyTorch-ийг ашигласнаар бид илүү хурдан хөдөлж, багийн гаднах хөгжүүлэгчдэд өөрчлөлтийг хурдан хийж, турших боломжийг олгосон.

Архитектурыг төлөвлөхдөө сийрэг (жишээ нь текст) болон нягт (жишээ нь тоон) объектуудыг дотоод ялгаанаасаа хамааран тусад нь загварчлах нь чухал байв. Эцсийн архитектурын хувьд суралцах хурд, багцын хэмжээ болон бусад гиперпараметрүүдийн оновчтой утгыг олохын тулд параметр шүүрдэх нь чухал байсан. Оновчлогчийн сонголт нь бас чухал гиперпараметр байсан. Бид алдартай оновчтой болгохыг олж мэдсэн Адамихэвчлэн overfitting хүргэдэг, харин загвар нь SGD илүү тогтвортой. Загварт шууд оруулах шаардлагатай нэмэлт нюансууд байсан. Жишээлбэл, тухайн шинж чанар нь тодорхой утгатай байх үед загвар нь детерминистик таамаглал гаргахыг баталгаажуулсан статик дүрмүүд. Эдгээр статик дүрмийг манай үйлчлүүлэгчид тодорхойлдог. Тэдгээрийг загварт шууд оруулах нь эдгээр онцгой захын тохиолдлуудыг шийдвэрлэхийн тулд боловсруулалтын дараах алхмыг хэрэгжүүлэхийн оронд илүү бие даасан, бат бөх архитектуртай болохыг олж мэдсэн. Мөн градиент буух сургалтын үйл явцад саад учруулахгүйн тулд эдгээр дүрмийг сургалтын явцад идэвхгүй болгосон гэдгийг анхаарна уу.

Асуудал

Бэрхшээлүүдийн нэг нь өндөр чанартай, найдвартай мэдээлэл цуглуулах явдал байв. Загвар нь анги тус бүрээр хүчинтэй байх шаардлагатай бөгөөд ингэснээр объект болон шошго хоорондын холбоог мэдэж болно. Өмнөх хэсэгт бид системийн хэмжилт болон загварын сургалтын аль алинд нь өгөгдөл цуглуулах аргуудын талаар ярилцсан. Шинжилгээгээр зээлийн карт, банкны дансны дугаар зэрэг өгөгдлийн ангилал манай санд тийм ч түгээмэл биш байгааг харуулсан. Энэ нь загварын сургалтанд зориулж их хэмжээний найдвартай мэдээлэл цуглуулахад хүндрэл учруулдаг. Энэ асуудлыг шийдэхийн тулд бид эдгээр ангиудын синтетик өгөгдөл үүсгэх процессуудыг боловсруулсан. Бид эмзэг төрлүүдэд зориулж ийм өгөгдлийг үүсгэдэг, үүнд SSN, зээлийн картын дугаар и IBAN-Загвар өмнө нь таамаглаж чадаагүй тоонууд. Энэ арга нь жинхэнэ эмзэг өгөгдлийг нуухтай холбоотой нууцлалын эрсдэлгүйгээр эмзэг өгөгдлийн төрлүүдийг зохицуулах боломжийг олгодог.

Мэдээллийн найдвартай байдлын асуудлаас гадна бидний ажиллаж байгаа архитектурын нээлттэй асуудлууд байдаг тусгаарлалтыг өөрчлөх и эрт зогсох. Сүлжээний өөр өөр хэсгүүдэд янз бүрийн өөрчлөлт хийх үед нөлөөллийг тодорхой ангиудад тусгаарлаж, урьдчилан таамаглах ерөнхий гүйцэтгэлд өргөн нөлөө үзүүлэхгүйн тулд өөрчлөлтийг тусгаарлах нь чухал юм. Эрт зогсоох шалгуурыг боловсронгуй болгох нь бас чухал бөгөөд ингэснээр бид сургалтын үйл явцыг зарим анги давтан сургадаг, зарим нь давтан сургадаггүй цэг дээр биш, харин бүх ангиудын тогтвортой цэг дээр зогсоож чадна.

Онцлогийн ач холбогдол

Загварт шинэ функцийг нэвтрүүлэхэд бид түүний загварт үзүүлэх ерөнхий нөлөөг мэдэхийг хүсч байна. Мөн бид таамаглалыг хүнээр тайлбарлах боломжтой эсэхийг шалгахыг хүсч байгаа бөгөөд ингэснээр өгөгдөл бүрийн хувьд яг ямар функцийг ашиглаж байгааг ойлгох болно. Үүний тулд бид боловсруулж, хэрэгжүүлсэн ангиараа PyTorch загварын онцлогуудын ач холбогдол. Энэ нь ерөнхий онцлогийн ач холбогдлоос ялгаатай гэдгийг анхаарна уу, учир нь энэ нь тухайн ангид ямар онцлог чухал болохыг хэлж өгдөггүй тул ихэвчлэн дэмждэг. Объектыг өөрчилсний дараа таамаглах алдааны өсөлтийг тооцоолох замаар бид объектын ач холбогдлыг хэмждэг. Утгыг солих нь загварын алдааг ихэсгэх үед онцлог нь "чухал" байдаг, учир нь энэ тохиолдолд загвар нь таамаглахдаа онцлог шинж чанарт тулгуурладаг. Түүний утгыг холих нь загварын алдааг өөрчлөхгүй байх үед тэмдэг нь "чухал биш" бөгөөд энэ тохиолдолд загвар үүнийг үл тоомсорлодог [5].

Анги тус бүрийн онцлогийн ач холбогдол нь загварыг тайлбарлах боломжтой болгож, шошгыг таамаглахдаа загвар юуг анхаарч байгааг харах боломжийг олгодог. Жишээлбэл, бид дүн шинжилгээ хийх үед Суулга, дараа нь бид хаягтай холбоотой шинж чанарыг баталгаажуулдаг AddressLinesCount, анги тус бүрийн онцлогийн ач холбогдлын хүснэгтэд өндөр байр эзэлдэг бөгөөд ингэснээр бидний хүний ​​зөн совин нь загвар өмсөгчдийн сурсан зүйлтэй сайн нийцдэг.

үнэлгээ

Амжилтанд хүрэх нэг хэмжүүрийг тодорхойлох нь чухал. Бид сонгосон F2 - эргэн санах ба нарийвчлалын тэнцвэрт байдал (санах чадвар нь арай том). Нууцлалын ашиглалтын хувьд хүчингүй болгох нь үнэн зөв эсэхээс илүү чухал бөгөөд учир нь багийн хувьд ямар ч эмзэг өгөгдлийг алдахгүй байх нь чухал юм (боломжийн нарийвчлалыг хадгалахын зэрэгцээ). Манай загварын бодит F2 гүйцэтгэлийн оноо нь энэ нийтлэлийн хамрах хүрээнээс гадуур байна. Гэсэн хэдий ч болгоомжтой тохируулснаар бид хамгийн чухал мэдрэмтгий ангиудад өндөр (0,9+) F2 оноо авч чадна.

Холбогдох ажил

Загвар тааруулах, баримт бичгийн ижил төстэй байдлыг хайх, машин сургалтын янз бүрийн аргууд (Байезийн, шийдвэрийн мод, k-хамгийн ойрын хөрш болон бусад олон) гэх мэт янз бүрийн аргуудыг ашиглан бүтэцгүй баримт бичгийг автоматаар ангилах олон алгоритмууд байдаг [6]. Эдгээрийн аль нэгийг нь ангиллын нэг хэсэг болгон ашиглаж болно. Гэсэн хэдий ч асуудал бол өргөтгөх чадвар юм. Энэ нийтлэл дэх ангиллын арга нь уян хатан байдал, гүйцэтгэлд чиглэсэн байдаг. Энэ нь ирээдүйд шинэ ангиудыг дэмжиж, хоцролтыг бага байлгах боломжийг бидэнд олгоно.

Мөн дата хурууны хээний ажил их байна. Жишээлбэл, [7]-д зохиогчид нууц мэдээлэл алдагдсаныг илрүүлэхэд чиглэсэн шийдлийг тодорхойлсон. Гол таамаглал нь өгөгдлийн хурууны хээг мэдэгдэж буй эмзэг мэдээллийн багцтай тааруулж болно гэсэн таамаглал юм. [8]-д зохиогчид нууцлал алдагдсан ижил төстэй асуудлыг тайлбарласан боловч тэдний шийдэл нь Android-ийн тусгай архитектур дээр суурилдаг бөгөөд зөвхөн хэрэглэгчийн үйлдлийн үр дүнд хувийн мэдээлэл илгээсэн эсвэл үндсэн програм нь хэрэглэгчийн мэдээллийг задруулсан тохиолдолд л ангилагдана. Энд байгаа байдал арай өөр байна, учир нь хэрэглэгчийн өгөгдөл нь бас бүтэцгүй байж болно. Тиймээс хурууны хээ авахаас илүү боловсронгуй техник хэрэгтэй.

Эцэст нь зарим төрлийн эмзэг өгөгдлийн дутагдалтай асуудлыг шийдвэрлэхийн тулд бид синтетик өгөгдлийг нэвтрүүлсэн. Мэдээллийг нэмэгдүүлэх талаар олон тооны уран зохиол байдаг, жишээлбэл, [9]-ийн зохиогчид сургалтын явцад дуу чимээний шахалтын үүргийг судалж, хяналттай сургалтын эерэг үр дүнг ажигласан. Дуу чимээ ихтэй өгөгдлийг нэвтрүүлэх нь сөрөг үр дагаварт хүргэж болзошгүй тул бид өндөр чанарын синтетик өгөгдөлд анхаарлаа хандуулдаг тул хувийн нууцад хандах бидний хандлага өөр юм.

дүгнэлт

Энэ нийтлэлд бид өгөгдлийг ангилах системийг танилцуулсан. Энэ нь бидэнд нууцлал, аюулгүй байдлын бодлогыг хэрэгжүүлэх системийг бий болгох боломжийг олгодог. Өргөтгөх боломжтой дэд бүтэц, тасралтгүй интеграцчлал, машин сургалт, өндөр чанартай өгөгдлийн бүрэн бүтэн байдлын өгөгдөл нь бидний хувийн нууцыг хамгаалах олон санаачилгын амжилтын түлхүүр гэдгийг бид харуулсан.

Цаашид хийх ажил олон бий. Үүнд түүхий өгөгдөл (файл)-д дэмжлэг үзүүлэх, өгөгдлийн төрлийг төдийгүй мэдрэмжийн түвшинг ангилах, үнэн зөв нийлэг жишээ үүсгэх замаар сургалтын явцад бие даан хянах сургалтыг шууд ашиглах зэрэг багтаж болно. Энэ нь эргээд загварт алдагдлыг хамгийн их хэмжээгээр бууруулахад тусална. Цаашдын ажил нь мөрдөн байцаалтын ажлын урсгалд төвлөрч болох бөгөөд бид илрүүлэхээс цаашгүй бөгөөд нууцлалын янз бүрийн зөрчлийн үндсэн шалтгааны дүн шинжилгээ хийх боломжтой. Энэ нь мэдрэмжийн шинжилгээ (жишээ нь, өгөгдлийн төрлийн нууцлалын мэдрэмж өндөр (жишээ нь хэрэглэгчийн IP) эсвэл бага (жишээ нь, Facebook-ийн дотоод IP)) зэрэг тохиолдолд туслах болно.

Ном зүй

  1. Дэвид Бен-Дэвид, Тамар Домани, Абигаил Тарем нар. Семаль вэб технологи ашиглан аж ахуйн нэгжийн өгөгдлийн ангилал. Питер Ф.И Пател-Шнайдер, Юэ Пан, Паскал Гитцлер, Питер Мика, Лэй Жан, Жефф З. Пан, Иан Хоррокс, Бирте Глимм, редакторууд, Семантик вэб - ISWC 2010, хуудас 66–81, Берлин, Хайделберг, 2010. Springer Berlin Heidelberg.
  2. Субраманиан Муралидхар, Вайат Ллойд, Сабьясачи Рой, Кори Хилл, Эрнест Лин, Вэйвэн Лю, Сатадру Пан, Шива Шанкар, Вишванат Сивакумар, Линпенг Танг, Санжеев Кумар нар. f4: Facebook-ийн дулаан BLOB хадгалах систем. онд Үйлдлийн системийн дизайн ба хэрэгжилтийн USENIX симпозиум (OSDI 11), хуудас 383–398, Broomfield, CO, 2014 оны XNUMX-р сар. USENIX холбоо.
  3. Томаш Миколов, Илья Суцкевер, Кай Чен, Грег Коррадо, Жефф Дин нар. Үг, хэллэгийн тархсан дүрслэл, тэдгээрийн найруулга. CJC Burges-ийн редакторууд Л.Боттоу, М.Вэллинг, З.Гахрамани, К.К.Вайнбергер нар Мэдрэлийн мэдээлэл боловсруулах системийн дэвшил 26, хуудас 3111–3119. Curran Associates, Inc., 2013 он.
  4. Сергей Иоффе, Кристиан Сегеди нар. Багц хэвийн болгох: Дотоод ковариацын шилжилтийг багасгах замаар гүнзгий сүлжээний сургалтыг хурдасгах. Фрэнсис Бах, Дэвид Блей нарын редакторууд, Машин сургалтын олон улсын 32 дахь бага хурлын эмхэтгэл, 37-р боть Машин сургалтын судалгааны эмхэтгэл, хуудас 448-456, Лилль, Франц, 07 оны 09-р сарын 2015-XNUMX. PMLR.
  5. Лео Брейман. Санамсаргүй ой. Мах. сурах., 45(1):5–32, 2001 оны XNUMX-р сар.
  6. Thair Nu Phyu. Өгөгдөл олборлолтод ангилах аргачлалын судалгаа.
  7. X. Шу, Д.Яо, Э.Бертино нар. Нууцлалыг хамгаалах, нууц мэдээлэлд өртсөн илрүүлэх. Мэдээллийн криминалистик ба аюулгүй байдлын талаархи IEEE гүйлгээ, 10(5):1092–1103, 2015.
  8. Жэмин Ян, Мин Ян, Юань Жан, Гуофэй Гу, Пэн Нин, Шяоян Ван нар. Удирдагч: Нууцлалын алдагдлыг илрүүлэхийн тулд андройд дахь эмзэг өгөгдөл дамжуулахад дүн шинжилгээ хийж байна. хуудас 1043–1054, 11 он.
  9. Киже Си, Зиханг Дай, Эдуард Хови, Минх-Танг Луонг, Куок В.Лэ нар. Хяналтгүй өгөгдлийг нэмэгдүүлэх.

Аюулгүй байдал, нууцлалыг хамгаалах зорилгоор өргөтгөх боломжтой мэдээллийн ангилал
SkillFactory онлайн сургалтанд хамрагдан хэрхэн эрэлттэй мэргэжлийг эхнээс нь авах эсвэл ур чадвар, цалингийн түвшинг дээшлүүлэх талаар дэлгэрэнгүй мэдээлэл аваарай.

Илүү олон курс

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх