Sobes.tech
Middle — Senior

Ինչպես հաշվել հարցերի միջև կոսինուսային մոտեցումը?

sobes.tech AI

Պատասխան AI-ից

Կոսինուսային նմանությունը երկու վեկտորների միջև նմանության չափանիշ է, որը հաշվարկվում է նրանց միջև անկյան կոսինուսով: Հարցերի համար (օրինակ՝ տեքստային) նախ պետք է ներկայացնել յուրաքանչյուր հարց որպես վեկտոր (embedding), օրինակ՝ Word2Vec, BERT կամ TF-IDF մոդելների միջոցով:

Ինչպես հաշվարկել կոսինուսային նմանությունը՝

  1. Փոխարկել յուրաքանչյուր հարց թվային վեկտորների:
  2. Հաշվարկել երկու վեկտորների միջև անկյան կոսինուսը՝

[ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{|A| |B|} = \frac{\sum_{i=1}^n A_i B_i}{\sqrt{\sum_{i=1}^n A_i^2} \sqrt{\sum_{i=1}^n B_i^2}} ]

Օրինակ՝ Python-ում numpy գրադարանի միջոցով՝

import numpy as np

def cosine_similarity(vec1, vec2):
    dot_product = np.dot(vec1, vec2)
    norm_a = np.linalg.norm(vec1)
    norm_b = np.linalg.norm(vec2)
    return dot_product / (norm_a * norm_b)

# Վեկտորների օրինակներ
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])

similarity = cosine_similarity(q1, q2)
print(f"Կոսինուսային նմանություն՝ {similarity}")

Այսպիսով՝ կոսինուսային նմանությունը ցույց է տալիս, թե որքան են հարցերը նման իմաստով՝ embedding-ների տարածությունում: