Sự giống nhau của cosin trong python

Theo IEEE Spectrum, Python tiếp tục là ngôn ngữ lập trình hàng đầu trong ba năm qua. Nó cũng là ngôn ngữ được sử dụng để xây dựng các ứng dụng Machine Learning. Là một ngôn ngữ thông dịch, nó tăng tốc độ phát triển. Tuy nhiên, điều tương tự làm cho nó chậm hơn trong thời gian chạy vì nó phải biên dịch và thực thi từng câu lệnh mỗi lần. Điều này trở thành một vấn đề trong quá trình nhân rộng

Điều này đưa chúng ta đến câu hỏi - "Để tăng tốc, chúng ta có thể biên dịch mã python một lần giống như các ngôn ngữ biên dịch khác hoặc ít nhất là một phần của nó không?", "Điều đó có làm cho nó nhanh hơn không?"

Câu trả lời - Có, chúng tôi có thể

Trong bài viết này, chúng ta sẽ xem, với sự trợ giúp của một thử nghiệm, cách chúng ta có thể tăng tốc độ tính toán số của mình trong Python bằng cách sử dụng Numba

Giải pháp — Numba

Theo trang web, Numba là trình biên dịch JIT (Just In Time) mã nguồn mở, dịch một tập hợp con mã Python và NumPy thành mã máy nhanh. Nó được thiết kế để sử dụng với các mảng và hàm NumPy. Nó tối ưu hóa mã python định hướng mảng và toán học

Để xác minh tuyên bố của Numba, tôi đã thử làm tê liệt một trong những chức năng được sử dụng phổ biến nhất trong Học máy để thấy sự khác biệt.
Tính toán độ tương tự Cosine.

Cuộc thí nghiệm

Trong thí nghiệm này, tôi đã thực hiện các tính toán tương tự cosine giữa hai mảng numpy 50 chiều có và không có tê

Hàm python tương tự cosine

Chức năng tương tự cosine

Chức năng tương tự với tê

Chức năng tương tự Cosine với Numba Decorator

Tôi đã chạy cả hai hàm cho số lần tính toán khác nhau để quan sát sự khác biệt về thời gian tính toán

Kết quả

Kết quả

Sự khác biệt là hiển nhiên. Việc sử dụng tê đã làm cho tính toán của chúng tôi nhanh hơn nhiều lần

mang đi

Trong bài viết này, chúng tôi chỉ làm trầy xước bề mặt. Còn rất nhiều điều chúng ta có thể làm với Numba. Nhưng tôi sẽ để việc khám phá đó cho bạn. Bạn có thể tìm thấy thử nghiệm hoàn chỉnh với jupyter-notebook trong kho lưu trữ sau

Tôi không cho rằng hiệu suất quan trọng ở đây, nhưng tôi không thể cưỡng lại. Hàm zip() sao chép hoàn toàn cả hai vectơ (thực tế là chuyển vị ma trận hơn) chỉ để lấy dữ liệu theo thứ tự "Pythonic". Sẽ rất thú vị khi tính thời gian thực hiện từng bước

import math
def cosine_similarity(v1,v2):
    "compute cosine similarity of v1 to v2: (v1 dot v2)/{||v1||*||v2||)"
    sumxx, sumxy, sumyy = 0, 0, 0
    for i in range(len(v1)):
        x = v1[i]; y = v2[i]
        sumxx += x*x
        sumyy += y*y
        sumxy += x*y
    return sumxy/math.sqrt(sumxx*sumyy)

v1,v2 = [3, 45, 7, 2], [2, 54, 13, 15]
print(v1, v2, cosine_similarity(v1,v2))

Output: [3, 45, 7, 2] [2, 54, 13, 15] 0.972284251712

Điều đó vượt qua tiếng ồn giống như C khi trích xuất từng phần tử một lần, nhưng không sao chép mảng hàng loạt và hoàn thành mọi thứ quan trọng trong một vòng lặp for duy nhất và sử dụng một căn bậc hai

ETA. Đã cập nhật cuộc gọi in thành một chức năng. (Bản gốc là Python 2. 7 chứ không phải 3. 3. Hiện tại chạy dưới Python 2. 7 với câu lệnh from __future__ import print_function. ) Đầu ra là như nhau, theo cả hai cách

Trong bài viết này, bạn sẽ tìm hiểu về các số liệu tương tự nhau và các kỹ thuật nhúng văn bản. Cuối cùng, bạn sẽ nắm bắt được khi nào nên sử dụng các số liệu và kỹ thuật nhúng. Bạn cũng sẽ chơi xung quanh với họ để giúp thiết lập trực giác chung

Nội dung chính Hiển thị

