I might be misreading your data, but I assume that the Item # will repeat and that they're not unique to the User. Though, in your example there is no overlap.
If I'm right and the items are finite, then I'd add a column of items x attributes (thats a lot of columns) and it'll create a pretty sparse matrix like this:
+--------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+---+--------------------+--------------------+--------------------+
| | Item 1 Attribute a | Item 1 Attribute b | Item 1 Attribute c | Item 2 Attribute a | Item 2 Attribute b | Item 2 Attribute c | … | Item 9 Attribute a | Item 9 Attribute b | Item 9 Attribute c |
+--------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+---+--------------------+--------------------+--------------------+
| User A | 0.593 | 0.7852 | 0.484 | 0.18 | 0.96 | 0.05 | … | | | |
| User B | | | | | | | … | 0.569 | 0.994 | 0.374 |
+--------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+---+--------------------+--------------------+--------------------+
Then, given a new user and their attributes, you could use cosine similarity to find the nearest rows in this data to this new row. I think that's the key to your problem is that you want to have each row be a user if you're doing user to user similarity.
You could of course look into describing the users with metadata about them, and if you had product attributes you could look into something more complex like Matrix Factorization. I'm no expert, but I'm just trying to point you in the right direction.
A lot of what direction you take will depend on how sparse (how many blanks) occur in this resulting matrix when you make each row a user. Also, too many columns? You could try dimensionality reduction next. Some techniques work better if you have a sparse matrix than others.
Too many users? You could do clustering and assign each user to a cluster. Then, you perform the exercise on clusters rather than individual users in the next step.
There are lots of ways this could do, sorry for not having much specific to say. However I think the key is setting up the data so that each row is a user.