Project Tomodachi » 讨论
Tomodachi #1 - Mio Techpreview 2 + Cloud
#1 - 2010-3-28 15:47
aligo
采取和Mio Techpreview 2相同的算法
不同之处在于解决了评分数据少而产生的问题
解决手段是根据现有的用户打分数据,进行一次云线性预测,基于打分次数较多的用户的模型给打分数据较少的项目进行预测性的打分,补足数据
最大化的打分数据是让每个用户给每个项目打分,但由此得来的数据实在太多,而且可能会产生出新的垃圾(预测出的数据是原有数据的1000倍以上,这样会对预测出的数据的准确性大打折扣)
目前设置的预测打分阀值如下:
对被打分次数30次以下的项目进行模拟打分,补足至30条
模拟打分的模型来自于打分次数超过100次的用户
测试数据:
Bangumi的subject_interests表
生成日期:2010 年 03 月 26 日 21:57
打分数据:140,766条,6.8 MB
有效项目:3,531条
测试条件:
CentOS 32bit
Xeon 3.06GHz * 1
256MB RAM
MySQL 5.1.41
PHP 5.3.1,使用PDO_SQL方式连接,使用foreach遍历数据
结果对比:
学习计算复杂度:
Mio Techpreview 2:每项目0.1~2.1s*3,531条,共花费约17分钟完成记忆库学习
Mio Techpreview 2 + Cloud(RAM从256M调整为512M):每项目1.1~2.4s*3,531条,共花费约50分钟完成记忆库学习
学习空间复杂度:
Mio Techpreview 2:为一个{mediumint,mediumint,float,smallint}的双索引记忆库,共2,879,974条,35.7 MB
Mio Techpreview 2 + Cloud:为一个{mediumint,mediumint,float,smallint}的双索引记忆库,共10,469,290条,129.8 MB
不同之处在于解决了评分数据少而产生的问题
解决手段是根据现有的用户打分数据,进行一次云线性预测,基于打分次数较多的用户的模型给打分数据较少的项目进行预测性的打分,补足数据
最大化的打分数据是让每个用户给每个项目打分,但由此得来的数据实在太多,而且可能会产生出新的垃圾(预测出的数据是原有数据的1000倍以上,这样会对预测出的数据的准确性大打折扣)
目前设置的预测打分阀值如下:
对被打分次数30次以下的项目进行模拟打分,补足至30条
模拟打分的模型来自于打分次数超过100次的用户
测试数据:
Bangumi的subject_interests表
生成日期:2010 年 03 月 26 日 21:57
打分数据:140,766条,6.8 MB
有效项目:3,531条
测试条件:
CentOS 32bit
Xeon 3.06GHz * 1
256MB RAM
MySQL 5.1.41
PHP 5.3.1,使用PDO_SQL方式连接,使用foreach遍历数据
结果对比:
学习计算复杂度:
Mio Techpreview 2:每项目0.1~2.1s*3,531条,共花费约17分钟完成记忆库学习
Mio Techpreview 2 + Cloud(RAM从256M调整为512M):每项目1.1~2.4s*3,531条,共花费约50分钟完成记忆库学习
学习空间复杂度:
Mio Techpreview 2:为一个{mediumint,mediumint,float,smallint}的双索引记忆库,共2,879,974条,35.7 MB
Mio Techpreview 2 + Cloud:为一个{mediumint,mediumint,float,smallint}的双索引记忆库,共10,469,290条,129.8 MB
#2 - 2010-3-28 15:53
aligo
#3 - 2010-3-28 15:57
aligo
#4 - 2010-3-28 16:05
aligo
#5 - 2010-3-28 16:11
aligo
#6 - 2010-3-28 16:18
aligo
#7 - 2010-3-28 20:24
aligo