# Hi-Five — building a representation for introductions

By Arya Garg

Canonical source: https://aryagarg23.com/writing/hi-five

Archive date: 2024-10 (historical site date; not a verified publication date)

Register: Technical

Tags: HACK

Section: [Hackathons](https://aryagarg23.com/about#hackathons)

## Main

A lot of social matching starts from the stuff two people share. Same music, same school, same game or movie, or the same pile of interest tags. I was more interested in whether two people could have something in common in how they think, even when what they're thinking about is different. I can know nothing about your hobby and still recognise the way you make an association.

Raihan Rafeek, Shawn Lasrado, Shashwat and I built Hi-Five at SASEhack, two weekends before Terminally Addicted. After WhiteBox I was already deep into the idea that you could fabricate useful representations of messy things. Hi-Five took that out of research material and tried it on people.

We used OCEAN as scaffolding and added our own dimensions around the responses. Then we mixed that with interests and matched people using the representation we'd built.

You didn't get someone's whole profile first. You got the conversation. The match stayed anonymous for 48 hours, and then both people could decide whether they wanted to reveal themselves and keep going.

What I wanted to test was whether I could fabricate an entirely new dimension of data and make it useful.

[Interactive figure: Match rankings]

## Technical

| Hi-Five flow |
| --- |
| 5 prompt responses |
| ↓ |
| OCEAN-inspired feature construction |
| ↓ |
| BGE-en-icl text embeddings + RoBERTa emotion features |
| ↓ |
| ~24-dimensional user representation |
| ↓ |
| Vector similarity × 0.6 + Interest overlap × 0.4 |
| ↓ |
| Candidate match |
| ↓ |
| Neo4j relationship |
| ↓ |
| 48-hour anonymous conversation |
| ↓ |
| Mutual reveal / continue |

![Assessment to embedding to 48-hour anonymous window to reveal, the flow as designed](https://aryagarg23.com/figures/hi-five/matching_flow.png)

The matching system started from five assessment-style prompts and user interest tags. Prompt responses were processed using an OCEAN-inspired feature scheme, BGE-en-icl text embeddings, RoBERTa-base-go-emotions outputs, and some extra custom processing. The resulting features were combined into an approximately 24-dimensional user representation.

The match score weighted embedding similarity at 0.6 and interest overlap at 0.4 in the implementation captured by the older repository. Neo4j stored users and relationships. Matched users entered a 48-hour anonymous conversation period before a mutual reveal decision.

The representation was experimental. It wasn't a validated personality or compatibility model.[^hi-five-technical-1][^hi-five-technical-2]

[^hi-five-technical-1]: [Hi-Five — Devpost](https://devpost.com/software/hi-five-dt0gvj)

[^hi-five-technical-2]: [Original team repository](https://github.com/Aryagarg23/Hi-Five)