Nội phân Chính chiếu Hiển thị

  • Các chủ đề được cập nhật trong bài viết này
  • Hiểu được sự tương đồng
  • Văn bản tương tự
  • Các thuật toán tương đồng
  • Jaccard only number
  • Khoảng cách Euclide
  • Sự tương đồng cosine
  • Use any data?
  • Embed text
  • Từ nhúng
  • Mã hóa một lần và túi từ  
  • Tần suất tài liệu có giới hạn số (TF-IDF)
  • Khi nào nên sử dụng những gì?
  • Cần nhúng theo ngữ cảnh
  • câu nhúng
  • Transformers câu
  • Bộ mã hóa câu hỏi phổ biến
  • Cần gì để sử dụng?

Main partition

  • Các chủ đề được cập nhật trong bài viết này
  • Hiểu được sự tương đồng
  • Văn bản tương tự
  • Các thuật toán tương đồng
  • Jaccard only number
  • Khoảng cách Euclide
  • Sự tương đồng cosine
  • Use any data?
  • Embed text
  • Từ nhúng
  • Mã hóa một lần và túi từ  
  • Tần suất tài liệu có giới hạn số (TF-IDF)
  • Khi nào nên sử dụng những gì?
  • Cần nhúng theo ngữ cảnh
  • câu nhúng
  • Transformers câu
  • Bộ mã hóa câu hỏi phổ biến
  • Cần gì để sử dụng?

Thử nghiệm

Main partition


Các chủ đề được cập nhật trong bài viết này

  • Các chủ đề được cập nhật trong bài viết này
  • Embed text
  • Từ nhúng
  • Mã hóa một lần và túi từ  
  • Tần suất tài liệu có giới hạn số (TF-IDF)
  • Khi nào nên sử dụng những gì?
  • Cần nhúng theo ngữ cảnh
  • câu nhúng
  • Transformers câu
  • Bộ mã hóa câu hỏi phổ biến

Hiểu được sự tương đồng

Cần gì để sử dụng?

Main partition

Các chủ đề được cập nhật trong bài viết này

Bạn có thể tìm ứng dụng web đi kèm ở đây


Văn bản tương tự

