#1 - 2011-2-24 11:59
‌aligo
最近看到bangumi多了用户同步率计算,我又手痒了
第一步还是先根据评分计算条目同步率,然后再是根据同步的条目计算用户的同步率

继续优化上次的条目相似度算法,因为性能原因暂时放弃上次的预测打分功能
区别在于根据幂律分布,把主流条目(打分人数多)与非主流条目(打分人数少)的相似度进行调整(每pow=log(条目打分数比,4),相似度*0.618pow)
灵感来自我发现bangumi现在的用户同步率,如果随便找一个收藏条目多的用户,你得到同步率肯定和他很高,这肯定有问题
另外似乎得找一个合适的方式,把用户收藏如看过/在看/抛弃的数据,也转化为隐式打分进行评估?

Bangumi的rate表
生成日期:2011 年 02 月 24 日 00:41
raw:382,472条,18.0 MiB
打分数据:242,213条,6.6 MiB
有效项目:8,849条

测试条件:
CentOS 32bit
Xeon 3.06GHz * 1
512MB RAM
MySQL 5.5.8
PHP 5.3.5,使用PDO_SQL方式连接,使用foreach遍历数据

结果
时间:(8849/8849)Subject11329 done!......376.82082986832s
容量:4.1 MiB 304,506条
#2 - 2011-2-24 20:03
你打算每一个用户的评估结果都在晚上跑出来然后保存么?
#3 - 2011-2-25 19:06
更新更新,用FP方式重写了全部代码
需要scala+ruby,可以在jvm下运行
queue,多线程,并列化,可指定单独某个条目更新相似度(即此条目对其他条目的相似度会更新,但其他条目对此条目的相似度无变化),大概在每条2s以内(未加预测功能),如果加了之前的预测打分应该在10s以内每条
#4 - 2011-2-25 21:15
从头到尾,七线程,外加我电脑开了一大堆程序
运行结果:"[580.218959643]Subject 11329 done!"
生成库大小:357,614条,4.8 MiB

虽然慢了50%,但是可以选择局部更新特定条目,我全部代码都用FP风格完成,除了一个Queue之外没有可变量,全部用folding方式消息传递参数,大规模之后可以MapReduceReduceReduceReduceReduce

#5 - 2011-2-26 11:50
更新一个小错误,结果更加准确了,时间请忽略,我运行这个测试的时候进行着另外一个算法的批量计算
最新结果:
[1.615089906]Subject 265 done!
265 新世纪福音战士 / EVA 新世紀エヴァンゲリオン Top15
+------+----------+----------+-----------------------------------------------------------------------------------------+
| Id   | 同步率   | 打分样本 | 名字                                                                                    |
+------+----------+----------+-----------------------------------------------------------------------------------------+
| 6049 | 0.935326 | 142      | 新世纪福音战士剧场版 Air/真心为你 新世紀エヴァンゲリオン 劇場版 THE END OF EVANGELIO... |
| 1648 | 0.907447 | 123      | 生活大爆炸 第一季 The Big Bang Theory (Season 1)                                        |
| 3302 | 0.905549 | 359      | 新世纪福音战士新剧场版:破 ヱヴァンゲリヲン新劇場版:破                                 |
| 2069 | 0.904704 | 136      | 残酷的天使纲领 残酷な天使のテーゼ                                                       |
| 2815 | 0.898679 | 116      | 空之境界 空の境界                                                                       |
| 772  | 0.898076 | 549      | 福音战士新剧场版:序 ヱヴァンゲリヲン新劇場版:序 - EVANGELION:1.0 YOU ARE (NOT) ALONE  |
| 935  | 0.895231 | 184      |  Fate/stay night                                                                        |
| 13   | 0.883886 | 196      |  CLANNAD                                                                                |
| 3375 | 0.875598 | 178      | 凉宫春日的消失 涼宮ハルヒの消失                                                         |
| 2664 | 0.874298 | 127      | 机动战士高达第08MS小队 機動戦士ガンダム 第08MS小隊                                      |
| 608  | 0.869458 | 184      | 星际争霸 StarCraft                                                                      |
| 23   | 0.863202 | 145      |  Elysion~楽園幻想物語組曲~                                                            |
| 324  | 0.862191 | 294      | 攻壳机动队 STAND ALONE COMPLEX 攻殻機動隊 STAND ALONE COMPLEX                           |
| 232  | 0.860287 | 119      |  AIR                                                                                    |
| 609  | 0.859261 | 164      | 暗黑破坏神2 资料片: 毁灭王座 Diablo 2 Expansion: Lord of Destruction                    |
+------+----------+----------+-----------------------------------------------------------------------------------------+
15 rows in set
[3.662010809]Subject 1424 done!
1424 轻音 けいおん! Top15
+------+----------+----------+----------------------------------------------------------+
| Id   | 同步率   | 打分样本 | 名字                                                     |
+------+----------+----------+----------------------------------------------------------+
| 1464 | 0.753626 | 217      |  Don’t say“lazy”                                         |
| 3774 | 0.730574 | 437      | 轻音 第2季 けいおん!!                                    |
| 608  | 0.703389 | 164      | 星际争霸 StarCraft                                       |
| 276  | 0.699621 | 666      | 幸运星 らき☆すた                                         |
| 1903 | 0.698202 | 97       |  けいおん! 劇中歌ミニアルバム 「放課後ティータイム」     |
| 4950 | 0.692637 | 106      |  My Soul,Your Beats! / Brave Song                        |
| 1648 | 0.69173  | 128      | 生活大爆炸 第一季 The Big Bang Theory (Season 1)         |
| 1463 | 0.691501 | 147      |  Cagayake!GIRLS                                          |
| 3198 | 0.690616 | 194      | 化物语 OP4 恋爱循环 「恋愛サーキュレーション」/花澤香菜 |
| 277  | 0.689031 | 114      | 魔兽世界 World of Warcraft                               |
| 274  | 0.687343 | 393      | 雪之少女 Kanon                                           |
| 51   | 0.686347 | 555      | 小镇家族 CLANNAD -クラナド-                              |
| 232  | 0.683423 | 127      |  AIR                                                     |
| 859  | 0.681214 | 129      | 星之梦 planetarian ~ちいさなほしのゆめ~                |
| 1595 | 0.674706 | 117      |  ふわふわ時間                                            |
+------+----------+----------+----------------------------------------------------------+
15 rows in set
[3.94341377]Subject 3622 done!
3622 向阳素描×☆☆☆ ひだまりスケッチ×☆☆☆ Top15
+------+----------+----------+-------------------------------------------------------------------------+
| Id   | 同步率   | 打分样本 | 名字                                                                    |
+------+----------+----------+-------------------------------------------------------------------------+
| 9642 | 0.982806 | 15       | 向阳素描 特别篇 ひだまりスケッチ 特別編                                 |
| 9639 | 0.978046 | 21       | 向阳素描×☆☆☆ 特别篇 ひだまりスケッチ×☆☆☆ 特別編                         |
| 2662 | 0.941213 | 47       | 向阳素描×365 特别篇 ひだまりスケッチ×365 特別編                         |
| 896  | 0.929969 | 61       | 向阳素描 ひだまりスケッチ                                               |
| 330  | 0.92892  | 68       | 向阳素描×365 ひだまりスケッチ×365                                       |
| 3805 | 0.921628 | 15       | 忏· 绝望先生 番外地 懺・さよなら絶望先生 番外地                         |
| 693  | 0.913313 | 32       | 草莓棉花糖/莓乱扔 OVA 第1期 苺ましまろ OVA                              |
| 2842 | 0.896083 | 17       | 战斗妖精雪风 戦闘妖精雪風                                               |
| 4473 | 0.8958   | 13       | GA艺术科美术设计班 OVA GA 芸術科アートデザインクラス OVA                |
| 3292 | 0.874836 | 14       | 热带雨林的爆笑生活DELUXE ジャングルはいつもハレのちグゥ デラックス      |
| 1270 | 0.873083 | 26       | 水星领航员 第三季 ARIA The ORIGINATION                                  |
| 845  | 0.870571 | 20       | Little Busters! EX リトルバスターズ! エクスタシー                       |
| 918  | 0.866945 | 38       | 草莓棉花糖/莓乱扔 OVA 第2期 苺ましまろ encore                           |
| 1154 | 0.861873 | 18       | 东方风神录 東方風神録 ~ Mountain of Faith.                            |
| 2837 | 0.859726 | 15       | 化物语 OP1 化物語 第一巻 ひたぎクラブ 特典CD「staple stable」/斎藤千和 |
+------+----------+----------+-------------------------------------------------------------------------+
15 rows in set
[4.755378021]Subject 3477 done!
3477 空之音 ソ・ラ・ノ・ヲ・ト Top15
+------+----------+----------+-------------------------------------------------------------------------------------+
| Id   | 同步率   | 打分样本 | 名字                                                                                |
+------+----------+----------+-------------------------------------------------------------------------------------+
| 1737 | 0.625733 | 31       | 传颂之物 OVA OVA うたわれるもの                                                     |
| 2942 | 0.613719 | 34       | 白虎/虎子/HYAKKO ヒャッコ                                                           |
| 3828 | 0.555962 | 40       | 少女爱上姐姐 処女はお姉さまに恋してる                                               |
| 2829 | 0.49549  | 41       | Candy☆Boy Candy☆Boy                                                                 |
| 1667 | 0.477719 | 49       | 初音未来:歌姬计划 初音ミクプロジェクトディーヴァ                                   |
| 4053 | 0.470334 | 36       | 科学超电磁炮 新OP - LEVEL5-judgelight- LEVEL5-judgelight-                           |
| 2010 | 0.461579 | 37       | 彩云国物语 第一季 彩雲国物語I                                                       |
| 5498 | 0.455978 | 46       | 破刃之剑 第一章 觉醒之刻 ブレイク ブレイド 第一章 覚醒ノ刻                          |
| 3889 | 0.447212 | 66       | 空之音 OP 光の旋律                                                                  |
| 5651 | 0.444349 | 74       | 强袭魔女2 ストライクウィッチーズ2                                                   |
| 873  | 0.436379 | 47       | 双星物语Ⅱ ZWEI Ⅱ                                                                    |
| 2982 | 0.430655 | 31       | 魔法人力派遣公司/出租魔法使/租赁魔法使/魔法使派遣会社/魔法使借贷公司 レンタルマギカ |
| 1911 | 0.429062 | 9        | 轩辕剑外传—汉之云 轩辕剑外传—汉之云                                                 |
| 4171 | 0.427864 | 7        | 糖果子弹 砂糖菓子の弾丸は撃ちぬけない                                               |
| 3745 | 0.427134 | 33       | 夜樱四重奏 夜桜四重奏 〜ヨザクラカルテット〜                                        |
+------+----------+----------+-------------------------------------------------------------------------------------+
15 rows in set
[4.782719543]Subject 2667 done!
2667 机动战士Z高达 機動戦士Ζガンダム Top15
+------+----------+----------+-----------------------------------------------------------------------------------------+
| Id   | 同步率   | 打分样本 | 名字                                                                                    |
+------+----------+----------+-----------------------------------------------------------------------------------------+
| 9622 | 0.551196 | 6        | 机动战士高达Z 机动战士高达Z                                                             |
| 2664 | 0.501284 | 7        | 机动战士高达第08MS小队 機動戦士ガンダム 第08MS小隊                                      |
| 804  | 0.483179 | 6        | 机动战士高达0083:星尘的回忆 機動戦士ガンダム0083 STARDUST MEMORY                       |
| 3113 | 0.480894 | 7        | 机动战士高达UC 機動戦士ガンダムUC                                                       |
| 6048 | 0.473459 | 6        | 新世纪福音战士剧场版:死与新生 新世紀エヴァンゲリオン 劇場版 DEATH & REBIRTH シト... |
| 6049 | 0.472743 | 6        | 新世纪福音战士剧场版 Air/真心为你 新世紀エヴァンゲリオン 劇場版 THE END OF EVANGELIO... |
| 3302 | 0.399102 | 7        | 新世纪福音战士新剧场版:破 ヱヴァンゲリヲン新劇場版:破                                 |
| 808  | 0.367467 | 6        | 旋风管家 ハヤテのごとく!                                                               |
| 1015 | 0.364319 | 6        | 机动战士高达0080口袋里的战争 机动战士高达0080口袋里的战争                               |
| 286  | 0.360934 | 6        | 机动战士高达OO 機動戦士ガンダムOO                                                       |
| 242  | 0.35233  | 6        | 穿越时空的少女 時をかける少女                                                           |
| 1905 | 0.348578 | 7        | 夏日战争 サマーウォーズ                                                                 |
| 772  | 0.344039 | 6        | 福音战士新剧场版:序 ヱヴァンゲリヲン新劇場版:序 - EVANGELION:1.0 YOU ARE (NOT) ALONE  |
| 311  | 0.338426 | 6        | 千与千寻 千と千尋の神隠し                                                               |
| 909  | 0.337854 | 6        | 龙与虎 とらドラ!                                                                       |
+------+----------+----------+-----------------------------------------------------------------------------------------+
15 rows in set
[5.007833584]Subject 2683 done!
2683 生活大爆炸 第三季 The Big Bang Theory (Season 3) Top15
+------+----------+----------+----------------------------------------------------+
| Id   | 同步率   | 打分样本 | 名字                                               |
+------+----------+----------+----------------------------------------------------+
| 8558 | 0.943671 | 52       | 生活大爆炸 第四季 The Big Bang Theory (Season 4)   |
| 1390 | 0.939311 | 166      | 生活大爆炸 第二季 The Big Bang Theory (Season 2)   |
| 1648 | 0.916477 | 168      | 生活大爆炸 第一季 The Big Bang Theory (Season 1)   |
| 4475 | 0.911873 | 24       | 剧场版 银魂 新译红樱篇 劇場版 銀魂 新訳紅桜篇      |
| 1371 | 0.88987  | 30       | 成长的烦恼 Growing Pains                           |
| 7770 | 0.873485 | 20       | 神探夏洛克 Sherlock                                |
| 3900 | 0.865223 | 35       | 网瘾战争 网瘾战争                                  |
| 3864 | 0.863935 | 20       | 老友记 Friends: Season 1                           |
| 2463 | 0.857435 | 89       | 无头骑士异闻录 デュラララ!!                        |
| 1361 | 0.825612 | 26       | 神探伽俐略 / 神探伽利略 ガリレオ                   |
| 4450 | 0.824137 | 24       | 黑塔利亚 第3期 ヘタリア World Series 第3期         |
| 2461 | 0.823655 | 61       | 搞笑漫画日和 ギャグマンガ日和                      |
| 1354 | 0.821216 | 23       | 医龙-Team Medical Dragon- 医龍-Team Medical Dragon |
| 8081 | 0.808497 | 48       | 荒川爆笑团2 荒川アンダー ザ ブリッジ×ブリッジ      |
| 311  | 0.792723 | 60       | 千与千寻 千と千尋の神隠し                          |
+------+----------+----------+----------------------------------------------------+