Văn bản tương tự - Jaccard, Euclide, cosin

  • Mã hóa một lần và các từ
  • Tần suất tài liệu có giới hạn số (TF-IDF)
  • Word2VEC

    Nhúng từ ngôn ngữ mô hình ngôn ngữ

    câu. DOC2VEC


    Các thuật toán tương đồng

    Jaccard only number

    Độ tương phản là khoảng cách giữa hai màn hình trong đó kích thước màn hình biểu thị các tính năng của hai đối tượng. Nói một cách đơn giản, sự tương đồng là thước đo mức độ khác nhau hoặc giống nhau của hai đối tượng dữ liệu. Nếu khoảng cách thu nhỏ, các đối tượng được chọn có mức độ tương tự cao và ngược lại. Nói chung, nó được đo trong phạm vi 0 đến 1. Điểm này trong phạm vi [0, 1] được gọi là điểm tương tự

    Một điểm quan trọng cần nhớ về sự tương đồng là nó chủ quan và phụ thuộc nhiều vào miền và trường hợp sử dụng. Ví dụ, hai chiếc xe có thể tương tự nhau vì những đơn giản thứ nhất như công ty sản xuất, màu sắc, phạm vi giá hoặc các chi tiết kỹ thuật như loại nguyên liệu, chiều dài cơ sở, mã lực. Vì vậy, cần phải tính toán cẩn thận đặc biệt khi tính toán mức độ tương đồng giữa các tính năng không liên quan đến nhau hoặc không liên quan đến vấn đề. cái chai rỗng

    Đơn giản như ý tưởng có thể, sự tương đồng là cơ sở của nhiều kỹ thuật học máy. Hạn chế, chương trình phân loại lân cận K-Mới nhất sử dụng cận độ tương tự để phân loại các đối tượng dữ liệu mới, tương tự, phân cụm K-MEAN sử dụng các biện pháp tương tự để gán các điểm dữ liệu cho các cụm . Ngay cả các công ty khuyến nghị cũng sử dụng các phương pháp lọc hợp tác dựa trên khu phố, sử dụng sự tương đồng để xác định hàng xóm của người dùng. Không có gì trong chai

    Việc sử dụng các biện pháp tương tự khá nổi bật trong lĩnh vực xử lý ngôn ngữ tự nhiên. Tất cả mọi thứ từ hệ thống truy xuất thông tin, công cụ tìm kiếm, phát hiện diễn biến đến phân loại văn bản, liên kết tài liệu tự động, điều chỉnh mô tả chính xác sử dụng các biện pháp tương tự

    Vui lòng xem các câu sau. 3

    chai trống. 1+3+3 = 7

    Không có gì trong chai. 0. 42

    Hàm Python cho sự tương đồng của Jaccard

    Kiểm tra chức năng cho các câu ví dụ của chúng tôi


    Khoảng cách Euclide

    Khoảng cách Euclide, hoặc định mức L2, là dạng biến được sử dụng phổ biến nhất của khoảng cách & nbsp; . Nói chung, khi mọi người nói về khoảng cách, họ đề cập đến khoảng cách Euclide. Nó sử dụng Định lý Pythagoras để tính khoảng cách giữa hai điểm như chỉ được đưa ra trong hình dưới đây

    Khoảng cách d lớn hơn giữa hai màn hình, điểm tương đồng càng thấp và lùi lại & nbsp;

    Hãy tính toán sự tương đồng giữa các câu lệnh ví dụ của chúng tôi bằng cách sử dụng khoảng cách Euclide

    Để tính toán khoảng cách Euclide, chúng tôi cần các giám sát, vì vậy chúng tôi sẽ sử dụng mô hình Word2VEC được xây dựng bởi Spacy, để tạo văn bản nhúng. (Tôi sẽ tìm hiểu thêm về điều này sau trong bài viết)

    Được rồi, vì vậy chúng ta có khoảng cách Euclide là 1,86, nhưng điều đó có nghĩa là gì? . Khoảng cách có thể thay đổi từ 0 đến vô cùng, chúng ta cần sử dụng một số cách để bình thường hóa chúng đến phạm vi từ 0 đến 1

    Mặc dù chúng tôi có công thức hóa điển hình tiêu chuẩn của chúng tôi, tôi sử dụng mức độ biến đổi trung bình và độ biến đổi tự nhiên, nhưng nó rất nhạy cảm với các ngoại lệ. Điều đó có nghĩa là nếu có một vài khoảng cách cực lớn thì mọi khoảng cách khác sẽ trở nên nhỏ hơn so với hậu quả của hoạt động bình thường hóa. Vì vậy, tùy chọn tốt nhất ở đây là sử dụng một cái gì đó như hằng số Euler như sau


    Sự tương đồng cosine

    Độ tương đồng cosine tính toán sự giống nhau của hai màn hình là cosin của các góc giữa hai màn hình. Nó xác định xem hai màn hình chỉ theo một hướng hay không. Vì vậy, nếu góc giữa các góc nhìn là 0 độ, thì độ tương tự cosin là 1

    Nó được đưa ra như

    Trong đó ||v|| biểu thị độ dài của màn hình v, 𝜃 biểu thị góc giữa vw và ‘. biểu thị toán tử sản phẩm DOT. ||v|| biểu thị độ dài của vectơ v, 𝜃 biểu thị góc giữa vw và '.' biểu thị toán tử tích


    Use any data?

    Sự tương đồng của Jaccard chỉ tính đến tập hợp các từ duy nhất cho mỗi tài liệu văn bản. Điều này làm cho nó trở thành ứng cử viên có khả năng đánh giá sự giống nhau của các tài liệu khi sự lặp lại không phải là một vấn đề. Một ví dụ điển hình của một ứng dụng như vậy là để so sánh các sản phẩm mô tả. Ví dụ, nếu một thuật ngữ như HD HD, hoặc hiệu suất nhiệt, được sử dụng nhiều lần trong một mô tả và chỉ một lần trong một mô tả khác, thì khoảng cách Euclide và cosin tương tự sẽ giảm xuống. Mặt khác, nếu tổng số từ duy nhất vẫn giữ nguyên, độ tương tự của jaccard sẽ không thay đổi.  

    Cả hai số liệu tương tự Euclide và cos đều giảm nếu thêm vào trống rỗng được thêm vào câu ví dụ đầu tiên của chúng tôi

    Điều đó đang được nói, mức độ tương tự của Jaccard hiếm khi được sử dụng khi làm việc với dữ liệu văn bản vì nó không hoạt động với các bản nhúng văn bản. Điều này có nghĩa là giới hạn trong việc đánh giá sự tương đồng từ vựng của văn bản, tức là, các tài liệu tương tự như thế nào ở cấp độ từ

    Theo như các số liệu cosin và Euclide có liên quan, các hệ số khác biệt giữa hai là sự tương đồng cosin không bị ảnh hưởng bởi độ lớn/chiều dài của các tính năng hiển thị. Hãy nói rằng chúng tôi đang tạo một thuật toán gắn thẻ chủ đề. If a from (ví dụ. thượng viện) xảy ra thường xuyên hơn trong tài liệu 1 so với trong tài liệu 2,   . Tuy nhiên, nó cũng có thể là trường hợp chúng tôi đang làm việc với các bài báo có độ dài khác nhau. Sau đó, từ ‘Thượng viện có thể xảy ra nhiều hơn trong tài liệu 1 đơn giản vì nó dài hơn. Như chúng ta đã thấy trước đó khi từ ’trống trống được lặp lại, cosine tương tự như vậy ít nhạy cảm hơn với các khác biệt về độ dài

    Thêm vào đó, khoảng cách Euclide không hoạt động tốt với các khe hở của văn bản nhúng. Vì vậy, cosine tương đồng thường được ưa thích hơn khoảng cách Euclide khi làm việc với dữ liệu văn bản.   . & NBSP;Vì vậy, độ tương tự cosine thường được ưu tiên hơn khoảng cách Euclide khi làm việc với dữ liệu văn bản. Trường hợp sử dụng tương tự văn bản nhạy cảm với độ dài duy nhất xuất hiện trong tâm trí là phát hiện đạo văn.  


    Embed text

    Con người có thể dễ hiểu và có ý nghĩa từ các từ, nhưng máy tính không có khả năng ngôn ngữ thần kinh tự nhiên này. Để làm cho các từ có thể hiểu được, chúng ta cần mã hóa chúng thành một dạng số, vì vậy máy tính có thể áp dụng các công thức và hoạt động toán học để có ý nghĩa về chúng. Thừa chí vượt ra ngoài nhiệm vụ tương tự văn bản, đại diện cho các tài liệu dưới dạng số và quan sát là một lĩnh vực nghiên cứu tích cực.  


    Từ nhúng

    Nói một cách đơn giản, nhúng từ là màn hình hiển thị của một từ. Họ nhắm mục tiêu nắm bắt ý nghĩa, bảo bối và mối quan hệ ngữ nghĩa của các từ. Rất nhiều từ nhúng được tạo ra dựa trên khái niệm về giả thuyết phân phối của người Hồi giáo được giới thiệu bởi Zellig Harris. các từ được sử dụng gần nhau thường có cùng nghĩa.  


    Mã hóa một lần và túi từ  

    Cách đơn giản nhất để biểu diễn số từ là thông qua phương thức mã hóa một lần nóng. Ý tưởng rất đơn giản, tạo ra một màn hình với kích thước của tổng số từ duy nhất trong Tập đoàn.   .  

    Tài liệu chứa các khối văn bản lớn với khả năng lặp lại. Chỉ đơn giản là đánh dấu hiện diện hoặc xóa mặt của các từ dẫn đến mất thông tin.   . Bất kể điều đó, cả hai cách tiếp cận này đều tạo ra những cái nhìn lớn, thưa thớt mà nắm bắt hoàn toàn không có thông tin quan hệ

    Thực hiện

    Mô-đun Scikit-LEARN thực hiện phương pháp này, hãy sử dụng nó để tính toán mức độ tương tự của các tiêu đề tin tức sau

    Để tạo ra đầu ra tốt hơn, hãy tạo ra một chức năng tạo ra một bản đồ nhiệt của điểm số tương tự

    Bây giờ chúng tôi có chức năng dữ liệu và người trợ giúp của mình, chúng tôi có thể kiểm tra v2v2


    Tần suất tài liệu có giới hạn số (TF-IDF)

    TF-IDF các góc là một phần mở rộng của mã hóa mô hình một lần nóng. Thay vì xem xét tần suất của các từ trong tài liệu, tần suất của các từ trên toàn bộ kho văn bản được tính đến. Ý tưởng lớn là những điều xảy ra rất nhiều ở khắp mọi nơi mang rất ít ý nghĩa hoặc ý nghĩa. Không hạn chế, những từ tầm thường như và, hay, hay, là một người khác mang ý nghĩa như danh từ và danh từ thích hợp xảy ra ít thường xuyên hơn

    Về mặt toán học, tần số thuật ngữ (TF) là số lần một từ xuất hiện trong tài liệu chia cho tổng số từ trong tài liệu. Và tần số tài liệu nghịch đảo v4 trong đó n là tổng số tài liệu và n là số lượng tài liệu mà một thuật ngữ đã xuất hiện. Giá trị TF-idf cho một từ là sản phẩm của tần số thuật ngữ và tần số tài liệu nghịch đảo. &Nbsp;v4 trong đó N là tổng số tài liệu và n là số tài liệu mà một thuật ngữ đã xuất hiện trong. Giá trị TF-IDF cho một từ là tích của tần suất thuật ngữ và tần suất tài liệu nghịch đảo.  

    Mặc dù các màn hình TF-IDF cung cấp một sự cải thiện nhỏ về màn hình số đơn giản, nhưng chúng vẫn có tính chiều rất cao và không thể nắm bắt các mối quan hệ ngôn ngữ nghĩa.  

    Thực hiện

    Mô-đun Scikit-LEARN thực hiện phương pháp này, hãy sử dụng nó để tính toán mức độ tương tự của các tiêu đề tin tức sau. Lớp v6` để tạo các vectơ TF-IDF từ văn bản.  


    Word2Vec

    Để tạo ra đầu ra tốt hơn, hãy tạo ra một chức năng tạo ra một bản đồ nhiệt của điểm số tương tự

    • Bây giờ chúng tôi có chức năng dữ liệu và người trợ giúp của mình, chúng tôi có thể kiểm tra v2
    • Bỏ qua Gram

    Tần suất tài liệu có tần số thời hạn (TF-IDF) lấy ngữ cảnh của từng từ làm đầu vào và cố gắng dự đoán từ tương ứng với ngữ cảnh. Ở đây, bối cảnh chỉ đơn giản có nghĩa là các từ xung quanh.  

    TF-IDF các góc là một phần mở rộng của mã hóa mô hình một lần nóng. Thay vì xem xét tần suất của các từ trong tài liệu, tần suất của các từ trên toàn bộ kho văn bản được tính đến. Ý tưởng lớn là những điều xảy ra rất nhiều ở khắp mọi nơi mang rất ít ý nghĩa hoặc ý nghĩa. Không hạn chế, những từ tầm thường như và, hay, hay, là một người khác mang ý nghĩa như danh từ và danh từ thích hợp xảy ra ít thường xuyên hơn

    Về mặt toán học, tần số thuật ngữ (TF) là số lần một từ xuất hiện trong tài liệu chia cho tổng số từ trong tài liệu. Và tần số tài liệu nghịch đảo v4 trong đó n là tổng số tài liệu và n là số lượng tài liệu mà một thuật ngữ đã xuất hiện. Giá trị TF-idf cho một từ là sản phẩm của tần số thuật ngữ và tần số tài liệu nghịch đảo.  

    Mặc dù các màn hình TF-IDF cung cấp một sự cải thiện nhỏ về màn hình số đơn giản, nhưng chúng vẫn có tính chiều rất cao và không thể nắm bắt các mối quan hệ ngôn ngữ nghĩa.  

    Scikit-Learn cũng cung cấp một lớp `____ 8` để tạo các điểm nhìn TF-idf từ văn bản.  

    Word2VEC là một phương pháp dự đoán để cấu hình các từ nhúng. Không giống như các phương pháp trước đó cần được đào tạo trên mạng trên cơ quan làm việc, Word2VEC là một mạng lưới thần kinh hai lớp được đào tạo trước đó. Nó lấy đầu vào văn bản và bắt đầu ra một tập hợp các tính năng đại diện hiển thị cho các từ trong kho văn bản đó.   . & NBSP;Skip-gram không. Trong quá trình dự đoán các từ ngữ cảnh, mô hình Skip-gram học biểu diễn véc-tơ của từ mục tiêu. đại diện được tạo ra bằng cách sử dụng các từ ngữ cảnh


    Các từ liên tục lấy bối cảnh của mỗi từ được bắt đầu vào và cố gắng dự đoán từ tương ứng với ngữ cảnh. Ở đây, cảnh đơn giản có nghĩa là các từ xung quanh.  

    Ví dụ, hãy xem lời chào. “Chúc một ngày tốt lành”

    Và cuối cùng, vì Skip-Gram dựa vào đầu vào một từ, nó ít cảm ứng hơn với các từ thông thường quá mức. Bởi vì ngay cả khi một số từ xuất hiện nhiều lần hơn trong quá trình đào tạo, họ đã xem xét một lần. CBow có xu hướng quá mức các từ xuyên suốt vì chúng có thể xuất hiện nhiều lần trong cùng một tập hợp các từ ngữ cảnh. Đặc điểm này cũng cho phép Skip-gram hiệu quả hơn về số lượng tài liệu cần thiết để đạt được hiệu quả tốt.  

    TLDR. Hoạt động Skip-gram tốt hơn khi làm việc với một lượng dữ liệu nhỏ, tập trung vào sự tương đồng về nghĩa của các từ và đại diện cho các từ mới. Mặt khác, CBow nhanh hơn, & nbsp; . Skip-gram hoạt động tốt hơn khi làm việc với một lượng nhỏ dữ liệu, tập trung vào sự giống nhau về ngữ nghĩa của các từ và thể hiện tốt các từ hiếm. Mặt khác, CBOW nhanh hơn, tập trung nhiều hơn vào sự giống nhau về hình thái của từ và cần nhiều dữ liệu hơn để đạt được hiệu suất tương tự

    Thực hiện

    Word2VEC được sử dụng trong Spacy để tạo các từ ghép, một điều quan trọng cần lưu ý. Để tạo các từ khóa, chúng ta cần các mô hình Spacy lớn hơn. Ví dụ, ví dụ, mô hình tiếng Anh trung bình hoặc lớn, nhưng không phải là mô hình nhỏ. Vì vậy, nếu chúng ta muốn sử dụng các góc nhìn, chúng ta sẽ đi với một mô hình kết thúc trong 'v9' hoặc 'v0'. Thông tin chi tiết về điều này có thể được tìm thấy ở đây. v9' hoặc 'v0'. Thông tin chi tiết về điều này có thể được tìm thấy ở đây

    Cài đặt Spacy và tải xuống một trong các mô hình lớn hơn

    Tạo một đối tượng đường ống và sử dụng nó để tạo tài liệu cho các tiêu đề

    Chúng ta có thể tra cứu màn che cho các mã thông báo `____ 11` hoặc cá nhân bằng cách sử dụng thuộc tính ` ____ 12`. Hãy cùng xem các tiêu đề nhúng tiêu đề trông như thế nào. v1` hoặc mã thông báo riêng lẻ sử dụng thuộc tính `v2`. Hãy xem phần nhúng tiêu đề trông như thế nào

    Kết quả là góc nhìn 300 chiều của tiêu đề đầu tiên. Chúng ta có thể sử dụng các mắt kính này để tính toán các cosin tương ứng của các tiêu đề. Spacy `________ 13` Đối tượng có phương pháp` ____ 14y` của riêng họ tính toán cosin tương tự. Đối tượng v3` có phương thức `v4y` riêng để tính toán độ tương tự cosin


    Cần nhúng theo ngữ cảnh

    Cho đến nay tất cả các văn bản nhúng chúng tôi đã đề cập đến việc tìm hiểu một từ toàn cầu. Đầu tiên họ xây dựng một từ vựng của tất cả các từ độc đáo trong tài liệu, sau đó tìm hiểu các biểu diễn tương tự cho các từ xuất hiện thường xuyên. Vấn đề với các biểu diễn từ như vậy là các từ có nghĩa là ý nghĩa theo ngữ cảnh.   . Ví dụ, hãy xem xét tuyên bố sau

    Sau khi ăn cướp vàng từ kho hàng, tên cướp ngân hàng đã được nhìn thấy câu cá trên bờ sông

    Các kỹ thuật nhúng từ hệ thống truyền thông sẽ chỉ tìm hiểu một đại diện cho từ 'ngân hàng'. Nhưng ‘Ngân hàng có hai nghĩa khác nhau trong câu và nhất thiết phải có hai đại diện khác nhau trong không gian nhúng. Các phương pháp nhúng theo ngữ cảnh như Bert và Elmo nghiên cứu các định nghĩa cấp độ trình tự ngôn ngữ bằng cách xem xét chuỗi của tất cả các từ trong tài liệu. Do đó, các kỹ thuật này tìm hiểu các biểu diễn khác nhau cho các từ chính trị như ‘Ngân hàng trong ví dụ dựa trên, dựa trên bối cảnh của họ.  


    Elmo

    ELMO tính toán nhúng từ các trạng thái bên trong của mô hình ngôn ngữ hai chiều hai lớp (LM), do đó, tên là Elm Elmo. nhúng từ các ngôn ngữ mô hình ngôn ngữ. Nó gán cho mỗi từ một biểu diễn là một hàm của toàn bộ câu. ELMO nhúng là một chức năng của tất cả các lớp bên trong BILM. Các lớp khác nhau mã hóa các loại thông tin khác nhau cho cùng một từ. Ví dụ, các cấp thấp hơn hoạt động tốt cho việc gắn thẻ một phần giọng nói, trong khi các cấp thấp hơn trong việc xử lý các từ chính trị. & NBSP;Phần nhúng từ các Mô hình Ngôn ngữ. Nó gán cho mỗi từ một biểu diễn là chức năng của toàn bộ ngữ liệu câu. Các nhúng ELMo là một chức năng của tất cả các lớp bên trong của biLM. Các lớp khác nhau mã hóa các loại thông tin khác nhau cho cùng một từ. Ví dụ: các cấp thấp hơn hoạt động tốt để gắn thẻ Part-Of-Speech, trong khi các cấp cao hơn xử lý tốt hơn các từ đa nghĩa.  

    Kết hợp các hoạt động của tất cả các lớp cho phép Elmo kết hợp một loạt các biểu diễn từ hoạt động tốt hơn trên các nhiệm vụ hạ nguồn. Thêm vào đó, Elmo làm việc ở cấp độ nhân vật thay vì các từ. Điều này cho phép nó tận dụng các đơn vị từ phụ để rút ra các phần nhúng có nghĩa là cho các từ bên ngoài văn bản.  

    Điều này có nghĩa là cách sử dụng Elmo khá khác biệt so với các phương pháp nhúng truyền thống. Thay vì có một từ điển của các từ và các màn tương ứng của chúng, Elmo tạo ra việc nhúng khi đang bay

    Thực hiện

    Word2VEC được sử dụng trong Spacy để tạo các từ ghép, một điều quan trọng cần lưu ý. Để tạo các từ khóa, chúng ta cần các mô hình Spacy lớn hơn. Ví dụ, ví dụ, mô hình tiếng Anh trung bình hoặc lớn, nhưng không phải là mô hình nhỏ. Vì vậy, nếu chúng ta muốn sử dụng các góc nhìn, chúng ta sẽ đi với một mô hình kết thúc trong 'v9' hoặc 'v0'. Thông tin chi tiết về điều này có thể được tìm thấy ở đây. mô-đun v5. Chúng tôi cũng sẽ cần tải xuống một mô hình được đào tạo trước để tạo các phần nhúng

    Cài đặt Spacy và tải xuống một trong các mô hình lớn hơn

    Tạo một đối tượng đường ống và sử dụng nó để tạo tài liệu cho các tiêu đề

    Chúng ta có thể tra cứu màn che cho các mã thông báo `____ 11` hoặc cá nhân bằng cách sử dụng thuộc tính ` ____ 12`. Hãy cùng xem các tiêu đề nhúng tiêu đề trông như thế nào

    Kết quả là góc nhìn 300 chiều của tiêu đề đầu tiên. Chúng ta có thể sử dụng các mắt kính này để tính toán các cosin tương ứng của các tiêu đề. Spacy `________ 13` Đối tượng có phương pháp` ____ 14y` của riêng họ tính toán cosin tương tự


    Nhúng câu

    Cho đến giờ chúng ta đã thảo luận về cách nhúng từ thể hiện nghĩa của từ trong tài liệu văn bản. Nhưng đôi khi chúng ta cần tiến thêm một bước và mã hóa ý nghĩa của cả câu để dễ hiểu ngữ cảnh mà các từ được sử dụng. Biểu diễn câu này rất quan trọng đối với nhiều nhiệm vụ xuôi dòng. Nó cho phép chúng tôi hiểu ý nghĩa của câu mà không cần tính toán các từ nhúng riêng lẻ. Nó cũng cho phép chúng ta so sánh ở cấp độ câu.  

    Sử dụng thao tác toán học đơn giản, có thể điều chỉnh việc nhúng câu cho các tác vụ như tìm kiếm ngữ nghĩa, phân cụm, phát hiện ý định, phát hiện cụm từ. Ngoài ra, các mô hình nhúng câu đa ngôn ngữ có thể được sử dụng để khai thác văn bản song song hoặc phát hiện cặp dịch. Ví dụ: Thị trường dữ liệu TAUS sử dụng kỹ thuật làm sạch dữ liệu sử dụng nhúng câu để tính toán sự giống nhau về ngữ nghĩa giữa các đoạn văn bản song song ở các ngôn ngữ khác nhau để đánh giá chất lượng bản dịch.   

    Một cách tiếp cận đơn giản để tạo nhúng câu là sử dụng mô hình nhúng từ để mã hóa tất cả các từ của câu đã cho và lấy giá trị trung bình của tất cả các vectơ từ. Mặc dù điều này cung cấp một cơ sở vững chắc, nhưng nó không nắm bắt được thông tin liên quan đến trật tự từ và các khía cạnh khác của ngữ nghĩa câu tổng thể


    Doc2Vec

    Mô hình Doc2Vec (hoặc Paragraph Vector) mở rộng ý tưởng của thuật toán Word2Vec. Thuật toán tuân theo giả định rằng nghĩa của một từ được đưa ra bởi các từ xuất hiện gần đó. Tương tự như Word2Vec, Doc2Vec có hai biến thể.  

    Mô hình bộ nhớ phân tán (DM)

    Mỗi từ và câu của kho dữ liệu đào tạo được mã hóa một lần và được lưu trữ trong ma trận D và W, tương ứng. Quá trình đào tạo liên quan đến việc chuyển một cửa sổ trượt qua câu, cố gắng dự đoán từ tiếp theo dựa trên các từ trước đó và vectơ câu (hoặc Ma trận đoạn văn trong hình trên). Dự đoán từ tiếp theo này được thực hiện bằng cách nối các vectơ câu và từ và chuyển kết quả vào một lớp softmax. Các vectơ câu thay đổi theo câu, trong khi các vectơ từ vẫn giữ nguyên. Cả hai đều được cập nhật trong quá trình đào tạo.  

    Quá trình suy luận cũng liên quan đến cách tiếp cận cửa sổ trượt tương tự. Sự khác biệt là tất cả các vectơ của các mô hình đều cố định ngoại trừ vectơ câu. Sau khi tất cả các dự đoán của từ tiếp theo được tính toán cho một câu, câu nhúng là vectơ câu kết quả

    Mô hình túi từ phân phối (DBOW)

    Mô hình DBOW bỏ qua trật tự từ và có kiến ​​trúc đơn giản hơn. Mỗi câu trong kho dữ liệu đào tạo được chuyển đổi thành một biểu diễn one-hot. Trong quá trình đào tạo, một câu ngẫu nhiên được chọn từ kho ngữ liệu và từ câu đó, một số từ ngẫu nhiên. Mô hình cố gắng dự đoán những từ này chỉ sử dụng ID câu và vectơ câu được cập nhật (ID đoạn và Ma trận đoạn trong hình)

    Trong quá trình suy luận, ID câu mới được đào tạo với các từ ngẫu nhiên từ câu. Vectơ câu được cập nhật trong từng bước và vectơ câu kết quả là phần nhúng cho câu đó


    Biến thể nào để sử dụng?

    Mô hình DM tính đến thứ tự từ, mô hình DBOW không. Ngoài ra, mô hình DBOW không sử dụng vectơ từ nên ngữ nghĩa của từ không được bảo toàn. Do đó, khó phát hiện ra sự giống nhau giữa các từ hơn. Và do kiến ​​trúc đơn giản hơn, mô hình DBOW yêu cầu đào tạo nhiều hơn để có được các vectơ chính xác. Hạn chế chính của mô hình DM là thời gian và tài nguyên cần thiết để tạo nhúng, cao hơn so với mô hình DBOW

    Cách tiếp cận nào tạo ra Nhúng câu tốt hơn? . Tuy nhiên, các nghiên cứu sau đó cho thấy phương pháp DBOW tốt hơn cho hầu hết các nhiệm vụ. Vì lý do đó, việc triển khai trong v6 của Doc2Vec sử dụng phương pháp DBOW làm thuật toán mặc định.  

    Thực hiện

    Cài đặt Gensim, lấy tập dữ liệu “v7” để huấn luyện mô hình Doc2Vec

    Gắn thẻ dữ liệu văn bản, sau đó sử dụng nó để xây dựng từ vựng mô hình và đào tạo mô hình

    Sử dụng mô hình để lấy các phần nhúng câu của các tiêu đề và tính toán độ tương tự cosin giữa chúng


    Máy biến áp câu

    Giống như ELMo, có một số bộ mã hóa câu dựa trên LSTM hai chiều (InferSent, v.v.) nhưng LSTM có một số vấn đề nhất định. Đầu tiên, họ sử dụng một vector ẩn để biểu diễn bộ nhớ ở trạng thái hiện tại của đầu vào. Nhưng đối với các chuỗi đầu vào dài chẳng hạn như câu, một vectơ đơn lẻ không đủ để cung cấp tất cả thông tin cần thiết để dự đoán chính xác trạng thái tiếp theo. Nút cổ chai về kích thước của vectơ ẩn này làm cho các phương pháp dựa trên LSTM dễ mắc lỗi hơn, vì trong thực tế, nó chỉ có thể chứa thông tin từ một số bước quay lại hạn chế. Cơ chế Chú ý trong máy biến áp không có vấn đề thắt cổ chai này vì nó có quyền truy cập vào tất cả các trạng thái ẩn trước đó để đưa ra dự đoán.  

    Một vấn đề khác với LSTMS là thời gian để đào tạo. Vì đầu ra luôn phụ thuộc vào đầu vào trước đó, nên công việc đào tạo được thực hiện theo tuần tự. Điều này làm cho bài hát khó hóa hơn và dẫn đến thời gian đào tạo dài hơn. Kiến trúc máy biến áp song song với việc sử dụng cơ chế chú ý trong mạng lưới thần kinh cho phép thời gian đào tạo thấp hơn.  

    Các mô hình hiểu ngôn ngữ chung dựa trên máy biến áp dụng hoạt động tốt hơn nhiều so với tất cả tiền thân của họ. Khi Bert được giới thiệu, nó đã đạt được kết quả tiến bộ đầu tiên trong một loạt các nhiệm vụ như trả lời câu hỏi hoặc suy luận ngôn ngữ với các tinh chỉnh nhỏ trong kiến ​​​​trúc của nó. Điều đó đang được nói, nó có một chi phí tính toán lớn. Ví dụ, công việc tìm cặp câu tương tự nhất trong bộ sưu tập 10. 000 yêu cầu khoảng 50 triệu tính toán suy luận (~ 65 giờ). Cấu trúc của Bert làm cho nó không phù hợp để tìm kiếm tương tự ngữ nghĩa cũng như các nhiệm vụ không được giám sát như cụm từ.  

    Câu-Bert (SBERT) là một mạng BERT đã được sửa đổi, sử dụng cấu trúc mạng của Xiêm và Triplet để rút ra các bản nhúng câu có ý nghĩa về mặt ngữ nghĩa. Điều này làm giảm nỗ lực tìm kiếm cặp tương tự nhất từ ​​65 giờ với Bert / Roberta xuống còn khoảng 5 giây với SBERT, trong khi vẫn duy trì độ chính xác từ Bert.  

    Thực hiện

    Chúng tôi sẽ thử các mô hình dựa trên Roberta được phát triển trong mô-đun v8. mô-đun v8

    Load down model 'v9'. Người mẫu v9'

    Sử dụng nó để tính toán các tiêu đề nhúng và cặp tương tự của chúng


    Bộ mã hóa câu hỏi phổ biến

    Trình mã hóa câu hỏi toàn cầu của Google (sử dụng) tận dụng các khung học tập đa tác vụ một-nhiều để tìm hiểu một câu hỏi phổ biến nhúng bằng cách chuyển đổi giữa một số nhiệm vụ. 6 nhiệm vụ, dự đoán bỏ qua câu tiếp theo/trước, dịch máy thần kinh, phân tích cú pháp khu vực bầu cử và suy luận ngôn ngữ tự nhiên, chia sẻ cùng một mối tình. Điều này làm giảm thời gian đào tạo được tạo ra rất nhiều trong khi duy trì hiệu suất trên nhiều nhiệm vụ được chuyển đổi

    Một phiên bản của mô hình bộ mã hóa câu hỏi Universal sử dụng bộ mã hóa mạng trung bình sâu (Dan), trong khi một phiên bản khác sử dụng máy biến áp

    Kiến trúc máy biến áp dụng phức tạp hơn, thực hiện tốt hơn mô hình Dân đơn giản hơn trên nhiều nhiệm vụ phân loại tình cảm và tương tự. Thời gian tính toán cho phiên bản biến áp tăng đáng kể khi độ dài câu hỏi tăng lên. Mặt khác, thời gian tính toán cho mô hình Dan vẫn gần như không thay đổi khi độ dài câu lệnh tăng lên